RBAC模型的核心是在用户和权限之间引入了角色的概念,将用户和权限进行解耦,采用用户确定角色,角色分配权限,进而间接达到给用户分配角色的目的
这样采用的方式优点在于
(1)降低管理成本——由于一个角色可以对应更多人员,则统一对角色进行权限分配管理而不是对人员直接进行权限的分配管理,可以减少管理上的成本和出错概率,更加符合企业管理的方式;
(2)权责分配明确——将用户群分为明确的角色群体,对角色群体统一进行权限分配,明确客户的权限及相对应的责任,相对于原来的“用户——权限”的模型在权责进行了更细粒度的权责划分规划;
(3)权责分配更谨慎——由于角色下的用户一般为多人,则在分配权限时需要谨慎又明确的分配操作
图片来自人人都是产品经理
确定RBAC的概念后,接下来确定下用户和角色之间的关系:
确定用户和角色的关系之前,首先明确用户和角色的定义,用户即数据库中的实体,例如“胡凯”,“一个注册的用户账号”等,而角色则是对一定数量权限的集合,是权限的表达载体,如操作系统中的“超级管理员,管理员,运营人员,开发人员等”。
用户和角色之间存在两种关系:多对一,多对多两种关系;在现实生活中一般以多对多的关系为主,具体情况需要具体分析,假如一家公司的一位人员只对应一个角色时,则这时可以采用一对一的模型
从业务上分析:
多对一的模型
下图中,一个人只有一个角色,但是一个角色可以对应多个用户,如产品经理这个角色的用户有张轩和徐峰两人
多对多的模型
下图中,一个人可以拥有不同的角色,统一个角色也可以对应不同的用户,如徐峰不仅是产品经理,同样也是python开发工程师,这样用户和角色的关系就进一步发展到了多对多的关系
从数据库角度来分析:
RBAC的模型可以采用下图的数据库模式,用户表和用户—角色关联表通过用户id建立关系,同时用户-角色关联表和角色表通过角色id建立关系,达到了用户表和角色表之间的关系的建立;同理角色表和权限表之间通过角色权限关联表建立起关系,到这一步,就可以看到用户表和权限表通过角色表建立起了一种间接的关系
RBAC的数据库模型

转载于:https://www.cnblogs.com/seshine/p/8022855.html

RBAC(Role-Based Access Control,基于角色的权限访问控制)—权限管理设计相关推荐

  1. [认证授权] 6.Permission Based Access Control

    在前面5篇博客中介绍了OAuth2和OIDC(OpenId Connect),其作用是授权和认证.那么当我们得到OAuth2的Access Token或者OIDC的Id Token之后,我们的资源服务 ...

  2. 基于角色-功能-资源的权限控制模型的设计与实现-引子

    摘要 本文在RBAC基本思想的基础上,增加资源权限的概念,设计了在企业应用系统中用户权限控制的一种具体的简单实现方法. 关键字 用户权限控制 名词解释 资源权限:资源指的是纳入企业应用的一切需要管理的 ...

  3. 基于微服务API级权限的技术架构

    一般而言,企业内部一套成熟的权限系统,都是基于角色(Role)的 访问控制方法(RBAC – Role Based Access Control),即权限 (Permission)与角色相关联,用户( ...

  4. java的string访问某个元素_架构师必懂的——RBAC基于角色的访问权限设计

    RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理.这 ...

  5. J0ker的CISSP之路:复习Access Control(10)

    本文同时发布在:[url]http://netsecurity.51cto.com/art/200806/77992.htm[/url] 在<J0ker的CISSP之路>的上一篇文章< ...

  6. RBAC模型概述以及功能权限数据权限设计思路

    RBAC模型概述 1. 什么是RBAC RBAC模型:Role-Based Access Control 基于角色得访问控制 通俗说,就是,权限不会直接分配到用户,而是分配到用户所拥有得角色 这样的好 ...

  7. RBAC新解:基于资源的权限管理(Resource-Based Access Control)

    原文地址 转载地址 本文讨论以角色概念进行的权限管理策略及主要以基于角色的机制进行权限管理是远远不够的.同时我将讨论一种我认为更好的权限管理方式 什么是角色 当说到程序的权限管理时,人们往往想到角色这 ...

  8. RBAC(基于角色的访问控制权限的基本模型)

    (一)基本概念 1.定义 RBAC(Role-Based Access Control),也就是所谓的**"基于角色的访问控制权限"**. 2.优势 在RBAC中,用户不再直接与权 ...

  9. RBAC 基于角色的访问控制

    RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ...

最新文章

  1. PHP的mysqli扩展
  2. 采用串口DMA双缓冲方法,快速更新外部FLASH中文字库
  3. 华为云网络覆盖全球2500+站点,打造高品质、低成本接入体验
  4. 在ASP.NET Core中创建自定义端点可视化图
  5. 慎用PHP $_REQUEST数组
  6. 一行或多行文本内容溢出显示省略号
  7. java数组为什么可以迭代吗_另一个“只能迭代数组或java.lang.Iterable实例”的问题...
  8. mysql自动更新时间的触发器
  9. 目标检测——夏侯南溪目标检测模型之输出信息显示
  10. Python基础——min/max与np.argmin/np.argmax
  11. win10录屏_关于使用Win10自带录屏工具小技巧
  12. 世界流调——Gary
  13. 动态本体 palantir
  14. 使用jQuery调色器farbtastic--触发change事件
  15. Java编程基础19——Map集合斗地主案例
  16. 献给爱折腾的你:虚拟机VMware安装macOS15 Catalina 附已经装好的系统(打开即用)
  17. Excel无法vlookup事件
  18. 文献解读:纽约市废水系统宏病毒组初探
  19. python分类汇总_数据分析番外篇13_利用Python实现分类汇总
  20. 数据基本类型各占几个字节?

热门文章

  1. Class.forName解析以及使用
  2. NodeJS、NPM安装配置与测试步骤(windows版本)
  3. 连载MariaDB Crash Cource中文笔记(第二)
  4. 还原sql server数据库时,无法获得对数据库的独占访问权
  5. 今天微软的office 2010终于发布了!
  6. 2019年值得关注的八大DevOps趋势
  7. 不要在 Spring Boot 集成测试中使用 @Transactional
  8. 阿里新财报霸道惨了!菜鸟加速全球72小时必达,世界都沸腾!
  9. Fragment第二次加载没有数据
  10. 将Mongodb部分数据导入mysql数据库