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. java加密解密

    java加密解密 public class MD5Util { /** * @param args */ public static void main(String[] args) { System ...

  2. VPS搭建离线下载服务器——后网盘时代

    动机 由于学习的需要,在国外某服务器厂商购买了vps服务(至于是哪个厂商就不说啦).但是呢,就算用作梯子,一个月1T的流量总是用不完.最经觉得自己营养充足,想找点电影看看. 无奈现在百度网盘的速度真的 ...

  3. Sketch设计学习(一)

    很膜拜那些既能写出一手好代码,并且还能够懂设计懂交互的人.公司基本上都对这两块工作 分工分职,但是我觉得作为一名移动开发者,懂点设计 是必备的. 国外的很多大牛们,感觉他们虐我们千百遍了. 我觉得写代 ...

  4. Leetcode题解(32)

    107. Binary Tree Level Order Traversal II 题目 直接代码: /** * Definition for a binary tree node. * struct ...

  5. C++ 随机生成一个(0,1)之间的小数

    double p; ]; memset(s,,sizeof(s)); s[]='; s[]='.'; ;i<;i++) { s[i]=rand()%+'; } p=atof(s); cout & ...

  6. 2016-2017 ACM-ICPC, Asia Tsukuba Regional Contest D Hidden Anagrams

    题目链接:http://codeforces.com/gym/101158/attachments /* * @Author: lyucheng * @Date: 2017-10-21 12:20:0 ...

  7. Mr. Frog’s Game

    Mr. Frog’s Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  8. Python入门学习(一)

    看完了莫烦Python的视频,对于Python有了一点感觉,接下来打算把小甲鱼的视频啃完,附上学习网址:http://blog.fishc.com/category/python 小甲鱼的视频是从零基 ...

  9. AngularJS学习篇(九)

    AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据. $http.get('someUrl',config).then(s ...

  10. HTML5轻松实现拍照上传功能[转载]

    转载 http://www.18sucai.com/article/275.htm 传统方法如果想实现拍照功能,需要后台应用程序复杂的编写,但随着html5的发展,在HTML5规范的支持下,Web A ...