混合了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表。

时间: 2024-11-05 06:20:19

混合了RBAC和ACL的权限系统(二) -- 基于RBAC的系统权限的相关文章

混合了RBAC和ACL的权限系统(一) -- 用户组织结构

最近的工作是一个基础设计,打造一个基于RBAC和ACL的权限基础组件. 这个基础组件的特点是:同时混合了RBAC和ACL的认证方式,也就是说同时提供系统级别的授权(RBAC)和对象级别的授权(ACL). 1. 表结构说明 1)组织单位(Organization) 组织单位作为基本结构单位.在人员的组织结构中,是用来表示组织结构树.(例如公司) 名称 定义 说明 id bigint 主键,组织结构id name varchar 名称 dn varchar distinguish name pare

基于Flask实现后台权限管理系统 - 汇总

基于Flask实现后台权限管理系统 - 导言 基于Flask实现后台权限管理系统 - 高清图 基于Flask实现后台权限管理系统 - Flask 基于Flask实现后台权限管理系统 - 表设计 基于Flask实现后台权限管理系统 - 更多内容

五大权限:UGO权限、SetUID SetGID Sticky、ACL权限、chattr(文件系统级别的权限)、SELINUX

五大权限:UGO权限.SetUID SetGID Sticky.ACL权限.chattr(文件系统级别的权限).SELINUX ======================文件属性以及ugo权限================================== ls -l 列出文件的属性 linux文件的类型包括以下六种: -  普通文件 d 目录文件 l  链接文件 b block类型的设备文件  块设备文件 c 字符型的设备文件 s socket文件 网络类型的文件 p 管道类型的文件 u

一个基于RBAC的通用权限设计清单

RBAC即角色访问控制(Role Based Access Control) RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构成了访问权限三元组,也就是"Who对What(Which)进行How的操作".Who:权限的拥用者或主体(如Principal.User.Group.Role.Actor等等)What:权限针对的对象或资源(Resource.Class).How:具体的权限(Privilege,正向授权与负向授权). 基于

基于RBAC权限管理

一般web系统操作人员多时都会需求权限管理,一来限制操作范围,二来限制数据公开度. 现在最流行的一个模式为 RBAC (Role-Based Access Control) 基于角色的访问控制.设定权限范围定义到角色中,然后再分配到每个用户. 这里仅以一般后台管理系统为例,叙说数据结构: 需求: 菜单需要针对不同部门使用不同的菜单结构. 权限项能精确到页面中某个内容或局部功能. 基本要求:没有权限的菜单,页面中内容或链接禁止显示. 表结构 CREATE TABLE `power_item` (

基于RBAC权限管理模型学习

在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限.这就极大地简化了权限的管理. 在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色.角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收. 角色与角色的关系可以建立起来以囊括更广泛的客观情况. BAC支持三个著名的安全原则:最小权限原则,责任分离原则和数据抽象原则. (1)最小权限原则之所以被RBAC所支持,是因

Linux文件权限;ACL;Setuid、Setgid、Stick bit特殊权限

相关学习资料 http://blog.sina.com.cn/s/blog_4e2e6d6a0100g47o.html http://blog.csdn.net/aegoose/article/details/25439649 目录 1. Linux文件系统权限 2. Linux目录文件权限的安全配置 1. Linux文件系统权限 文件与(或)目录是文件系统的具体表现形式,在Linux系统管理部分,文件与目录管理映射了Linux文件系统管理策略的重要方面 0x1: 文件系统的默认权限(umask

【转】mfc win7获得管理员权限 使用WIN7风格 使用当前系统风格

原帖:http://blog.csdn.net/zengweicdut/article/details/8837688 在win7下,操作系统文件夹下的东西,需要程序拥有管理员权限才可以,程序拥有管理员权限的方法为: 一.添加管理员权限 1.在Resource View中添加一个文件夹,名称为24,将文件夹下的资源名称改为1.操作如图: (1) (2) (3) 2.在资源1中添加下面的值,将下面的文字复制,粘贴进去就可以: <?xml version="1.0" encoding

linux系统下修改文件夹目录权限

linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件-文件夹权限.以主文件夹下的一个名为cc的文件夹为例. 下面一步一步介绍如何修改权限: 1.打开终端.输入su(没 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何修改Linux文件