RBAC的概念
基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理rbac: 一种数据库设计思想,根据设计数据库设计方案,完成项目的权限控制.
权限:具备操作某个事务的能力
角色:一系列权限的集合
[2]权限的使用情景
2.1 不同用户登录后看到的菜单是不一样的.
2.2 不同用户看到的页面效果不一样
2.2.1 有的用户可以看见”授权”按钮,或有的用户可以看见”删除”按钮
2.3 不同用户完成的功能是不一样的.
2.3.1 有的用户可以执行删除,有的可以执行新增.
2.4场景示意图
小公司和比较简单的权限系统使用的基于用户的访问控制如下
这种访问控制只适用于操作人员比较少的系统,如果操作人员较多,对每个操作人员都 进行授权操作,无疑是非常繁琐的。 所以我们就需要基于角色的访问控制
[3]学习RBAC需要掌握的要素
3.1 如何设计数据库中表
3.2 如何根据数据库完成项目
3.3 RBAC核心是角色,在数据库设计时一定有角色
3.4 根据RBAC设计思想,设计出来的方案是非常灵活的.
[1] 需求实现方案一:传统方案,没有使用RBAC思想
数据库表结构实现如图所示
缺点:
① 新建一个用户时,在用户表中添加一条数据.
② 新建一个用户时,在关联表中添加N条数据
③ 每次新建一个用户需要添加:1+N(关联几个)条数据
[2] 需求实现方案二:基于RBAC
1.基于RBAC的设计方案
1.1 设定好在某些情况下哪些菜单需要被关联:设计角色和权限的管理
1.1.1 例如:管理员可以看到所有菜单
1.1.2 例如:销售总监可以看到”销售管理”菜单.
1.1.3 例如:普通员工只能看见系统公告中公告查看
2.2 现实生活中的职位对应1个或多个数据库中的角色.
2.在系统上线后,会在程序中添加几种比较常见的角色.并把菜单和角色关联.
3.1 以后每次新建用户时
3.1 在用户表中添加一个数据
3.2 在用户和角色关联表中添加1条或n条数据.
3.画图说明RBAC: