延伸服务体系,延伸技术资讯!

禾艺LOGO

禾艺设计
jQuery PHP Mysql Thinkphp5

rbac与auth权限认证的区别

Author.禾艺设计  Time.2019.04-19  Click.

RBAC是基于角色的权限管理系统。

AUTH是基于节点的权限管理系统。

RBAC 可以将不同的用户分配给不同的用户组,即角色,每个角色享有不同的系统管理权限,但是如果角色之间的权限有交差时,可能会出现分工不明的情况,比如,有编 辑与管理员两个组,编辑要求对文章列表有添加与修改的权限,管理员对文章列表有添加与修改及删除操作,还可以进行文章分类的管理,但是如果发现在编辑里有 个主编,我想让他也可以删除文章,而又不想给他文章分类管理的权限,这时候用RBAC系统除了再建立一个用户组以外,没有其它方式,至少我没想到。

而 基于节点的权限管理AUTH就不会有这个问题,因为相对于所有用户来说,每个操作都是一个节点,我可以自由的分配每一个节点给每一个用户,但同时,也会出 现用户组不明确的问题,就是说,没有用户组,只有用户,当然这是原本的问题,其实AUTH也是可以先建立用户组,给用户组分配权限而后再将用户分配到相应 的组里,AUTH里还有个用户组明细表,就是用来对应用户跟组的关系,这样就解决了上边所说的问题,用户没有所在组。用户又可以同时属于不同的组,进而拥 有两个组组合的权限。

其实两种方式最根本的区别在于,RBAC中的用户只能属于一个组,AUTH中的用户可以属于不同的组。


RBAC中数据库的基本设计如下:

1、用户角色表role
roleid tinyint(3) unsigned  主 INDEX
rolename  varchar(50)
disabled  tinyint(1) unsigned  1
       
2、管理员表admin
adminid  mediumint(6) unsigned 主  INDEX
roleid   tinyint(3)
adminname  varchar(20)        INDEX
password   varchar(32)
lastloginip    varchar(15)
lastlogintime  int(10)   unsigned
realname   varchar(50)
email   varchar(50)
tel  varchar(20)
       
3、管理员权限表admin_priv
roleid  tinyint(3)  unsigned     INDEX
m     char(20)     INDEX
c      char(20)     INDEX
a      char(20)     INDEX
data  char(30)  index
AUTH中数据库的基本设计如下:
       
1、用户角色表role
roleid tinyint(3) unsigned  主 INDEX
rolename  varchar(50)
disabled  tinyint(1) unsigned  1
rules  varchar(500)
       
2、管理员表admin
adminid  mediumint(6) unsigned 主  INDEX
adminname  varchar(20)        INDEX
password   varchar(32)
lastloginip    varchar(15)
lastlogintime  int(10)   unsigned
realname   varchar(50)
email   varchar(50)
tel  varchar(20)
       
3、管理员权限表admin_priv
roleid  tinyint(3)  unsigned     INDEX
m     char(20)     INDEX
c      char(20)     INDEX
a      char(20)     INDEX
condition  char(100) NOT NULL
4、用户组明细表group_access
adminid mediumint(6) unsigned
roleid tinyint(3) unsigned


Copyright © 2018 禾艺设计 All Rights Reserved.
Top ↑