RBAC权限模型设计
基于角色的访问控制(RBAC)是实施面向企业安全策略的一种有效的访问控制方式。
其基本思想是,对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
基本概念
RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等)
What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege,正向授权与负向授权)。
Operator:操作。表明对What的How操作。也就是Privilege+Resource
Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.
Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。
RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。
简单的说在用户和资源之间引入了一个角色,不直接把用户和资源关联起来,而是用角色和用户之间关联,角色和资源之间关联,在创建用户时给用户分配一个角色,而不是直接给他分配权限,而角色会对应相应的可以访问的资源,而资源里放的就是所能使用的权限。
如下图:
数据库设计:
一个用户可以对应多个角色、一个角色也可以对应多个用户,一个角色可以访问多个资源,一个资源也可以被多个角色共同使用。所以用户和角色、角色和资源之间都是多对多的关系
用户表字段一般有以下几个:
主键id、账号、密码、邮箱、性别等。
角色表字段一般有:
主键id、角色名称、角色描述字段
用户和角色之间的关联表:
用户id、角色id
资源表字段一般有:
主键id、菜单名称、父级菜单id、url路径、菜单图标、权限字符串(唯一功能点:可选)
资源表和角色表之间的关联表:
菜单id、角色id
在进行关联表之间的更新操作时:采用先删除后添加
通过以上的数据库设计,进行rbac权限设计(模型示例系统)模型系统图如下:
RBAC权限模型设计相关推荐
- 后台产品基本功:RBAC权限后台角色与权限设计
原创: Kevin改变世界的点滴 Kevin改变世界的点滴 昨天 后台产品经理在设计系统中,随着业务与用户量起来后.都会考虑系统的角色与权限设计.借此经典的角色 与权限设计:RBAC,基于角色的权限访 ...
- RBAC权限管理总结
2019独角兽企业重金招聘Python工程师标准>>> 一.简介 角色访问控制(RBAC) 引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privile ...
- Spring Security 实战干货: RBAC权限控制概念的理解
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 1 ...
- php注解rbac,PHP的RBAC权限详解
本文主要和大家分享PHP的RBAC权限详解,希望能帮助到大家,首先我们应该先知道权限管理要有哪些功能: (1).用户只能访问,指定的控制器,指定的方法 (2).用户可以存在于多个用户组里 (3).用户 ...
- RBAC 权限设计(转载)
来源 :https://blog.csdn.net/rocher88/article/details/43190743 这是我在网上找的一些设计比较好的RBAC权限管理 不知道,像新浪.搜狐.网易.百 ...
- RBAC权限模型及数据权限扩展的实践
原文:RBAC权限模型及数据权限扩展的实践 话说大家对RBAC权限模型应该是耳熟能详了.但真正用的好的并不多.并且原始的RBAC模型并不包括数据权限的管理,网上也差点儿没有相关的文章可以參考.本人经过 ...
- yii2 rbac权限控制之菜单menu详细教程
为什么80%的码农都做不了架构师?>>> 作者:白狼 出处:http://www.manks.top/yii2_rbac_menu.html本文版权归作者,欢迎转载,但未经作者 ...
- RBAC权限模型库表设计
本文来说下RBAC权限模型的库表应该如何来设计 文章目录 概述 概述
- rbac权限管理5张表_thinkphp框架下基于rbac的后台程序
最近接了一个小项目,给一家车辆运营管理的公司做一个小的后台管理程序(说是推进无纸化办公模式). 项目的情况是,根据不同部门,不同权限的员工给予不同的操作许可. 增加实时录入功能(搭配移动端使用). 像 ...
最新文章
- 恭喜你发现了宝藏,编程习惯-日积月累
- python之互斥锁
- asp.net代码中修改web.config节点
- 华硕老毛子(Padavan)——校园局域网路由表设置(校园网优先局域网访问)
- 出现这些迹象,说明你面试可能没戏了
- 剑指offer (03):数组中重复的数字 (C++ Python 实现)
- 语句删除数据库表中有默认字段值的字段
- 《C专家编程》阅读笔记
- H3C 无线控制器WX2510H-F与无线接入点WA5320-C-EI的安装与关联详细指导书
- u盘的大小在计算机无法显示,Win10电脑插入U盘后没有显示可用容量打不开无法读取如何解决...
- “超人”为什么最后1秒拯救地球?
- Zotero+onedrive同步问题
- 以前端的角度出发做好SEO需要考虑什么
- 年底了,一起来撸个视频播放器吧!
- GIS基础(1)空间参考
- RecyclerView系列之加载更多
- 网站ftp上传工具,六款值得你去使用的网站ftp上传工具
- 袋鼠妈妈和植物主义哪个适合孕妇用?主要看这几点
- html如何自动转到ie打开,在HTML怎么修改代码以达到在点击超链接时默认以IE浏览器打开?...
- 个人导航网源码 官方权威版本
热门文章
- C#使用ManagementClass获取计算器硬件信息
- arduino 1.8.4 安装包
- 宁海县妇幼保健医院灾备建设
- django orm mysql_django指定mysql数据库 ORM查询
- 正则表达式 密码需至少包含数字、字母、符号中的2种
- 电脑上什么软件可以录制视频
- 小主机折腾记12 HP 285G3 PRO MT
- Unity ShaderLab: 2D/3D Wave Flag Shader(飘动旗帜)的实现
- Siamese network
- [RK3399][Android8.1] 调试记录 --- LT9611驱动调试