- 1 概念
- 2 作用
- 3 案例
-
- 3.1 问题
- 3.2 传统设计方案
- 3.3 RBAC设计方案
-
- 1.3.4 传统设计方案与RBAC设计方案对比
- 4. 注意
1 概念
RBAC是Role-Based Access Control的简写,中文为基于角色的权限访问控制
在权限管理中引入Role【角色】概念,隔离User【用户】与Privilege【权限】
2 作用
简化权限的管理
3 案例
3.1 问题
A、B、C三个员工
A员工登录网页后,菜单显示AA、BB两个菜单项,其中AA菜单下有aa子菜单;BB菜单项下有bb子菜单
B员工登录网页后,菜单显示AA、CC两个菜单项,其中AA菜单下有aa、aaa两个子菜单;BB菜单项下有bb菜单
C员工登录网页后,菜单显示AA、BB、CC三个菜单项,其中AA菜单下有aa、aaa两个子菜单;BB菜单项下有bb、bbb两个子菜单;CC菜单项下有cc、ccc两个子菜单

3.2 传统设计方案
- 用户信息表
- 用户ID
- 用户名
- 密码
- 菜单信息表
- 菜单ID
- 菜单名
- 菜单URL
- 上级ID
- 用户菜单信息表
- 用户ID
- 菜单ID
RBAC权限模型(一)_简介1 概念2 作用3 案例4. 注意
3.3 RBAC设计方案
- 用户信息表
- 用户ID
- 用户名
- 密码
- 菜单信息表
- 菜单ID
- 菜单名
- 菜单URL
- 上级ID
- 角色信息表
- 角色ID
- 角色名
- 角色描述
- 用户角色信息表
- 用户ID
- 角色ID
- 角色菜单信息表
- 角色ID
- 菜单ID
RBAC权限模型(一)_简介1 概念2 作用3 案例4. 注意
1.3.4 传统设计方案与RBAC设计方案对比
两种设计方案的区别在于用户与菜单的映射关系实现
-
传统设计方案:A、B、C员工的用户菜单信息表
A-AA
A-BB
A-aa
A-bb
B-AA
B-CC
B-aa
B-aaa
B-cc
C-AA
C-BB
C-CC
C-aa
C-aaa
C-bb
C-bbb
C-cc
C-ccc
-
RBAC设计方案:A、B、C员工的用户菜单信息表
A-RR
B-RRR
C-RRRR
RR-AA
RR-aa
RR-BB
RR-bb
RRR-AA
RRR-CC
RRR-aa
RRR-aaa
RRR-cc
RRRR-AA
RRRR-BB
RRRR-CC
RRRR-aa
RRRR-aaa
RRRR-bb
RRRR-bbb
RRRR-cc
RRRR-ccc
一眼看去,貌似传统方案更加简单便捷,但是当需要添加员工信息时,若D员工的菜单显示与C相同,那该如何添加呢?
-
传统设计方案:
D-AA
D-BB
D-CC
D-aa
D-aaa
D-bb
D-bbb
D-cc
D-ccc
-
RBAC设计方案:
D-RRRR
答案不言而喻了
4. 注意
RBAC适用于多对多的映射关系