最佳的基于角色的访问控制(RBAC)数据库模型

Jas*_*ith 40 permissions roles ruby-on-rails access-control rbac

用于跟踪Web应用程序的基于角色的访问控制的最佳数据库模式是什么?

我正在使用Rails,但谷歌链接的RBAC插件看起来没有维护(只有300个提交到SVN;最近几乎是一年前).

这个概念很简单,可以从头开始实现,但又复杂而重要,值得一试.

那么其他人如何构建和实施他们的RBAC模型呢?

小智 57

根据我在该领域的基本知识,RBAC的基本参与者是:

  • 资源.
  • 权限.
  • 用户.
  • 角色(即团体).

资源 < - require - >(一个或多个)权限.

角色 < - 是 - >(一个或多个)权限的集合.

用户 < - 可以有 - >(一个或多个)角色.

这种模型的表格是:

  • 允许
  • 角色
  • 用户
  • role_permission
  • USER_ROLE

现在,如果您希望应用程序的用户能够配置资源所需的权限,那么您可能还希望在此处包含资源.但我从来不需要那个.希望有所帮助.


Han*_*xue 20

这是一个简单的图表来说明Amr Mostafa的出色答案

在此输入图像描述

  • 您不必使用UserRoleID和RolePermissionID.而不是在User_Role中,UserID和RoleID的组合应该是唯一的和主键.对于具有RoleID和PermissionID的Role_Permission表,这是相同的. (8认同)
  • 这个图是错误的。**`用户`** `一对多` **`User_Role`** `多对一` **`角色`** `一对多` **`Role_Permission`**`多对一` **`权限`**。且**资源**实体被省略。 (7认同)