天天看點

RBAC權限模型(一)_簡介1 概念2 作用3 案例4. 注意

  • 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兩個子菜單

RBAC權限模型(一)_簡介1 概念2 作用3 案例4. 注意

3.2 傳統設計方案

  1. 使用者資訊表
    • 使用者ID
    • 使用者名
    • 密碼
  2. 菜單資訊表
    • 菜單ID
    • 菜單名
    • 菜單URL
    • 上級ID
  3. 使用者菜單資訊表
    • 使用者ID
    • 菜單ID
      RBAC權限模型(一)_簡介1 概念2 作用3 案例4. 注意

3.3 RBAC設計方案

  1. 使用者資訊表
    • 使用者ID
    • 使用者名
    • 密碼
  2. 菜單資訊表
    • 菜單ID
    • 菜單名
    • 菜單URL
    • 上級ID
  3. 角色資訊表
    • 角色ID
    • 角色名
    • 角色描述
  4. 使用者角色資訊表
    • 使用者ID
    • 角色ID
  5. 角色菜單資訊表
    • 角色ID
    • 菜單ID
      RBAC權限模型(一)_簡介1 概念2 作用3 案例4. 注意

1.3.4 傳統設計方案與RBAC設計方案對比

兩種設計方案的差別在于使用者與菜單的映射關系實作

  1. 傳統設計方案: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

  2. 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相同,那該如何添加呢?

  1. 傳統設計方案:

    D-AA

    D-BB

    D-CC

    D-aa

    D-aaa

    D-bb

    D-bbb

    D-cc

    D-ccc

  2. RBAC設計方案:

    D-RRRR

答案不言而喻了

4. 注意

RBAC适用于多對多的映射關系

繼續閱讀