`

权限管理RBAC

阅读更多

一,类什么是权限管理

          一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。

二,权限分类

1),  从控制力度来看,可以将权限管理分为两大类:
1,功能级权限管理;
2,数据级权限管理。
2),  从控制方向来看,也可以将权限管理分为两大类:
1,从系统获取数据,比如查询订单、查询客户资料;
2,向系统提交数据,比如删除订单、修改客户资料
1,  什么是RBAC
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)
     1),角色是什么?
     可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版主”都是角色。版主可管理版内的帖子、可管理版内的用户等,这些是权限。要给某个用户授予这些权限,不需要直接将权限授予用户,可将“版主”这个角色赋予该用户。
      当用户的数量非常大时,要给系统每个用户逐一授权(授角色),是件非常烦琐的事情。这时,就需要给用户分组,每个用户组内有多个用户。除了可给用户授权外,还可以给用户组授权。这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。(下图为用户组、用户与角色三者的关联关系)
在应用系统中,权限表现成什么?对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。(见下图)
请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。

 

这样设计的好处有二。其一,不需要区分哪些是权限操作,哪些是资源,(实际上,有时候也不好区分,如菜单,把它理解为资源呢还是功能模块权限呢?)。其二,方便扩展,当系统要对新的东西进行权限控制时,我只需要建立一个新的关联表“权限XX关联表”,并确定这类权限的权限类型字符串。

 

这里要注意的是,权限表与权限菜单关联表、权限菜单关联表与菜单表都是一对一的关系。(文件、页面权限点、功能操作等同理)。也就是每添加一个菜单,就得同时往这三个表中各插入一条记录。这样,可以不需要权限菜单关联表,让权限表与菜单表直接关联,此时,须在权限表中新增一列用来保存菜单的ID,权限表通过“权限类型”和这个ID来区分是种类型下的哪条记录。

 

到这里,RBAC权限模型的扩展模型的完整设计图如下:

随着系统的日益庞大,为了方便管理,可引入角色组对角色进行分类管理,跟用户组不同,角色组不参与授权。例如:某电网系统的权限管理模块中,角色就是挂在区局下,而区局在这里可当作角色组,它不参于权限分配。另外,为方便上面各主表自身的管理与查找,可采用树型结构,如菜单树、功能树等,当然这些可不需要参于权限分配。

 

分享到:
评论

相关推荐

    基于RBAC权限管理数据库表设计

    基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理是一种广泛采用的策略,它将权限与角色关联,而不是直接分配给单个用户。这种设计模式简化了权限管理,提高了系统的灵活性和可扩展性。下面...

    Flask框架实现的RBAC权限管理系统源码

    项目概述:本项目管理系统基于流行的Python Flask框架,实现了一套完整的RBAC(基于角色的访问控制)权限管理功能。项目采用多种编程语言和技术栈,确保了前端的丰富交互和后端的高效稳定。 技术组成: - 主要编程...

    基于RBAC的权限管理系统

    基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理系统是一种广泛采用的解决方案,它以角色为核心,实现了用户与权限的间接映射,提高了管理效率并降低了复杂性。下面将详细介绍RBAC模型及其在...

    【权限管理】beego实现简单的rbac权限管理系统.zip

    【权限管理】beego实现简单的rbac权限管理系统.zip 【权限管理】beego实现简单的rbac权限管理系统.zip 【权限管理】beego实现简单的rbac权限管理系统.zip 【权限管理】beego实现简单的rbac权限管理系统.zip

    RBAC权限管理系统

    **RBAC权限管理系统详解** 在IT行业中,权限管理是系统安全的重要组成部分,尤其在企业级应用中更是不可或缺。本文将围绕“RBAC权限管理系统”展开,解析其核心概念、技术选型以及实现过程。 **RBAC(Role-Based ...

    FastAPI+Vue3,RBAC权限管理,实现 菜单、路由、按钮、接口 权限控制;笔记ht-mini-rbac.zip

    总的来说,通过FastAPI和Vue3结合RBAC模型,我们可以实现一套完整的权限管理系统,既能保证后端接口的安全,又能灵活控制前端展示,确保不同角色的用户只能访问他们被授权的资源。这种方案在企业级应用中非常常见,...

    基于RBAC的权限管理系统的实现

    基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理系统是一种广泛采用的解决方案,它以角色为核心,实现了灵活、高效的用户权限分配。本文将深入探讨基于RBAC的权限管理系统的实现原理、设计...

    一个基于RBAC的权限管理系统

    【标题】"一个基于RBAC的权限管理系统"指的是采用Role-Based Access Control(基于角色的访问控制)模型构建的权限管理解决方案。在IT行业中,权限管理是确保系统安全性和数据隐私的关键部分,尤其对于多用户、多...

    【RBAC权限管理】基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip

    基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip 介绍 基于RBAC数据库模型下的权限管理系统 可实现用户、角色模块、角色、权限模块、权限的CRUD 实现登录的过滤和权限的拦截 使用技术 springboot、...

    基于rbac模型的权限管理系统

    基于RBAC(Role-Based Access Control,基于角色的访问控制)模型的权限管理系统是一种广泛采用的方法,它以角色为核心,实现了灵活、高效的权限分配机制。现在,让我们深入探讨这个话题。 首先,RBAC模型的核心...

    基于RBAC的通用权限管理构件

    基于RBAC(Role-Based Access Control,基于角色的访问控制)的通用权限管理构件是一种广泛应用于企业级应用的解决方案,它通过角色来管理和控制用户的访问权限。下面将详细介绍这个系统以及与其相关的技术。 **...

    基于Spring Boot 3.2的微服务RBAC权限管理系统设计源码

    本源码提供了一个基于Spring Boot 3.2的微服务RBAC权限管理系统设计。项目包含591个文件,其中包括363个Java源文件、71个JavaScript文件、42个XML文件、13个YAML文件、11个TTF字体文件、11个WOFF字体文件、10个CSS...

    基于RBAC模型的通用权限管理系统的设计

    基于RBAC(Role-Based Access Control,基于角色的访问控制)模型的通用权限管理系统是目前广泛采用的一种高效且灵活的解决方案。这种模型通过将权限与角色关联,而不是直接与用户绑定,从而降低了管理复杂性和开销...

    基于RBAC权限管理模型的实现

    在IT行业中,权限管理是系统安全的关键组成部分,而基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限管理模型是一种广泛应用的解决方案。RBAC模型通过将用户权限与角色关联,使得权限分配更加灵活...

    【权限管理】基于Django的rbac权限管理系统源码.zip

    【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip 【权限管理】基于Django的rbac权限管理系统源码.zip

    tp框架RBAC权限管理

    RBAC是一种广泛采用的权限模型,通过角色来分配权限,简化了权限管理,降低了权限设置的复杂性。 1. TP框架简介: TP(ThinkPHP)框架是中国最流行的PHP开发框架之一,以其快速、灵活、简洁的特性深受开发者喜爱。...

    基于Spring Boot+Spring Cloud+OAuth2的RBAC权限管理系统.zip

    基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手 提供 lambda 、stream api 、webflux 的生产实践 ...

    thinkphp5.0 权限认证管理模块 插件 RBAC AUTH权限认证管理-tp5auth.zip

    在本案例中,"thinkphp5.0 权限认证管理模块 插件 RBAC AUTH权限认证管理-tp5auth.zip" 提供了一个RBAC(Role-Based Access Control,基于角色的访问控制)权限认证管理插件,用于帮助开发者实现细粒度的权限分配。...

Global site tag (gtag.js) - Google Analytics