我正在学习 Apache Shiro,我发现了这篇文章:
并且作者说:
.......如果需要,您可以将行为(权限)直接分配给角色。从这个意义上说,您仍将拥有基于角色的访问控制安全策略 - 只是您将拥有显式 RBAC 策略,而不是传统的隐式策略。
但这引出了一个问题——为什么要停留在角色上?您可以将行为直接分配给用户、组或您的安全策略可能允许的任何其他内容。
似乎作者更喜欢直接存储 User 和 Permission 的关系,而不是通过 Role。
虽然这看起来简单明了,但我有一些问题:
它们之间有什么本质区别吗?
数据库架构。
在基于角色的访问控制中,通常我们使用三个表来描述关系:
user
role
user_role
否,如果我使用基于资源的访问控制,构建表的正常做法是什么?