`
gogole_09
  • 浏览: 205596 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

RBAC权限涉猎之关系处理

阅读更多


最近需要关注到RBAC这部分的理论知识。

      针对一个小型的系统, 将其原有的权限设计全部推倒重来, 设计成基于RBAC。

      简单的说说自己这几天的心得。主要对于RBAC中,相关概念关系的处理来说说。

      开始之前,首先把自己研究的对象,kasai开源系统介绍一下。

      这是一个纯java编写的权限设计框架, 与其说它是框架,还不如说它仅仅是RBAC的一个实现而已,

      因为其系统内部的代码不论扩展性还是可读性都不敢恭维。

      但是其将RBAC的标准给实现了,也算是一个值得研究的对象。

   

      这里主要讲讲kasai系统中,相关概念的关系部分

       (RBAC中相关概念有: 用户、用户组、操作、角色、资源)

      标准RBAC0理论中, 核心的一点就是 角色, 根据此概念再来延伸到其他部分。比如说操作。

      

           角色与操作之间存在着关系: 某个角色可以包含多种操作 ,同样的, 一个操作可以隶属于不同的角色。

                                                    典型的示例:  管理员可具有查看操作,  普通用户也可以具有查看操作。

                                                     所以, 这两者之间的关系 其实可以看作为N:M, 也就是多对多。


           资源与操作存在着关系:    权限系统设计的最终目的是将资源进行合理的分配, 防止资源的滥用。

                                                    同一种资源的话,可以与多个操作相关联起来 。 比如查看操作, 其可以查看

                                                    某个目录,也可以是某个文件。(关于kasai系统, 并没有建立这样的关系,具

                                                      体请看发上来的图片)

         

           用户与角色存在关系:       在RBAC中, 用户是无法直接与资源打交道的,如果那样的话,那么权限也就没

                                                  任何意义了。 那么如何对资源进行处理呢? 答案是,将用户与某个角色关联起

                                                  来,用户通过角色---> 角色通过操作----->获取操作相关的资源。 这样就将相关的

                                                  资源进行了隔离。也就有效的控制了资源的分配情况。


          用户与用户组存在关系:    一般的系统中, 会将用户以某个子集的形式划分到某个用户组内,也就是某个组

                                                 织中,如A属于开发部,当然, 也有的用户可以身兼数职, 如 即是开发人员,

                                                又是管理人员。 那么这样的关系也就意味着,用户与用户组是N:M的关系。

          

           用户组与角色存在的关系: 有的功能,需要根据系统颗粒度不的不同,来进行不同的角色划分, 比如某种

                                                    角色可以被多个用户同时拥有, 那么系统中为了方便处理,就将此种角色,统

                                                   一赋予某个用户组, 让其组内的所有单个用户都拥有着相同角色。


          再回到kasai系统中, 其内部的数据库设计大部分基于这样的关系来实现。 为了便于理解, 我将kasai的相关数据表设计重新整理一下, 放上一张图,便于理解。

          

          

   如果看不清楚图,请点这里

 

           灰色的表,即代表这关系处理, 因为在关系型数据库中,一旦有N:M的关系体现,那么通常就需要中间表来处理了。

        

         OK, 对于RBAC中相关概念的关系,就在这里了, 这些都是个人理解。 可能还不够严谨, 如果有兴趣的朋友,欢迎一起探讨!

  • 大小: 114.8 KB
分享到:
评论

相关推荐

    RBAC权限体系设计UML

    将频繁变化且定制性强的部分视为业务逻辑处理,而将相对固定的部分作为权限逻辑进行设计。 3. **可扩展性**:RBAC设计时考虑未来的扩展需求,通过灵活的角色和权限设置,支持新功能或业务变化时权限管理的调整。 ...

    基于django的RBAC权限控制模块

    这样,通过管理角色与权限的关系,就能间接控制用户的操作权限。 该模块包含以下几个关键部分: 1. **模型设计**:在Django中,模型是数据库表的抽象,用于定义数据结构。在RBAC系统中,我们需要创建`User`、`Role...

    RBAC权限管理系统

    总结,RBAC权限管理系统结合了ThinkPHP的后端处理能力、MySQL的数据存储功能以及dhtmlx4Pro的前端展示,构建了一个高效且易于管理的权限控制平台。这样的系统对于保障企业内部数据安全,规范员工操作行为具有重要...

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

    本源码提供了一个基于Spring Boot ...这个系统是一个基于Spring Boot 3.2、Spring Cloud 2023 & Alibaba、SAS OAuth2的微服务RBAC权限管理系统,可能包括权限信息的收集、处理、分析等功能,适合用于企业进行日常管理。

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

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

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

    我们需要一个`role_permissions`表来存储这种关系,包含`role_id`和`permission_id`字段,用于表示角色具有哪些权限。 4. **用户(User)**: 用户是实际使用系统的人或服务。`users`表应包含`user_id`(用户ID)、`...

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

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

    基于Django+vue3的rbac权限和数据权限管理系统.zip

    Django内置的身份验证和授权系统为RBAC提供了基础,可以通过模型来定义用户、角色和权限,并通过中间件处理用户的访问权限。 Vue.js 3是前端开发的热门选择,它以其响应式数据绑定、组件化开发和易于学习的API而...

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

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

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

    基于springboot+mybatis+redis的RBAC模型下的权限管理系统.zip 介绍 基于RBAC数据库模型下的权限...用户与角色、角色与权限的关联关系 利用 redis 将用户信息、权限信息缓存,提高系统运行速度 权限的拦截、登录的过

    基于Django和Vue的RBAC权限控制后台管理系统源码

    项目概述:本源码为基于角色基础访问控制(RBAC)模型的中小型应用开发平台,采用前后端分离架构。后端基于Python的Django框架和Django REST Framework实现,前端则使用Vue.js配合ElementUI进行构建。移动端支持通过...

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

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

    基于springboot的RBAC权限管理演示系统

    这是一个RBAC权限管理系统,即基于角色的用户权限控制,,使用springboot框架开发,UI使用的是layui。。 演示地址:http://116.196.66.248:8090/page/index 欢迎大家下载。。。。另外,建议使用IDEA导入项目。。

    tp框架RBAC权限管理

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

    RBAC的权限设计模型

    RBAC1模型引入了角色间的继承关系,RBAC2模型添加了责任分离关系,RBAC3模型则结合了RBAC1和RBAC2。 在RBAC模型中,权限被赋予角色,而不是用户,当一个角色被指定给一个用户时,该用户就拥有了该角色所包含的权限...

    springCloud-分享版-基于Spring Cloud、OAuth2.0的前后端分离的系统。 通用RBAC权限设计及其数据权限和分库分表 支持服务限流、动

    通用RBAC权限设计及其数据权限和分库分表 支持服务限流、动态路由、灰度发布、 支持常见登录方式, 多系统SSO登录 基于 Spring Cloud Hoxton 、Spring Boot 2.3、 OAuth2 的RBAC权限管理系统 提供对常见容器化支持 ...

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

    1. 设计数据库模型:创建用户、角色和权限表,定义它们之间的关系。例如,用户表包含角色ID,角色表包含权限ID。 2. 用户登录:用户通过认证(如用户名密码、OAuth2、JWT等)获取身份凭证,FastAPI验证后返回token。...

Global site tag (gtag.js) - Google Analytics