RBAC: 基于角色的访问控制(Role-Based Access Control)
本文只讨论两种基于角色的访问控制的不同点,不涉及权限设计的数据库设计。
基于角色的访问控制(Role-Based Access Control)可分为隐式角色访问控制和显式角色访问控制。
隐式角色访问控制:没有明确定义一个角色到底包含了哪些可执行的行为。
显式角色访问控制:也称为“基于资源的访问控制”,因为这种权限设计的粒度细化到了资源层面,资源有很多种,比如数据库表的增删查改、url、菜单、按钮等等。
来看一个隐式角色访问控制的例子:
if (user.hasRole("Project Manager")) {
    //页面显示某个按钮
} else {
    //页面不显示某个按钮
}
如果需求改变了,另外一个角色要显示该按钮,那么就必须改变上面的代码为:
if (user.hasRole("Project Manager") || user.hasRole("Department Manager") ) {
    //页面显示某个按钮
} else {
    //页面不显示某个按钮
}
那以后如果还有其他角色呢,可以想象,这种权限设计方式有多糟糕。
再来看一个显示角色访问控制(基于资源的访问控制)的例子:
if (user.isPermitted("projectReport:view:12345")) {
    //页面显示某个按钮
} else {
    //页面不显示某个按钮
}
如果现在的需求改了,那么只要在该角色对应的权限集合里面再加上"projectReport:view:12345"这一资源访问权限即可,比隐式角色访问权限需要去修改源代码要方便得多。
参考文章:http://www.thinksaas.cn/topics/0/150/150841.html
RBAC: 基于角色的访问控制(Role-Based Access Control)的更多相关文章
- Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role
		<Windows Azure Platform 系列文章目录> 今天上午刚刚和客户沟通过,趁热打铁写一篇Blog. 熟悉Microsoft Azure平台的读者都知道,在老的Classic ... 
- Azure ARM (17) 基于角色的访问控制 (Role Based Access Control, RBAC) - 自定义Role
		<Windows Azure Platform 系列文章目录> 在上面一篇博客中,笔者介绍了如何在RBAC里面,设置默认的Role. 这里笔者将介绍如何使用自定的Role. 主要内容有: ... 
- YII RBAC基于角色的访问控制
		基于角色的访问控制( Role-Based Access Control ),是一种简单的而又强大的集中访问控制.基于Yii Framework 的 authManager 组件实现了分等级的 RBA ... 
- RBAC基于角色的访问控制
		RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ... 
- RBAC 基于角色的访问控制
		RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色- ... 
- RBAC(基于角色的访问控制权限)表结构
		Rbac 支持两种类,PhpManager(基于文件的) 和 DbManager(基于数据库的) 权限:就是指用户是否可以执行哪些操作 角色:就是上面说的一组操作的集合,角色还可以继承 在Yii2.0 ... 
- Yii中 RBAC(基于角色的访问控制权限)表结构原理分析
		这里有几个概念很重要,我简单用大白话说一下; 权限:就是指用户是否可以执行哪些操作. 如:小张可以发帖.回帖.浏览,小红只能回帖.浏览 角色:就是上面说的一组操作的集合. 如:高级会员有发帖.回帖.删 ... 
- RBAC (基于角色的访问控制)
		基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而 ... 
- YIi 权限管理和基于角色的访问控制
		验证和授权(Authentication and Authorization) 定义身份类 (Defining Identity Class) 登录和注销(Login and Logout) 访问控制 ... 
随机推荐
- POJ 2299
			上课讲了下数据结构,因为暂时没找到分块的板子题,所以做一下这道题加深一下对树状数组的理解. 题意就是求逆序对,从逆序对的定义就可以看出,方法有两种:归并 or 树状数组. 感觉树状数组更高级一点,写起 ... 
- Linux每天一个命令:iperf
			iperf命令 Iperf 是一个网络性能测试工具.Iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽.延迟抖动和数据包丢失.下载地址:https: ... 
- [HNOI2018]转盘[结论+线段树]
			题意 题目链接 分析 首先要发现一个结论:最优决策一定存在一种 先在出发点停留之后走一圈 的情况,可以考虑如下证明: 如果要停留的话一定在出发点停留,这样后面的位置更容易取到. 走超过两圈的情况都可以 ... 
- Vulkan入门流程
			原文摘自Vulkan入门流程 Vulkan是Khronos Group(OpenGL标准的维护组织)开发的一个新API,它提供了对现代显卡的一个更好的抽象,与OpenGL和Direct3D等现有api ... 
- Bitmap 位图 Java实现
			一.结构思想 以 bit 作为存储单位进行布尔值存取的数据结构. 表现为:给定第i位,该bit为1则表示true,为0则表示false. 二.使用场景及优点 适用于对布尔或0.1值进行(大量)存取的场 ... 
- python类属性在继承中的修改的影响
			class A(object): x = 1 class B(A): pass class C(A): pass # 通过父类修改类属性,子类继承的类属性也改变 A.x = 3 print(A.x, ... 
- 微软职位内部推荐-Senior Software Engineer - Front End
			微软近期Open的职位: SharePoint is a multi-billion dollar enterprise business that has grown from an on-prem ... 
- nodejs mongodb 查询要看的文章
			http://www.cnblogs.com/refactor/archive/2012/07/30/2591344.html 数组很大多数情况下可以这样理解:每一个元素都是整个键的值. db.use ... 
- 将搬家至CSDN
			emmm,感觉没利用好博客,自己也弄了一个github上面的hexo博客https://clarkkun.github.io/,但是死活传不上去内容,尴尬 ̄□ ̄||,三个博客齐头并进吧 
- 冲刺Two之站立会议4
			在完成了对主界面的设计之后,我们对自己的聊天室界面进行了优化,添加了一些标签和图片按钮等组件让界面更加美观一些.然后还查询了一些关于改进视频和音频质量的资料,准备开展相关工作. 
