关于 acl 权限控制

2016-05-30 09:21:02 +08:00
 414348489
各位大神, cms 中现在要实现 acl
现在用了 5 张表
1 : roles 角色
2 : permissions 权限
3 : permission_role 权限—角色对应表
4 : role_user 角色—用户对应表
5 : users 用户表
但这样只能对角色进行控制,不能细分到用户的权限,如果要细分到同角色不同用户的权限,该怎么改进下,谢谢
1430 次点击
所在节点    问与答
6 条回复
czzhengkw
2016-05-30 09:52:07 +08:00
你把角色当用户,一个用户一个角色,你就能控制到用户了……

不过,你这个需求并不合理
如果 A 用户有 100 个权限, B 用户要跟 A 用户同样 100 个权限,你是不是要授权 200 次?
如果使用角色管理,就能解决这个问题了……
414348489
2016-05-30 11:35:04 +08:00
大神在哪里!!!!
kfll
2016-05-30 15:09:22 +08:00
freeipa 有这样的 acl 设定,不过他的存储不是 sql

user 可以组合成 group ,两者属于用户系统; permission 可以组合成 role ,两者属于权限系统; permission 、 role 都可以指定给 user 、 group ;

做 acl 的时候实际起作用的不是 user ~ permission 么,嵌套性能问题可以用缓存解决
tabris17
2016-05-30 15:22:47 +08:00
RBAC 的话,理论上权限只切分到角色的粒度,如果两个用户权限不一致,那么就应该分成不同角色
tabris17
2016-05-30 15:24:43 +08:00
另外,一个用户可以对应多个角色,用户间的权限细微差异,可以通过这点来实现
Ouyangan
2016-05-30 16:00:40 +08:00
恰好在写这块业务,增加 user_permission , 登录查权限的时候查两张表求并集

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/282133

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX