混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限
http://fightplane.iteye.com/blog/1278464
1. 概念说明
A 系统级权限:从角色的角度出发,不特定于任何实际的资源的权限。比如“用户是否可以修改标题”这个权限,不针对于任何特定的标题。权限赋予给某个特定的角色。采用RBAC模型实现
B 对象级权限:从对象实例的角度出发。比如针对于某个特定的标题,编辑在这个标题上的权限。采用ACL模型实现。
那么判断用户是否可以修改某条的标题的判断顺序如下:
1) 用户所属的角色是否拥有“修改标题”的权限
2) 用户或者用户组是否在某条标题的的ACL列表当中
2. RBAC权限部分的表结构说明
1)系统权限(Permission)
系统权限列表
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,系统权限id |
|
name |
varchar |
名称 |
2) 角色(Role)
角色表
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,角色id |
|
name |
varchar |
名称 |
3) 授权(authorities)
给某个角色授予多项系统级权限
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,id |
| roleid |
bigint |
角色id |
| permissionid |
bigint |
权限id |
4) 用户组成员(memeberships)
用户组以及用户组成员
|
名称 |
定义 |
说明 |
|
id |
bigint |
主键,用户id |
|
groupid |
bigint |
用户组id |
|
userid |
bigint | 用户id |
| roleid |
bigint |
角色id |
3. RBAC权限部分的关系说明
用户和角色:用户和角色是多对多的关系。但是在授予某个用户某个角色的时候,是以用户组为单位的。比如用户A在用户组1中可能是
“管理员”的角色,但是在用户组2中就可能是“普通用户”的角色。这种划分在业务系统中比较通用。当然,具体到一个用户,使用哪个用户组的角色来做判断,
是由业务来决定的。
角色和系统级权限:是一个一对多的关系。通过授权来完成。当然在授权之前,需要把需要使用的系统及权限注射到数据库的permission表。
混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限的更多相关文章
- Shiro入门之二 --------基于注解方式的权限控制与Ehcache缓存
一 基于注解方式的权限控制 首先, 在spring配置文件applicationContext.xml中配置自动代理和切面 <!-- 8配置自动代理 --> <bean cl ...
- 混合了RBAC和ACL的权限系统(一) -- 用户组织结构
最近的工作是一个基础设计,打造一个基于RBAC和ACL的权限基础组件. 这个基础组件的特点是:同时混合了RBAC和ACL的认证方式,也就是说同时提供系统级别的授权(RBAC)和对象级别的授权(ACL) ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性(转载)
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- 基于RBAC模型的权限设计:如何设计系统权限体系?
一.什么是RABC RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来间接地赋予用户权限(如下图),从而 ...
- SpringCloud微服务实战——搭建企业级开发框架(二十一):基于RBAC模型的系统权限设计
RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来间接地赋予用户权限,从而达到用户和权限解耦的目的. R ...
- 五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX
五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX ======================文件属性以及ugo权限= ...
- Linux文件权限;ACL;Setuid、Setgid、Stick bit特殊权限;sudo提权
相关学习资料 http://blog.sina.com.cn/s/blog_4e2e6d6a0100g47o.html http://blog.csdn.net/aegoose/article/det ...
- 基于RBAC模型的通用企业权限管理系统
1. 为什么我们需要基于RBAC模型的通用企业权限管理系统 管理信息系统是一个复杂的人机交互系统,其中每个具体环节都可能受到安全威胁.构建强健的权限管理系统,保证管理信息系统的安全性是十分重要的.权限 ...
随机推荐
- 杂项-JSP-Runoob:JSP 标准标签库(JSTL)
ylbtech-杂项-JSP-Runoob:JSP 标准标签库(JSTL) 1.返回顶部 1. JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通 ...
- hash练习们
610. 数对的个数 ★★ 输入文件:dec.in 输出文件:dec.out 简单对比时间限制:1 s 内存限制:128 MB Description出题是一件痛苦的事情!题目看多了也 ...
- canvas 文字转化为粒子
var canvas = document.createElement('canvas'); var cxt = canvas.getContext('2d'); var W = canvas.wid ...
- StreamingListener技术点
以下是对StreamingListene的研究,由于比较简单,故只贴代码,不做解释 /** * Created by gabry.wu on 2016/5/27. * 实现StreamingListe ...
- Saiku导出excel指标列无线条以及0与空值显示问题(三十二)
Saiku导出excel指标列无线条以及0与空值显示问题 描述: 数据库中字段值为0 ,与数据库中字段值为 null 时 ,saiku会将为0 以及为 null 的数据都不展示出来,但是我们其实希望数 ...
- Python3安装Scrapy
Microsoft Visual C++ Build Tools 最近项目在写爬虫,项目经理给了个Python Scrapy的爬虫项目,要求使用Java实现相关功能.于是乎在本地先后安装了Pytho ...
- 【Vijos1083/BZOJ1756】小白逛公园(线段树)
[写在前面]TYC (Little White) 真是太巨啦! 题目: Vijos1083 分析: 一眼看上去就是线段树啊-- 然而当我这种蒟蒻兴高采烈地把线段树模板敲了一半,却发现一个问题: 这子区 ...
- docker容器如何安装vim
mv /etc/apt/sources.list /etc/apt/sources.list.bak && \ echo "deb http://mirrors.16 ...
- mybatis中打印sql语句
在mybatis-config.xml中properties节点下,配置一个settings节点 <settings> <setting name="cacheEnable ...
- SQL Server 2008R2 Set IDENTITY_INSERT 表名 ON/OFF不能与insert into select 的语句一起执行?
大家都知数据库表中的列可以自增长,但是有时候我们需要插入数据的时候会指定这一列的数据. 这时候我们可以很简单的利用sql语句来执行新增一条的数据,如下: set IDENTITY_INSER 表名 o ...