在开发设计中,权限是系统的一块重要的部分,按控制级别和分类,主要有以下三种权限:
1、使用功能权限控制,如菜单、操作等权限控制
2、数据过滤权限控制,如某些数据对特定用户可见或可操作等
3、服务许可权限,控制系统给客户的用户数、cpu核数、功能集合等控制
本文主要对分类1进行分析,大部分应用对这部分的权限控制都是基于角色控制,大体上有以下几部分相关部分内容:
1)组织/部门机构
2)用户
3)用户组或等同概念
4)角色
5)菜单/功能集合
以上内容足够满足简单的粗粒度的权限控制应用,按照rbac原则,用户和功能集合完全分离,唯一的桥梁就是角色,如果把功能权限直接赋予用户那是非常忌讳的事情,而且基本上也很少有软件这样设计,但也不排除没有。这部分内容对软件开发设计人员肯定都是熟悉的,这里就不介绍了,下面将从两部分深化应用:
一)、角色继承
细化分类1的设计,就我个人熟悉的软件中基本都没有角色继承的概念,虽然RBAC早就有这方面的规范,也许是不太好用或不太好理解的原因,导致不多人使用。这部分主要是对象思想上考虑,而且对权限分配过程中的数据量有很大缩减。一种典型的案例说:
企业中普通员工的角色一般是最基础的,经理的角色包括员工能访问的内容,并且还有更多的功能使用权限(如审批等),这时,角色可以定义如下:
员工:角色A
经理:角色B继承角色A
体现在关系型数据中就是典型的父子级概念,子节点继承父节点。角色继承的概念主要体现面向对象的思想,但是也有如下的优缺点:
优点:1、角色对象化,从设计方面考虑更加合理和分析
2、可大幅度减少权限分配数据量
缺点:1、客户不一定熟知对象思想,不易于理解,如果是实施人员参与,那会好很多,毕竟公司会培训。
2、角色继承树形结构中,如果中间节点的权限改变,将影响到所有继承于此节点的角色,所以相对适合于比较固定的权限分配情况
二)角色层次
平常在需求中会有这么个需求,不要所有的权限都由一个人分配,通常这个人是超级管理员,因为这样会存在风险,权限太大容易出问题,而且增加管理员工作量和更新不实时等情况发生,这时,角色层次概念派上用场了。操作可以大体如下:超级管理员分配各个部门的总体权限,部门内分配的权限由部门管理员分配,角色挂在部门上,本部门管理员只能看到们部门内的所有许可操作集合。以上操作属于职能分离内容,这种情况适合于有大量分公司的企业,要不然由总部定义所有角色和分配所有权限,不方便也不灵活,更不符合设计原则。
以上为本人总结对权限分配的一些理解,也建立了一种关系数据的模型图如附件,大家多交流交流,发现以上弊端及更好建议,时间关系,先简述到这。
- 大小: 122.1 KB
分享到:
相关推荐
介绍RBAC模型的有关概念,RBAC权限模型的介绍和分析
基于RBAC权限模型搭建的高效智能权限管理系统.pdf
本项目基于Spring,整合Spring的security模块,实现用户管理和...5.用户-角色-权限使用常规RBAC的模型,用户到角色,角色到权限均为多对多关系映射; 6、用到的表分别为: 用户表 角色表 权限表 用户角色表 角色权限表
本资源是基于RBAC权限管理模型思想实现的完整JAVA代码,有数据库脚本,对于基于RBAC思想的开发具有很好的启发与帮助作用。
基于RBAC改进模型的角色权限及层次关系分析
RBAC权限管理模型.doc RBAC权限管理模型.doc
java基于RBAC的权限设计模型,很实用的,是我在做人力资源管理项目中用到的RBAC权限设计,希望大家能用得到
项目概述:本源码为基于角色基础访问控制(RBAC)模型的中小型应用开发平台,采用前后端分离架构。后端基于Python的Django框架和Django REST Framework实现,前端则使用Vue.js配合ElementUI进行构建。移动端支持通过...
基于 spring-security 实现 RBAC 权限模型-hello-security
基于rbac模型的权限管理系统,角色,权限,用户等的权限分配
react技术栈的rbac权限模型最佳实践项目源码.zip Getting started # clone the project git clone .git # enter the project directory cd web-rbac-admin # install dependency yarn install # develop yarn ...
spring-security-project.zip- Spring Security实现RBAC权限模型demo
介绍RBAC权限管理模型的基本定义和结构
基于RBAC模型的通用权限管理系统的设计(数据模型)
基于RBAC权限管理数据库表设计
基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手 提供 lambda 、stream api 、webflux 的生产实践 ...
基于角色的访问控制的rbac的权限模型,可以运行,很不错的学习资源
针对传统RBAC模型的不足,提出一种新的RBAC权限模型。该模型在传统的RBAC模型的基础上引入了岗位和机构两个实体,使得权限的管理配置更加灵活,同时增加了数据权限管理,实现了数据权限和功能权限的集成处理。该方案借助...
基于RBAC的权限设计模型:RBAC 模型作为目前最为广泛接受的权限模型。
主要介绍了RBAC权限模型,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧