天天看点

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

继续阅读