1.概念:
基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强
制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成
为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理rbac: 一种数
据库设计思想,根据设计数据库设计方案,完成项目的权限控制.
权限:具备操作某个事务的能力
角色:一系列权限的集合
2.权限的使用情景
不同用户登录后看到的菜单是不一样的.
不同用户看到的页面效果不一样
有的用户可以看见”授权”按钮,或有的用户可以看见”删除”按钮
不同用户完成的功能是不一样的.
有的用户可以执行删除,有的可以执行新增.
场景示意图
小公司和比较简单的权限系统使用的基于用户的访问控制如下
这种访问控制只适用于操作人员比较少的系统,如果操作人员较多,对每个操作人员都 进行授权操作,无疑是非常繁琐的。 所以我们就需要基于角色的访问控制
3.基于RBAC的设计方案
- 基于RBAC的设计方案
设定好在某些情况下哪些菜单需要被关联:设计角色和权限的管理
例如:管理员可以看到所有菜单
例如:销售总监可以看到”销售管理”菜单.
例如:普通员工只能看见系统公告中公告查看
现实生活中的职位对应1个或多个数据库中的角色.
- 在系统上线后,会在程序中添加几种比较常见的角色.并把菜单和角色关联.
- 以后每次新建用户时
在用户表中添加一个数据
在用户和角色关联表中添加1条或n条数据.
画图说明RBAC:
4.数据库设计
权限表:平时小型项目中可以省略.
用户组表:对用户进行分组,每个用户组绑定多个角色,把用户放入到用户组后,具有对应多个角色.
角色组:角色组对应多个角色,用户组和角色组
完成访问控制时,需要对什么类型表进行访问控制(在简单版中)把需要控制的内容和角色进行直接关联.