RBAC模型介绍

简介: RBAC模型是一种基于角色的访问控制机制,用于解决企业系统中不同用户对不同业务的权限管理问题。它将功能集合为角色,然后将角色分配给用户,简化了大量用户的权限分配过程,降低了操作错误和复杂性。通过角色,可以实现用户与功能的解耦,便于权限管理。在RBAC中,用户、角色和权限之间存在多对多的关系,通常涉及五张数据库表来维护这种关系。

RBAC模型

概述

在企业系统中,通过配置用户的功能权限可以解决不同的人分管不同业务的需求,基于RBAC模型,RBAC(Role Based Access Control)模型,它的中文是基于角色的访问控制,主要是将功能组合成角色,再将角色分配给用户,也就是说角色是功能的合集

比如:

企业A总共有12个功能,需要创建100个用户。这些用户包括财务管理、人事管理、销售管理等等。如果不引入基于角色的访问控制(RBAC)模型,我们就需要每创建一个用户就要分配一次功能,这将至少需要进行100次操作(每个用户只能拥有一个功能)。如果用户数量增加到1000甚至10000,并且一个用户可能会拥有多个功能,操作将会变得非常繁琐。如图:

经过多次操作后发现,有些人被分配了相同的功能。例如,A、B等10个用户都被分配了客户管理、订单管理和供应商管理这几个模块。我们是否可以将这几个功能模块组合成一个包,然后将整个包分配给需要的用户呢?这个包被称为角色。由于角色和功能之间的对应关系相对稳定,在分配权限时只需分配角色即可,如下图所示:

基于RBAC授权模式后,我们可以达到以下2个目标:

  • 解耦用户和功能,降低操作错误率
  • 降低功能权限分配的繁琐程度

ER图与关系梳理

在一个核心业务系统中,我们通常通过业务分析,从而抽离出数据库表,表确定之后我们会进一步分析表中应该有的字段,下面我先看下业务ER图:

暂时无法在飞书文档外展示此内容


上图中清楚的描述用户、角色、资源、职位、部门之间的关系,同时我们进一步推导出以下结果:

  • 用户与职位是N:1关系
  • 用户与部门是N:1关系
  • 用户与角色是N:N关系,则它们之间必然有一个中间表
  • 角色与资源是N:N关系,则它们之间必然有一个中间表

具体的表字段大家可以查看提供的数据库,我们在做业务的时候,会再次梳理这些表中的字段

总结

  • RBAC模型是基于角色的访问控制模型,该模型最常应用于系统权限设计中
  • RBAC模型中,一般会有是三个基本对象,用户,角色和权限,他们三个分别都是多对多关系,那么也就意味着有两张中间表,所以数据库表层面共有五张表
目录
相关文章
|
1天前
|
数据安全/隐私保护
基于RBAC0模型的简单权限系统设计角色
基于RBAC0模型的简单权限系统设计角色
|
10月前
|
安全 数据安全/隐私保护
基于RBAC实现权限系统
基于RBAC实现权限系统
218 0
|
1天前
|
存储 监控 安全
深入理解RBAC权限系统
RBAC(Role-Based Access Control)是一种访问控制模型,其核心概念是基于角色的权限分配。该模型的设计目标是简化对系统资源的访问管理,提高系统的安全性和可维护性。
289 1
深入理解RBAC权限系统
|
6月前
|
数据安全/隐私保护
RBAC权限模型
RBAC权限模型
72 0
|
10月前
|
Kubernetes 安全 中间件
|
10月前
|
监控 安全 数据安全/隐私保护
|
11月前
|
SQL 存储 数据库
RBAC模型整合数据权限
RBAC模型整合数据权限
344 0
|
11月前
|
数据安全/隐私保护
【工作中问题解决实践 三】深入理解RBAC权限模型
【工作中问题解决实践 三】深入理解RBAC权限模型
119 0
|
12月前
|
存储 缓存 运维
基于RBAC模型的权限管理设计
RBAC模型(Role-Based Access Control:基于角色的访问控制)是比较早期提出的权限实现模型,在多用户计算机时期该思想即被提出,其中以美国George Mason大学信息安全技术实验室(LIST)提出的RBAC96模型最具有代表,并得到了普遍的公认。 RBAC认为权限授权的过程可以抽象地概括为:Who是否可以对What进行How的访问操作,并对这个逻辑表达式进行判断是否为True的求解过程,也即是将权限问题转换为Who、What、How的问题,Who、What、How构成了访问权限三元组,具体的理论可以参考RBAC96。
439 0
基于RBAC模型的权限管理设计
|
Kubernetes 安全 前端开发
三分钟了解RBAC模型
时至今日,RBAC访问控制模型已经渗入IT领域的多个方面,有传统技术方面的操作系统、数据库、中间件Web服务器,有新兴技术方面的Kubernetes、Puppet、OpenStack等。RBAC访问控制模型能得到如此丰富而广泛的使用,得益于它基于用户与角色关系分配权限进行访问控制的核心理念。
三分钟了解RBAC模型