RBAC权限模型(一)_简介

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 传统设计方案

  1. 用户信息表
    • 用户ID
    • 用户名
    • 密码
  2. 菜单信息表
    • 菜单ID
    • 菜单名
    • 菜单URL
    • 上级ID
  3. 用户菜单信息表
    • 用户ID
    • 菜单ID
      数据库设计

3.3 RBAC设计方案

  1. 用户信息表
    • 用户ID
    • 用户名
    • 密码
  2. 菜单信息表
    • 菜单ID
    • 菜单名
    • 菜单URL
    • 上级ID
  3. 角色信息表
    • 角色ID
    • 角色名
    • 角色描述
  4. 用户角色信息表
    • 用户ID
    • 角色ID
  5. 角色菜单信息表
    • 角色ID
    • 菜单ID
      RBAC

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值