我正在尝试使用基于角色的访问控制设计应用程序。我还设计了ER图。 所以我在这里尝试实现 USER 将有一个 ROLE ,并根据特定的 ROLE 获得权限在 resource_role 表中设置资源。
如果我犯了任何错误,请提出建议。
在互联网上搜索 RBAC ER图时,我遇到了一些像这样的设计。
来源: - GitHub Link和Youtube
在此ER图中,我有一些问题如下: -
用户如何拥有多个 ROLE ,因为三者之间没有关系,即 USER , ROLE 和资源即可。如何识别哪个 ROLE 用于特定用户?
user_role 桥接表如何链接到一个且只有一个关系中的角色?由于 USER 可以附加许多 ROLE 。
提前感谢所有人。
答案 0 :(得分:1)
您假设必须“为用户识别使用哪个角色”,但(1)并非绝对必要,(2)(我将扮演哪个角色)可以是用户在登录期间需要输入的信息,然后存储在他的会话上下文中。
这并非绝对必要,因为resource_role表背后的语义可能类似于“访问资源RES需要用户具有角色ROLE”。然后授予访问权限只是搜索用户是否确实具有所需角色,并且没有“用户现在正在扮演哪个角色”的概念。