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

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

 
阅读更多

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



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

 

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

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



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

 

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

 

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

 

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



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

 

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

分享到:
评论

相关推荐

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

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

    角色权限设计方案.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. **控制器层**:实现权限验证逻辑,对用户请求进行拦截和过滤,只允许符合权限的角色执行相应操作。 **实现过程*...

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

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

    权限系统设计doc

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

    j2ee权限控制

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

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

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

    权限管理系统_概要设计说明书.doc

    权限管理系统的基本设计概念是基于角色的访问控制(RBAC),即根据用户的角色和权限来控制其访问网站资源的权限。系统的处理流程可以分为以下几个步骤: 1. 用户认证:用户输入用户名和密码以登录系统。 2. 角色...

    于应用系统权限管理系统的设计与实现

    角色指派包括分配用户角色UA和分配角色权限PA,前者定义用户与角色的关系,后者定义角色与操作的关联。 5. **访问矩阵** - 对象模型最终转化为访问矩阵,矩阵中的行代表用户,列代表操作,元素表示用户通过角色获得...

    数据库设计的一个相对实用的权限验证设计方法

    1. **系统规模**:系统的用户数量、功能复杂度和预期的未来发展都会影响权限设计的选择。 2. **权限粒度**:权限控制可以是粗粒度(如角色级别)或细粒度(如用户或单个操作级别)。 3. **可维护性**:设计应易于...

    基于容器的用户安全管理系统

    这个框架的核心是基于角色的访问控制(RBAC),它将用户、权限和角色之间进行了有效的解耦,提高了系统的可扩展性和可重用性。 在需求分析阶段,用户安全管理系统通常需要满足以下三个关键功能: 1. 用户资料管理...

    毕业论文jsp970通用权限管理系统mysql.doc

    RBAC允许通过角色来分配权限,用户的角色变动只需调整角色分配,简化了权限管理。此外,RBAC还支持抽象化的权限控制,便于管理员根据业务需求调整权限策略。 三、本课题研究内容 本课题主要研究基于角色的通用权限...

    软件建设实施方案.pdf

    - 限制未经授权的用户访问,通过角色权限分配限定操作范围。 - 分别对岗位(角色)进行业务操作和数据访问授权,通过角色分配菜单和数据权限。 2. 权限管理方案: - 管理员按部门设置角色,分配菜单功能和数据...

    软件建设方案设计.doc

    【软件建设方案设计.doc】是一份详尽的文档,涵盖了软件建设的整体设计和技术指标,旨在构建一个高效、安全、可扩展且经济的软件系统。以下是关键知识点的详细说明: 1. **整体设计**: - **设计原则**:遵循国家...

    Kubernetes插件扩展技术介绍.pdf

    - **RBAC (Role-Based Access Control)**: 提供了细粒度的权限控制,通过角色(Role)和角色绑定(RoleBinding)定义用户和组的访问权限。 - **授权准入控制**: 包括 Admission Control,允许在操作执行前进行验证...

    软件建设专项方案.doc

    * 基于用户角色权限控制实现应用层安全 * 权限管理方案对岗位(角色)授权分为两个部分,一是业务操作授权,菜单功效授权,二是数据授权 * 加密策略加密关键包含数据加密传输和数据加密存放 * 信息保密因为网络互联...

    C#权限管理和设计浅谈

    此外,数据库设计也是关键,应考虑如何存储和检索权限信息,例如使用角色-权限关联表,或者采用基于角色的信息隐藏(RBAC)模型。 参考现有的成熟项目,如吉日嘎拉的通用权限管理系统,可以帮助我们理解权限管理的...

Global site tag (gtag.js) - Google Analytics