RBAC数据库设计

时间:2024-04-08 21:01:46

1.概念:

基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强

制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成

为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理rbac: 一种数

据库设计思想,根据设计数据库设计方案,完成项目的权限控制.

权限:具备操作某个事务的能力

角色:一系列权限的集合

2.权限的使用情景

不同用户登录后看到的菜单是不一样的.

不同用户看到的页面效果不一样

有的用户可以看见”授权”按钮,或有的用户可以看见”删除”按钮

不同用户完成的功能是不一样的.

有的用户可以执行删除,有的可以执行新增.

场景示意图

小公司和比较简单的权限系统使用的基于用户的访问控制如下

RBAC数据库设计

这种访问控制只适用于操作人员比较少的系统,如果操作人员较多,对每个操作人员都 进行授权操作,无疑是非常繁琐的。 所以我们就需要基于角色的访问控制

RBAC数据库设计

3.基于RBAC的设计方案

  1. 基于RBAC的设计方案

设定好在某些情况下哪些菜单需要被关联:设计角色和权限的管理

例如:管理员可以看到所有菜单

例如:销售总监可以看到”销售管理”菜单.

例如:普通员工只能看见系统公告中公告查看

现实生活中的职位对应1个或多个数据库中的角色.

  1. 在系统上线后,会在程序中添加几种比较常见的角色.并把菜单和角色关联.
  2. 以后每次新建用户时

在用户表中添加一个数据

在用户和角色关联表中添加1条或n条数据.

画图说明RBAC:

RBAC数据库设计

4.数据库设计

权限表:平时小型项目中可以省略.

用户组表:对用户进行分组,每个用户组绑定多个角色,把用户放入到用户组后,具有对应多个角色.

角色组:角色组对应多个角色,用户组和角色组

完成访问控制时,需要对什么类型表进行访问控制(在简单版中)把需要控制的内容和角色进行直接关联.

5. 详细版中是跟权限进行关联

RBAC数据库设计