`
jaychang
  • 浏览: 721756 次
  • 性别: Icon_minigender_1
  • 来自: 嘉兴
社区版块
存档分类
最新评论

扩展RBAC用户角色权限设计方案

 
阅读更多

RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。(如下图)



角色是什么?可以理解为一定数量的权限的集合,权限的载体。例如:一个论坛系统,“超级管理员”、“版主”都是角色。版主可管理版内的帖子、可管理版内的用户等,这些是权限。要给某个用户授予这些权限,不需要直接将权限授予用户,可将“版主”这个角色赋予该用户。 

 

当用户的数量非常大时,要给系统每个用户逐一授权(授角色),是件非常烦琐的事情。这时,就需要给用户分组,每个用户组内有多个用户。除了可给用户授权外,还可以给用户组授权。这样一来,用户拥有的所有权限,就是用户个人拥有的权限与该用户所在用户组拥有的权限之和。(下图为用户组、用户与角色三者的关联关系)

在应用系统中,权限表现成什么?对功能模块的操作,对上传文件的删改,菜单的访问,甚至页面上某个按钮、某个图片的可见性控制,都可属于权限的范畴。有些权限设计,会把功能操作作为一类,而把文件、菜单、页面元素等作为另一类,这样构成“用户-角色-权限-资源”的授权模型。而在做数据表建模时,可把功能操作和资源统一管理,也就是都直接与权限表进行关联,这样可能更具便捷性和易扩展性。(见下图)



请留意权限表中有一列“权限类型”,我们根据它的取值来区分是哪一类权限,如“MENU”表示菜单的访问权限、“OPERATION”表示功能模块的操作权限、“FILE”表示文件的修改权限、“ELEMENT”表示页面元素的可见性控制等。

 

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

 

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

 

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



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

 

以上,是从基本的RBAC模型进行了扩展,具体的设计要根据项目业务的需要作调整。欢迎大家提出批评意见!扩展RBAC用户角色权限设计方案

分享到:
评论

相关推荐

    用户权限管理设计方案

    这个设计方案主要关注如何有效地设计和实施用户权限系统,确保每个用户只能访问他们被授权的数据和功能,从而保护系统的完整性和数据的安全性。下面我们将深入探讨这个话题。 首先,权限管理的核心在于用户角色。...

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

    角色是一组权限的集合,用户被赋予某个或多个角色后,就拥有了对应的角色权限。这样的设计使得权限管理更加灵活,便于权限的集中管理和调整。 系统的主要功能可能包括: 1. **用户管理**:添加、修改、删除用户,...

    hibernate struts 实现RBAC权限管理系统

    在RBAC0级模型中,系统中的用户通过分配角色来获得操作权限,而不是直接给予每个用户具体的权限。这样做的好处是简化了权限管理,提高了安全性,并降低了权限变更的风险。用户、角色和权限之间存在明确的关系:用户...

    基于角色的访问控制(RBAC)研究与应用

    2. 角色权限分配(PA):角色被赋予一组权限,同样形成多对多的关系。 3. 限制:在特定会话(S)中,用户可以执行的操作仅限于其激活角色集所对应的权限。 RBAC模型的优势主要体现在: 1. 管理复杂度降低:通过角色...

    基于rbac模式的acegi权限管理

    RBAC是一种广泛采用的权限模型,通过角色来分配权限,有效地实现了用户与权限之间的间接关联,降低了权限管理的复杂性。 Acegi Security是Spring框架的一个扩展,它为Java应用程序提供了全面的安全性解决方案。在...

    角色权限设计方案.pdf

    ⾓⾊权限设计⽅案 RBAC(Role-Based Access Control,基于⾓⾊的访问控制),就是⽤户通过⾓⾊与权限进⾏关联。简单地说,⼀个⽤户拥有若⼲⾓⾊,每⼀个⾓⾊拥有若⼲权限。这样, 就构造成"⽤户-⾓⾊-权限"的授权...

    基于SpringBoot和SpringSecurity的RBAC后台权限管理系统设计源码

    本源码为基于SpringBoot和SpringSecurity的RBAC后台权限管理系统设计,共包含535个...该系统提供了一套完整的后台权限管理解决方案,支持角色和权限的灵活配置,确保系统安全性和可扩展性,适合各类企业和团队使用。

    基于角色的访问控制技术(RBAC).pdf

    在数据库设计方面,RBAC模型需要创建多个表来存储角色、用户、用户角色关系、角色权限关系以及受控资源信息。常见的表包括角色信息表、用户表、用户角色关联表和角色权限关联表,这些表确保了RBAC模型的实施和数据...

    学士学位论文--基于mvc架构的网站rbac访问控制框架设计与实现.doc

    综上所述,基于MVC架构的网站RBAC访问控制框架设计与实现,旨在通过RBAC模型提供高效、安全的权限管理方案,以满足商务网站系统的安全需求。通过合理的设计和实现,可以确保用户只能访问他们被授权的资源,从而保护...

    基于mvc架构的网站rbac访问控制框架设计与实现计算机科学与技术.doc

    2. **视图层**:根据角色和权限设计不同的用户界面,确保用户只能看到和操作他们有权访问的部分。 3. **控制器层**:实现权限验证逻辑,对用户请求进行拦截和过滤,只允许符合权限的角色执行相应操作。 **实现过程*...

    OA系统权限管理设计方案-转

    总结,OA系统权限管理设计方案的详尽性体现在它涵盖了用户角色设计、权限分配、访问控制策略、审计监控、策略制定等多个方面,旨在构建一个既安全又高效的办公环境。通过科学的权限管理,可以保护企业信息资产,提升...

    一个RBAC开源框架

    RBAC(Role-Based Access Control)即基于角色的访问控制,是一种广泛采用的权限管理模型,它将用户权限与特定的角色关联,而不是直接分配给每个用户,从而简化了权限的管理和维护。 在Kasai 2.0中,你可以发现以下...

    权限管理及数据库设计

    可能包括用户表、角色表、权限表,以及它们之间的关联关系,如用户角色关联表、角色权限关联表等。此外,可能还有用于处理权限验证和授权的逻辑代码,比如在用户尝试执行某操作时,系统会检查该用户的角色是否拥有...

    通用权限模块设计与分析

    "基于RBAC的权限设计模型.doc"提到了RBAC(Role-Based Access Control),这是权限管理的常用模型。在RBAC模型中,用户通过角色与权限关联,角色是权限的集合,用户被赋予不同的角色以获得相应的操作权限。 "OA系统...

    扩展RBAC访问控制模型在家庭开放平台中的应用

    基于角色的访问控制(role-based access ...将扩展后的模型作为解决家庭开放平台终端管理子系统分权分域问题的理论基础,解决了系统中访问控制约束的问题,提出了多样化的角色和权限设计方案,实现了复杂的职责分配。

    java web 系统权限设计 源码

    在Java Web开发中,权限设计是构建安全、稳定和可扩展的应用程序的关键组成部分。本资源提供的"java web 系统权限设计 源码"包含了完整的权限管理模型和设计方案,对于开发者来说,这是一个宝贵的参考资料。下面我们...

    权限系统设计doc

    这是最常见的权限设计方案,其中用户被赋予特定的角色,每个角色有一组预定义的权限。在RBAC中,权限不是直接赋予用户的,而是通过用户的角色间接获得。例如,管理员角色可能有所有操作的权限,而普通用户角色则...

    j2ee权限控制

    综上所述,J2EE权限控制通过RBAC模型实现,利用角色和权限表进行权限分配,以满足复杂企业环境的需求,同时兼顾系统扩展性、管理和用户理解的便捷性。在设计时,需要平衡各种因素,确保权限体系既简单又灵活,以应对...

    用户管理概要设计

    我们可以采用角色权限模型(Role-Based Access Control, RBAC)来实现,将权限与角色关联,用户通过拥有不同角色来获得相应权限。这样既方便了权限管理,又能灵活应对角色和权限的变化。同时,还需要设计细粒度的...

    角色-用户-权限控制设计与实现

    重点阐述在基于.NET开发的客户关系管理CRM示例系统中设计并实施的一套高透明度、细粒度的角色-用户-权限控制方案。该方案不依赖于具体的实施平台,也不会对架构产生限制。使用XML文件记录角色与页面的映射关系,需要...

Global site tag (gtag.js) - Google Analytics