在开发设计中,权限是系统的一块重要的部分,按控制级别和分类,主要有以下三种权限:
1、使用功能权限控制,如菜单、操作等权限控制
2、数据过滤权限控制,如某些数据对特定用户可见或可操作等
3、服务许可权限,控制系统给客户的用户数、cpu核数、功能集合等控制
本文主要对分类1进行分析,大部分应用对这部分的权限控制都是基于角色控制,大体上有以下几部分相关部分内容:
1)组织/部门机构
2)用户
3)用户组或等同概念
4)角色
5)菜单/功能集合
以上内容足够满足简单的粗粒度的权限控制应用,按照rbac原则,用户和功能集合完全分离,唯一的桥梁就是角色,如果把功能权限直接赋予用户那是非常忌讳的事情,而且基本上也很少有软件这样设计,但也不排除没有。这部分内容对软件开发设计人员肯定都是熟悉的,这里就不介绍了,下面将从两部分深化应用:
一)、角色继承
细化分类1的设计,就我个人熟悉的软件中基本都没有角色继承的概念,虽然RBAC早就有这方面的规范,也许是不太好用或不太好理解的原因,导致不多人使用。这部分主要是对象思想上考虑,而且对权限分配过程中的数据量有很大缩减。一种典型的案例说:
企业中普通员工的角色一般是最基础的,经理的角色包括员工能访问的内容,并且还有更多的功能使用权限(如审批等),这时,角色可以定义如下:
员工:角色A
经理:角色B继承角色A
体现在关系型数据中就是典型的父子级概念,子节点继承父节点。角色继承的概念主要体现面向对象的思想,但是也有如下的优缺点:
优点:1、角色对象化,从设计方面考虑更加合理和分析
2、可大幅度减少权限分配数据量
缺点:1、客户不一定熟知对象思想,不易于理解,如果是实施人员参与,那会好很多,毕竟公司会培训。
2、角色继承树形结构中,如果中间节点的权限改变,将影响到所有继承于此节点的角色,所以相对适合于比较固定的权限分配情况
二)角色层次
平常在需求中会有这么个需求,不要所有的权限都由一个人分配,通常这个人是超级管理员,因为这样会存在风险,权限太大容易出问题,而且增加管理员工作量和更新不实时等情况发生,这时,角色层次概念派上用场了。操作可以大体如下:超级管理员分配各个部门的总体权限,部门内分配的权限由部门管理员分配,角色挂在部门上,本部门管理员只能看到们部门内的所有许可操作集合。以上操作属于职能分离内容,这种情况适合于有大量分公司的企业,要不然由总部定义所有角色和分配所有权限,不方便也不灵活,更不符合设计原则。
以上为本人总结对权限分配的一些理解,也建立了一种关系数据的模型图如附件,大家多交流交流,发现以上弊端及更好建议,时间关系,先简述到这。
- 大小: 122.1 KB
分享到:
相关推荐
在IT行业中,权限管理是系统安全的关键组成部分,而基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理模型是一种广泛应用的解决方案。RBAC模型通过将用户权限与角色关联,使得权限分配更加灵活...
"基于RBAC权限模型搭建的高效智能权限管理系统.pdf" 本文档介绍了基于RBAC权限模型搭建的高效智能权限管理系统,旨在确保系统信息的安全性。该系统主要包含用户信息表、角色表、权限表等模块,依托Web的计算算法,...
RBAC权限设计模型 RBAC(Role-Based Access Control,基于角色的访问控制)是一种基于角色的权限设计模型,旨在解决权限管理的复杂性和灵活性问题。RBAC模型认为权限授权实际上是Who、What、How三个问题的结合,也...
本文讨论了基于RBAC模型的通用权限管理系统的设计,主要阐述了RBAC模型的基本概念、RBAC模型的四个组件模型、核心对象模型设计和权限管理系统的设计思想。 RBAC模型的基本概念: 访问控制是针对越权使用资源的...
RBAC权限模型练习
尽管RBAC96模型在访问控制领域有着广泛的应用,但在处理某些特定场景时仍显现出一些局限性: 1. **私有权限问题**:某些权限只属于特定的角色,不应被其他角色继承。RBAC96模型中处理私有权限的方式是为每个角色...
项目概述:本源码为基于角色基础访问控制(RBAC)模型的中小型应用开发平台,采用前后端分离架构。后端基于Python的Django框架和Django REST Framework实现,前端则使用Vue.js配合ElementUI进行构建。移动端支持通过...
基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip 介绍 基于RBAC数据库模型下的权限管理系统 可实现用户、角色模块、角色、权限模块、权限的CRUD 实现登录的过滤和权限的拦截 使用技术 springboot、...
**RBAC权限模型详解** 基于角色的访问控制(Role-Based Access Control,简称RBAC)是一种在信息技术领域广泛应用的权限管理模型。它通过角色这一概念,实现了用户与权限之间的间接关联,提高了系统的安全性和管理...
本项目基于Spring,整合Spring的security模块,实现用户管理和...5.用户-角色-权限使用常规RBAC的模型,用户到角色,角色到权限均为多对多关系映射; 6、用到的表分别为: 用户表 角色表 权限表 用户角色表 角色权限表
1. **确定权限模型**:明确权限体系的基本组成元素,如用户、角色、权限等。 2. **定义角色与权限**:为不同的角色分配相应的权限,确保每个角色拥有合适的访问权限。 3. **设计角色继承结构**:构建角色之间的...
基于RBAC(Role-Based Access Control,基于角色的访问控制)模型的权限管理系统是一种广泛采用的方法,它以角色为核心,实现了灵活、高效的权限分配机制。现在,让我们深入探讨这个话题。 首先,RBAC模型的核心...
【RBAC权限管理模型】 权限管理系统在现代企业管理信息系统的安全中扮演着至关重要的角色,它确保了只有具备相应权限的用户才能访问特定的资源。基于角色的访问控制(Role-Based Access Control, RBAC)模型是一种...
RBAC权限管理模型,全称为Role-Based Access Control,是一种广泛应用于现代企业级系统中的权限管理策略。该模型的核心思想是将权限与角色关联,而非直接赋予用户,通过用户的角色分配来间接控制用户对系统资源的...
【RBAC权限模型】是一种基于角色的访问控制机制,它在20世纪90年代由George Mason大学的信息安全技术实验室(LIST)提出的RBAC96模型最为著名。RBAC模型的核心理念是通过判断用户(Who)、操作对象(What)和操作...
Role-Based Access Control(RBAC)是一种常见的权限管理模型,通过角色来分配权限,使得系统管理更加简单且安全。本模块就是基于Python3和Django框架实现的RBAC权限控制系统。 首先,我们来看一下Django框架。...
基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限设计模型是一种广泛采用的解决方案,它有效地解决了权限分配的问题,提高了系统的灵活性和可管理性。下面我们将详细探讨基于RBAC的权限设计模型...
总的来说,通过FastAPI和Vue3结合RBAC模型,我们可以实现一套完整的权限管理系统,既能保证后端接口的安全,又能灵活控制前端展示,确保不同角色的用户只能访问他们被授权的资源。这种方案在企业级应用中非常常见,...