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

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

  1. RBAC(Role-Based Access Control)基于角色的访问控制

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

  2. Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role

    <Windows Azure Platform 系列文章目录> 今天上午刚刚和客户沟通过,趁热打铁写一篇Blog. 熟悉Microsoft Azure平台的读者都知道,在老的Classic ...

  3. RABC(Role-Based Access Control) 基于角色的权限访问控制

    基于角色的权限访问控制(Role-Based Access Control),通过角色绑定权限,然后给用户划分角色.在web应用中,可以将权限理解为url,一个权限对应一个url. 使用thinkph ...

  4. Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role

    <Windows Azure Platform 系列文章目录> 在上面一篇博客中,笔者介绍了如何在RBAC里面,设置默认的Role. 这里笔者将介绍如何使用自定的Role. 主要内容有: ...

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

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

  6. RBAC(Role-Based Access Control,基于角色的访问控制)

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

  7. Azure RBAC(Roles Based Access Control)正式上线了

    期盼已久的Azure RBAC(Roles Based Access Control)正式上线了. 在非常多情况下.客户须要对各种类型的用户加以区分,以便做出适当的授权决定.基于角色的訪问控制 (RB ...

  8. Custom Roles Based Access Control (RBAC) in ASP.NET MVC Applications - Part 1 (Framework Introduction)

    https://www.codeproject.com/Articles/875547/Custom-Roles-Based-Access-Control-RBAC-in-ASP-NET Introd ...

  9. Risk Adaptive Information Flow Based Access Control

    Systems and methods are provided to manage risk associated with access to information within a given ...

随机推荐

  1. mybatis返回int类型报null

    解决这个问题,是当查出来为NULL时,结一个默认值,如:0. MySQL: SELECT IFNULL(MAX(id),0)AS sort FROM table Oracle: SELECT nvl( ...

  2. 算法改进 | java语言中判断素数

    参考文章:http://blog.csdn.net/kp_liu/article/details/37569507 http://blog.csdn.net/huang_miao_xin/articl ...

  3. WinForm 菜单控件

    一:MenuStrip 菜单条 MenuStrip 是应用程序菜单条的容器. 二:ToolStripMenuItem 像上面图中, 文件 格式 等这些菜单当中的一级菜单以及文件中的 新建 打开 分割条 ...

  4. ES6模块之export和import详解

    ES6中的模块即使一个包含JS代码的文件,在这个模块中所有的变量都是对其他模块不可见的,除非我们导出它.ES6的模块系统大致分为导出(export)和导入(import)两个模块. 1.模块导出(ex ...

  5. HDU 1892 See you~(二维树状数组)

    See you~ Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Su ...

  6. Android 开发笔记___基本适配器的使用__BaseAdapter

    之前用到过ArryAdapter适用于纯文本的列表数据,SimpleAdapter适用于带图标的列表数据,但在实际应用中常常有更复杂的列表,比如同一项中存在多个控件,这时候用前面的两个会比较复杂,而且 ...

  7. CSS与JS中的相对路径引用

    javascript和css文件中采用相对路径,其基准路径是完全不同的. 1.javascript引用资源(比如图片)相对路径是以宿主路径(被引用的网页比如你在首页index.php引用了某js文件, ...

  8. JAVAscript学习笔记 js事件 第一节 (原创) 参考js使用表

    <!DOCTYPE html> <html lang="en" onUnload="ud()"> <head> <me ...

  9. iOS隐藏导航栏底部灰线

    首先创建 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #de38a5 } span.s1 { } span.s ...

  10. (11.13)Java小知识!

    今天想要与大家分享一下有关于构造方法的知识! 构造方法的定义与作用 构造方法是一种特殊类型的方法.当一个对象被创建的时候,构造方法用来初始化对象,也就是说构造方法其实是一个名词而不是动词,像我刚刚开始 ...