- 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适用于多對多的映射關系