This topic created in 3639 days ago, the information mentioned may be changed or developed.
各位大神, cms 中现在要实现 acl
现在用了 5 张表
1 : roles 角色
2 : permissions 权限
3 : permission_role 权限—角色对应表
4 : role_user 角色—用户对应表
5 : users 用户表
但这样只能对角色进行控制,不能细分到用户的权限,如果要细分到同角色不同用户的权限,该怎么改进下,谢谢
6 replies • 2016-05-30 16:00:40 +08:00
 |
|
1
czzhengkw May 30, 2016 1
你把角色当用户,一个用户一个角色,你就能控制到用户了……
不过,你这个需求并不合理 如果 A 用户有 100 个权限, B 用户要跟 A 用户同样 100 个权限,你是不是要授权 200 次? 如果使用角色管理,就能解决这个问题了……
|
 |
|
3
kfll May 30, 2016 1
freeipa 有这样的 acl 设定,不过他的存储不是 sql
user 可以组合成 group ,两者属于用户系统; permission 可以组合成 role ,两者属于权限系统; permission 、 role 都可以指定给 user 、 group ;
做 acl 的时候实际起作用的不是 user ~ permission 么,嵌套性能问题可以用缓存解决
|
 |
|
4
tabris17 May 30, 2016 1
RBAC 的话,理论上权限只切分到角色的粒度,如果两个用户权限不一致,那么就应该分成不同角色
|
 |
|
5
tabris17 May 30, 2016 1
另外,一个用户可以对应多个角色,用户间的权限细微差异,可以通过这点来实现
|
 |
|
6
Ouyangan May 30, 2016
恰好在写这块业务,增加 user_permission , 登录查权限的时候查两张表求并集
|