一个基于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)的显著的两大特征是:1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。

1,用户表 保存系统用户信息,如张三、李四,字段可以有id、name、fullname、email、phone、……
2,角色表 保存角色信息,如学生、管理员,字段有id、name、……
3,权限表 保存系统的权限信息,可定义系统哪些模块公开,或者什么时段可访问,字段有id,权限名
4,用户角色表 关联用户和角色的关系表,如张三-学生,李四-管理员,字段有id、用户id、角色id,根据用户就知道所属的角色
5,角色权限表 关联角色和权限的关系表 字段信息:id,角色id,权限id
6,用户权限表 用于单独针对用户赋权,字段信息: id,用户id,  权限id
7,菜单表  总体菜单信息  字段信息:菜单id,菜单fid,菜单名,菜单代码(用于同级、同目录菜单的排序),菜单类型(0-目录 1-模块),备注,目标位置
8,权限菜单表 用于关联权限和菜单的关系表,字段信息:id,菜单id,权限id

基本思路:

用户跟角色关联
角色跟权限关联
权限跟菜单关联

时间: 2024-10-27 06:25:31

一个基于RBAC的通用权限设计清单的相关文章

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

注:RBAC0与RBAC1不同在于权限继承.关于RBAC1的权限设计,敬请关注作者后续CSDN博客.1,用户表 保存系统用户信息,如张三.李四,字段可以有id.name.fullname.email.phone.……2,角色表 保存角色信息,如学生.管理员,字段有id.name.……3,权限表 保存系统的权限信息,可定义系统哪些模块公开,或者什么时段可访问,字段有id,权限名4,用户角色表 关联用户和角色的关系表,如张三-学生,李四-管理员,字段有id.用户id.角色id,根据用户就知道所属的角

多租户通用权限设计(基于casbin)

多租户通用权限设计(基于 casbin) 所谓权限控制, 概念并不复杂, 就是确认某个操作是否能做, 本质上仅仅就是个bool判断. 权限几乎是每个系统必不可少的功能, 和具体业务结合之后, 在系统中往往表现的非常复杂和难于控制, 很大部分原因是把权限和具体业务结合的太过紧密, 把业务的复杂度也加入到权限控制中来了. 一直以来, 都有个想法, 想做一套简单好用的通用权限系统, 和任何业务都没有关系, 仅仅就是权限本身的功能. 对此, 做过很多尝试, 由于设计能力有限, 最后都不了了之, 没能坚持

通用权限设计(springmvc + mybatis + ligerui)

最近一直在思考,如何设计一个毕业论文呢?后台就回想起自己以前大学做的项目,每次都需要开发一个后台网站,及其繁琐,后来就慢慢有了个想法,开发一个网站固件,可以动态配置,于是就动手设计了起来... 通用权限设计 每一个网站,都有着相似的后台界面,现在比较流行的DWZ.LIGERUI.EXTJS等js框架,都提供了相似的界面.同时,后台网站的安全也是非常重要的.那么,为了开发上的方便,很有必要将一个后台网站做成一个通用的网站固件.这样子带来的好处:可以动态配置后台网站,极大简便了重复造轮子的功夫. 主

通用权限设计

1.  可以跟角色给用户权限,用户权限字段存的数据格式为:ID_菜单英文名称; ID_菜单英文名称;……; ID_功能英文名称;……. 2.  用户登录时,权限存在session里: 3.  初始化菜单,判断用户权限是否存在该菜单,如果存在就出现,不存在就隐藏. 4.  页面功能java在拦截器了判断权限,PHP在同一入口了拦截,.net就在页面的基类里判断或者在Page_Init里设置控件隐藏或显示. 通用权限设计

RBAC用户角色权限设计

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成“用户-角色-权限”的授权模型.在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系.(如下图) 角色是什么?可以理解为一定数量的权限的集合,权限的载体.例如:一个论坛系统,“超级管理员”.“版主”都是角色.版主可管理版内的帖子.可管理版内的用户等,这些是权限.要给某个用户授予这些权限,不需要直接将

.net通用权限设计源码

经过一年多的设计编码和测试,公司通用权限系统对业务部门提供了比较稳定.便捷和灵活的支撑. 该系统分为两部分:配置界面和WCF服务. 界面:权限系统管理员可以通过配置界面的方式对各部门或者组织机构的人员进行业务权限分配操作. WCF服务:业务开发人员可以通过权限系统提供的接口服务,获取业务权限数据,对业务系统进行开发. 该设计的好处就是权限系统的可移植性更高,权限系统可以单独部署,发布对外的服务接口即可,和业务系统之间耦合性更低,从而达到设计模式的核心价值高内聚,低耦合. IIS部署示例如下: 权

大话设计,没有模式—通用权限设计与实现

当代码写多了,总有些是经验,但经验是什么呢?if-else用的次数比别人多?显然不是.有些超棒的设计可以谓之经验! 功能权限网络上流行的经典的权限设计是[主体]- [领域] - [权限]( who.what.how问题原型 ) 的设计思想,其中: [主体]可以是用户,可以是角色,也可以是一个部门 [领域]可以是一个模块,可以是一个页面,也可以是页面上的按钮 [权限]可以是"可见",可以是"只读",也可以是"可用"(如按钮可以点击) 为了简化程序开

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

http://fightplane.iteye.com/blog/1278464 1. 概念说明 A 系统级权限:从角色的角度出发,不特定于任何实际的资源的权限.比如“用户是否可以修改标题”这个权限,不针对于任何特定的标题.权限赋予给某个特定的角色.采用RBAC模型实现 B 对象级权限:从对象实例的角度出发.比如针对于某个特定的标题,编辑在这个标题上的权限.采用ACL模型实现. 那么判断用户是否可以修改某条的标题的判断顺序如下:    1) 用户所属的角色是否拥有“修改标题”的权限    2)

一个基于POI的通用excel导入导出工具类的简单实现及使用方法

前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴.经过思考,认为一百个客户在录入excel的时候,就会有一百个格式版本,所以在实现这个功能之前,所以要统一excel的格式.于是提供了一个通用excel模版的下载功能.当所有客户用模版录入好数据再上传到系统,后端对excel进行解析,然后再持久化到数据库. 概述: 此工具类的几大特点 1.基本导入导出