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. Oracle:sqlplus前缀显示当前用户

    第一步:进入SQLPLUS的按照目录,cd $ORACLE_HOME/sqlplus/admin 第二步:查找ll     vi  glogin.sql 第三步:插入 命令行模式,Go, set sq ...

  2. MongoDB原子操作

    MongoDB原子操作常用命令: 1. $set: 用来指定一个键并更新键值,若键不存在则创建并赋值. { $set : { field : value } } 2. $unset: 用来删除一个键. ...

  3. CNCC2017梳理

    大牛云集的中国计算机大会:大会日程表:http://cncc.ccf.org.cn/cn/news/schedule_empty 早上的论坛可以在爱奇艺下载视频 下午的分论坛是多个同时进行的,我也只去 ...

  4. Java企业微信开发_Exception_02_java.security.InvalidKeyException: Illegal key size

    今天换了重新装了一个jdk,然后运行昨天还好好的企业微信工程,结果启动的时候就给我报了这么个错: java.security.InvalidKeyException: Illegal key size ...

  5. poj 2459 Sumsets

    Sumsets Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11612   Accepted: 3189 Descript ...

  6. HDFS--笔记

    HDFS的简介 分布式的文件系统,基于流数据模式访问和处理超大文件的分布式文件系统 Hadoop Distributed File System HDFS的优点 处理超大文件 流数据访问 运行廉价的商 ...

  7. JDBC连接数据库的几种方法

    一. 最古老的方法(通过 Driver 接口直接连接数据库) 首先创建一个 Driver 实现类的对象 Driver dirver = new com.mysql.jdbc.Driver(); 准备连 ...

  8. smm框架整合实现登录功能

    一.准备所需的jar包 1.1所需jar包 1.Spring框架jar包 2.Mybatis框架jar包 3.Spring的AOP事务jar包 4.Mybatis整合Spring中间件jar包 5.a ...

  9. C#进阶--WebApi异常处理机制

    其实对于C#异常处理大家都不陌生,但是对于在WeiApi上的异常处理实际上也和传统异常处理区别不大,但是却经过封装可以让异常更加友好,https://docs.microsoft.com/en-us/ ...

  10. Struts2-整理笔记(三)结果处理跳转、获得servletAPI原生

    在struts2中有很多种跳转方式如下是在struts-default.xml截取的一段源码,常用的跳转有 转发:dispatcher.重定向:redirect.转发到Action:chain.重定向 ...