RBAC(基于角色的访问控制) 权限

article/2025/9/16 7:57:36

一、RBAC基础知识

        1、RBAC的组成:

                1:由3个基础的部分组成:用户、角色和权限;

                2:RBAC通过定义角色的权限,并对用户授予某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离,极大的方便了权限管理。(比如:班主任是个角色,而班主任的权限就是管理班级内所有大大小小的事物;我是李四,我被校领导批准当五年级3班班主任。这样李四的权限就是管理五年级3班所有的事情)

名词解释:

用户:每个用户都有唯一的uid,并被授予不同的角色;

角色:不同的角色有不同的权限;

权限:访问权限;

用户--角色的映射:用户和角色之间的映射关系;

角色--权限的映射:   角色和权限的映射关系;

        2、RBAC支持的安全原则

                 RBAC支持三个著名的安全原则:最小权限原则、责任分离原则和数据抽象原则;

                1、最小权限原则:RBAC可以通过限制分配给角色权限的大小和多少来实现,分配给某用户对应的角色的权限只要不超过该用户完成其任务的需求;

                2、责任分离原则:可以通过调用相互独立互斥的角色来共同完成敏感的任务;

                3、数据抽象原则:可以通过权限的抽象来提现

        3、RBAC的优缺点

               优点:1、简化了用户和权限的关系  ;

                               2、易扩展、易维护;

               缺点:1、RBAC模型没有提供操作顺序的控制机制,这一缺陷使得RBAC模型很难适应哪些对操作次序有严格要求的系统

         4、权限模型(直白点说……就是RBAC的分类)

                1:RBAC0 ----基础,在这个模型中,我们把权限赋予角色,再把角色赋予用户。用户和角色,角色和权限都是多对多的关系。用户拥有的权限等于他所有角色持有的权限之和。

如图:

 

                2:RBAC1----在RBAC0的基础上,在角色中引入了继承的概念。简单来说,就是给角色 分成了几个等级,每个等级权限不同,从而实现更细粒度的权限管理。

举例:一个公司除了有销售经理还有销售副经理,那其实销售副经理只有销售经理的部分权限。那我们就可以采用RBAC1的模型,把销售经理这个角色分成多个等级。

3

                3:RBAC2 ---对用户、角色、权限三者之间增加了一些限制;

举例:给一个用户分配了销售经理的角色,就不能再给他分配财务经理的角色,否则他即可以录入合同又可以自己审核合同;

4

                4:RBAC3 = RBAC1 + RBAC2:特别复杂的场景才会用到此模型;

        5、基于RBAC的扩展------用户组

用户组的概念可以更方便的给群体用户授权,且不影响用户本来就有的角色权限

             增加用户组的概念,直接给用户组分配角色,再把用户加入到用户组,这样用户除了有自己的权限外,还有了用户组的权限;

              例如:我是属于公司技术部的,那就把技术部看成一个用户组,我除了自己的权限外还有技术部的权限;

二、如何设计RBAC

权限可以分为数据权限和功能权限两大块

数据权限其实就是一个账号能查看多少数据,如何实现A账号和B账号之间不能相互查看业务数据,这就是数据权限

功能权限按照范围可以分为菜单权限和按钮权限;按照操作可以分为查看和编辑权限

        1、RBAC功能模块

rbac功能模块

        2、RBAC执行流程

                   rbac执行流程

        3、RBAC数据库设计

rbac数据库设计


http://chatgpt.dhexx.cn/article/NrwhQsWx.shtml

相关文章

RBAC权限设计详解

权限设置 1.权限点 权限:在一个系统内是否具有做某个操作的权利权限分为两个级别 1. 菜单权限:是否有权限访问某个菜单 2.按钮权限:是否有权限操作 页面上的某个按钮功能 2.业务逻辑 对于权限数据来说,有两个级别的设置 1.能不能访问谋个页面 2.在页面上,能不能操作某个按…

RBAC 模型是什么?

RBAC 模型是什么? 美国国家标准与技术研究院(The National Institute of Standards and Technology)认为 RBAC 模型由 4 个基础模型组成: 1. 基本模型 RBAC0(Core RBAC)2. 角色分层模型 RBAC1(Hierarcha…

什么是RBAC?

什么是RBAC? 全称:role-based access control 基于角色的权限访问控制 作用:实现访问控制 RBAC模型概括 RBAC权限授权的过程可以概括为:W是否可以对Z进行H的访问操作,并对这个逻辑表达式进行判断是否为true的过程&…

RBAC(一)

介绍 RBAC(基于角色的权限控制,role base access control)是一种设计模式,用于设计和管理权限相关数据的一种模型。 RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否…

RBAC浅谈(一)RBAC的基本概念

1.概念 RBAC即Role Based Access Control,意为基于角色的访问控制。用户与角色相关联,当用户在系统进行注册时可以选择成为某一角色从而拥有这个角色的权限,当然新注册的用户的权限也可以由上一级用户授予如管理员认定某个用户为某个角色就授…

RBAC权限详解

RBAC权限详解 权限设置 1.权限点 权限:在一个系统内是否具有做某个操作的权利 权限分为两个级别 1. 菜单权限:是否有权限访问某个菜单2. 按钮权限:是否有权限操作 页面上的某个按钮功能2.业务逻辑 对于权限数据来说,有两个级别的设置 1.能不能访问谋个页面 2.在页面上,能…

Rbac权限管理--如何设计

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限-资源”的授权…

六,RBAC简介

六,RBAC RBAC(基于角色的权限控制 role base access control)是一种设计模式,是用来设计和管理权限相关数据的一种模型 RBAC权限数据的管理,都是重复的CRUD的操作,这里我们就不再重复的从0到1开发&#xf…

RBAC简介

目录 RBAC简介RBAC0RBAC1RBAC2RBAC3 RBAC简介 RBAC是Role Based Access Control的英文缩写,意思是基于角色访问控制。 RBAC实际上就是针对产品去发掘需求时所用到的Who(角色)、What(拥有什么资源)、How(有…

RBAC 权限

RBAC权限分析 RBAC 全称为基于角色的权限控制,本段将会从什么是RBAC,模型分类,什么是权限,用户组的使用,实例分析等几个方面阐述RBAC 什么是RBAC RBAC 全称为用户角色权限控制,通过角色关联用户&#xff…

RBAC模型

最近开始在找java项目,大部分时间都是跟着视频或者代码一步一步敲过来,但是对代码的理论层面还是有所欠缺,今天就来分享一个系统设计中的一个模型。不管是哪一个系统,都绕不开权限控制,因为现在的角色太多了&#xff0…

RBAC入门教程及实例演示

RBAC 一、RBAC的作用 在很多系统中,会要求不同的账户对应着不同的角色和权限。如教务管理系统,分为以下几种功能,不同的功能对应着不同的角色 如果要做到登录后根据账户的角色,给出相应的菜单,及规定当前角色只能做出…

RBAC简介(*)

一.RBAC是什么 1.RBAC模型概述 RBAC是Role Based Access Control的英文缩写,意思是 基于角色的访问控制。 RBAC实际上就是针对产品去挖掘需求时所用到的Who(角色)、What(拥有什么资源)、How(有哪些操作&am…

什么是 RBAC 模型?

前言 RBAC(Role-Based Access Control),基于角色的访问控制,现在主流的权限管理系统的权限设计都是 RBAC 模型,或者是 RBAC 模型的变形。 我们需要思考一个问题:为什么要做权限的管理? 我的理…

RBAC权限管理(详细)

RBAC权限设计思想 为了达成不同账号(员工、总裁)登录系统后看到不同页面,执行不同功能,RBAC(Role-Based Access control)权限模型,就是根据角色的权限,分配可视页面。 三个关键点: 用户:使用系统的人 角色:使用系统…

什么是RBAC

一、RBAC是什么 1、RBAC模型概述 RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,这种思想就已经被提出来,直到…

最小生成树,秒懂!

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇 作者丨bigsai 来源丨bigsai 前言 在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法。但是可能很多人对概念不是…

算法 - 最小生成树实现

算法能力是一个门槛,也是个有基础的门槛 无论你是iOS工程师,android工程师,java工程师,前端,后端还是全栈等等… 算法能力的强弱一方面在于思想,你是否有计算机思维抽象具体问题的能力 更重要的还在与基…

最小树形图(有向图的最小生成树)

我们知道,无向图的最小生成树的求法有Krusal和prime算法,一个是归点一个是归边,在具体实现上Krusal可以用并查集实现,难度不大。 这里稍微区别一下最短路径和最小生成树(因为我又搞混了23333) 最小生成树能…

Kruskal算法(最小生成树)

上篇Prim算法简要的讲解了最小生成树。也提到过Prim算法堆优化,但本蒟蒻并没有贴Prim (堆优化的代码)。至于为什么没有贴呢?上篇Prim算法blog末尾有说明。 好勒!咱们接着讲Kruskal算法。这跟Prim算法有很大的…