用户,角色,权限和特定的RBAC组?

时间:2018-06-21 13:14:57

标签: mysql database

我正在尝试为使用mysql作为数据库的项目设计数据库架构。而且我在授权部分受困,业务规则如下:

  1. 一个角色可以具有许多权限,并且一个权限可以插入许多角色中
  2. 一个用户可以有多个角色,并且一个角色可以分配给许多用户
  3. 现在这是做不到的部分,每个用户都可以处于多个“组”中,但每个用户只能分配给一个角色(按组,我是指一组人,而不是一组角色)

以下图片是我直到现在想出的,应该修改哪些内容? enter image description here

2 个答案:

答案 0 :(得分:1)

根据您对我的评论的问题和答案,这是我想出的模型:

enter image description here

这符合您的要求。与模型的主要区别在于如何设置组。

  • 组与角色的关系为1:1,可以为空(即,即使没有角色关联,组也可以存在)。
  • 在每个组中,您都有一个角色表的外键。
  • 如果您需要了解用户的角色:通过User_has_Role的各个角色+附加到用户所属的每个组的角色(通​​过Group_has_User)。

答案 1 :(得分:0)

每个组可以有一个包含用户和有效角色的表(因为一个组中的用户只能具有一个角色)。还有一个实现特定的缺陷,如果用户可以在多个组中并且一个组中他只能具有一个角色,那么必须有一些规定来确定用户的有效组,这将决定用户的有效角色。 br /> 如果用户与组的关系只是决定用户可以拥有的角色的因素,那么在用户和角色之间就没有直接关系。