一,类什么是权限管理
一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。
二,权限分类
1), 从控制力度来看,可以将权限管理分为两大类:
1,功能级权限管理;
2,数据级权限管理。
2), 从控制方向来看,也可以将权限管理分为两大类:
1,从系统获取数据,比如查询订单、查询客户资料;
2,向系统提交数据,比如删除订单、修改客户资料
1, 什么是RBAC
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)
1),角色是什么?
可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版主”都是角色。版主可管理版内的帖子、可管理版内的用户等,这些是权限。要给某个用户授予这些权限,不需要直接将权限授予用户,可将“版主”这个角色赋予该用户。
当用户的数量非常大时,要给系统每个用户逐一授权(授角色),是件非常烦琐的事情。这时,就需要给用户分组,每个用户组内有多个用户。除了可给用户授权外,还可以给用户组授权。这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。(下图为用户组、用户与角色三者的关联关系)
在应用系统中,权限表现成什么?对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。(见下图)
请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。
这样设计的好处有二。其一,不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。其二,方便扩展,当系统要对新的东西进行权限控制时,我只需要建立一个新的关联表“权限XX关联表”,并确定这类权限的权限类型字符串。
这里要注意的是,权限表与权限菜单关联表、权限菜单关联表与菜单表都是一对一的关系。(文件、页面权限点、功能操作等同理)。也就是每添加一个菜单,就得同时往这三个表中各插入一条记录。这样,可以不需要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,权限表通过“权限类型”和这个ID来区分是种类型下的哪条记录。
到这里,RBAC权限模型的扩展模型的完整设计图如下:
随着系统的日益庞大,为了方便管理,可引入角色组对角色进行分类管理,跟用户组不同,角色组不参与授权。例如:某电网系统的权限管理模块中,角色就是挂在区局下,而区局在这里可当作角色组,它不参于权限分配。另外,为方便上面各主表自身的管理与查找,可采用树型结构,如菜单树、功能树等,当然这些可不需要参于权限分配。
相关推荐
基于RBAC权限管理数据库表设计
tp框架RBAC权限管理 tp框架RBAC权限管理tp框架RBAC权限管理tp框架RBAC权限管理
FastAPI+Vue3,RBAC权限管理,实现 菜单、路由、按钮、接口 权限控制;笔记ht-mini-rbac
基于 d2-admin的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的权限管理系统 全部文档整理打包。要研究的下载不用到处找了。
RBAC(基于角色的存取控制)作为对传统的自主(DAC)和强制存取控制(MAC)的替代方案,近来有了长足的发展.在一些最早的存取控制系统中,人们用角色来分隔安全管理和系统管理.随着计算机技术的发展,人们赋予角色一种新的...
本资源是基于RBAC权限管理模型思想实现的完整JAVA代码,有数据库脚本,对于基于RBAC思想的开发具有很好的启发与帮助作用。
基于rbac模型的权限管理系统,角色,权限,用户等的权限分配
基于RBAC的权限管理组件的设计与实现 RBAC基于角色的权限管理
基于RBAC的权限管理的设计与实现,韩志强,,对于B/S的企业应用系统,权限管理不仅是开放重复率很高的模块,而且还是系统难点。建立规范的访问控制模型是企业应用中实现权限控
基于RBAC模型的通用权限管理系统的设计
ThinkPHP(RBAC)权限管理系统_第7讲_角色管理
基于RBAC的通用权限管理构件,采用java语言开发,使用到了SSH技术
项目概述:本项目管理系统基于流行的Python Flask框架,实现了一套完整的RBAC(基于角色的访问控制)权限管理功能。项目采用多种编程语言和技术栈,确保了前端的丰富交互和后端的高效稳定。 技术组成: - 主要编程...
基于SpringBoot+Vue 前后端分离的RBAC权限管理系统(源码+数据库) ## 项目介绍 **一个基于SpringBoot + Vue + Element UI 开发的权限管理系统** - 角色权限精确到菜单、接口访问 - 前后端通过jwt进行认证状态管理...
ThinkPHP(RBAC)权限管理系统_第21讲_角色管理之配置权限
本人利用dhtmlx4,thinkphp,mysql开发的一套RBAC(基础角色控制)的权限管理系统。仅作为学习之前,从事商业开发所导致的后果或商业纠纷与本人无关。