rbac与auth权限认证的区别

RBAC是基于角色的权限管理系统。
AUTH是基于节点的权限管理系统。
对于这两种权限管理的认识来自两个不同的系统,PHPCMS V9 与OneThink。
RBAC 可以将不同的用户分配给不同的用户组,即角色,每个角色享有不同的系统管理权限,但是如果角色之间的权限有交差时,可能会出现分工不明的情况,比如,有编 辑与管理员两个组,编辑要求对文章列表有添加与修改的权限,管理员对文章列表有添加与修改及删除操作,还可以进行文章分类的管理,但是如果发现在编辑里有 个主编,我想让他也可以删除文章,而又不想给他文章分类管理的权限,这时候用RBAC系统除了再建立一个用户组以外,没有其它方式,至少我没想到。
而 基于节点的权限管理AUTH就不会有这个问题,因为相对于所有用户来说,每个操作都是一个节点,我可以自由的分配每一个节点给每一个用户,但同时,也会出 现用户组不明确的问题,就是说,没有用户组,只有用户,当然这是原本的问题,其实AUTH也是可以先建立用户组,给用户组分配权限而后再将用户分配到相应 的组里,AUTH里还有个用户组明细表,就是用来对应用户跟组的关系,这样就解决了上边所说的问题,用户没有所在组。用户又可以同时属于不同的组,进而拥 有两个组组合的权限。
其实两种方式最根本的区别在于,RBAC中的用户只能属于一个组,AUTH中的用户可以属于不同的组,到于THINKPHP官网上这篇文章(http://www.thinkphp.cn/topic/4029.html)中说的condition的问题,在V9中也有data附件属性可以操作使用。
 
RBAC中数据库的基本设计如下:
 
1、用户角色表role
  1. roleid tinyint(3) unsigned  主 INDEX
  2. rolename  varchar(50)
  3. disabled  tinyint(1) unsigned  1
 
2、管理员表admin
  1. adminid  mediumint(6) unsigned 主  INDEX
  2. roleid   tinyint(3)
  3. adminname  varchar(20)        INDEX
  4. password   varchar(32)
  5. lastloginip    varchar(15)
  6. lastlogintime  int(10)   unsigned
  7. realname   varchar(50)
  8. email   varchar(50)
  9. tel  varchar(20)
 
3、管理员权限表admin_priv
  1. roleid  tinyint(3)  unsigned     INDEX
  2. m     char(20)     INDEX
  3. c      char(20)     INDEX
  4. a      char(20)     INDEX
  5. data  char(30)  index
AUTH中数据库的基本设计如下:
 
1、用户角色表role
  1. roleid tinyint(3) unsigned  主 INDEX
  2. rolename  varchar(50)
  3. disabled  tinyint(1) unsigned  1
  4. rules  varchar(500)
 
2、管理员表admin
  1. adminid  mediumint(6) unsigned 主  INDEX
  2. adminname  varchar(20)        INDEX
  3. password   varchar(32)
  4. lastloginip    varchar(15)
  5. lastlogintime  int(10)   unsigned
  6. realname   varchar(50)
  7. email   varchar(50)
  8. tel  varchar(20)
 
3、管理员权限表admin_priv
  1. roleid  tinyint(3)  unsigned     INDEX
  2. m     char(20)     INDEX
  3. c      char(20)     INDEX
  4. a      char(20)     INDEX
  5. condition  char(100) NOT NULL
4、用户组明细表group_access
  1. adminid mediumint(6) unsigned
  2. roleid tinyint(3) unsigned
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值