`
ywg2008
  • 浏览: 45448 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

阅读更多

通用数据权限管理系统设计(一)

 

前言:
 本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。
 
解释:
 功能权限:能做什么的问题,如增加销售订单;
 数据权限:能在哪里干什么的问题,如察看北京分公司海淀销售部张三的销售订单;
 
术语:
 资源:系统中的资源,主要是各种业务对象,如销售单、付款单等;
 操作类型:对资源可能的访问方法,如增加、删除、修改等;
 功能:对资源的操作,是资源与操作类型的二元组,如增加销售单、修改销售单等;
 数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等;
 数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值;
 权限:角色可使用的功能,分角色的功能权限和角色的数据权限;
 角色:特定权限的集合;
 用户:参与系统活动的主体,如人,系统等。

 

通用数据权限管理系统设计(二)
 
方法说明:
 在实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等,也就是说数据权限一般针对指定数据类型下的一些数据对象。
 
 本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。
本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。
 
 这段话比较绕口,下面举个例子实际例子。
 
 某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色:
    销售总监      -- 能察看所有销售部的销售订单;
    北京销售经理 -- 只能察看北京销售部的所有销售订单;
    上海销售经理 -- 只能察看上海销售部的所有销售订单; 
    广州销售经理 -- 只能察看广州销售部的所有销售订单; 
 
 上述角色的定义如下:
 
     -------------------------------------------------------------------
     角色名称             功能             数据类型     数据对象 
     -------------------------------------------------------------------
     销售总监           察看销售订单                                
     北京销售经理       察看销售订单         部门         北京 
     上海销售经理       察看销售订单         部门         上海    
     广州销售经理       察看销售订单         部门         广州    
     -------------------------------------------------------------------
 
    上述定义中,销售总监只定义了功能权限,而没有定义数据权限,所以销售总监能够察看所有的销售订单;而其他几位销售经理分别定义了这一功能的数据权限,所以只能察看指定部门的销售订单。
 
     在实际应用中,往往会出现部门分组,组长能够察看本组所有人员处理的销售订单的情况,以及某些情况下,某些人只能察看本人的销售订单的情况,这些特殊情况在上述的说明中无法解决,需要在设计和实现中进行处理。
 
 
    北京销售代表 -- 只能察看北京销售部的本人的所有销售订单; 
     北京销售代表         察看销售订单           部门            北京    
                                                 个人                 
 
 
通用数据权限管理系统设计(三)--数据库设计
 
我们先来看看传统的基于角色的权限管理系统,如下图所示,最简单的基于角色的权限管理由系统功能、系统角色、系统用户、角色功能和用户角色五部分组成。


图一:基于角色的数据库结构

为实现数据权限控制,在设计上对基于角色的权限管理进行扩充,如下图所示:


图二:通用数据权限管理系统数据库设计
对比两张图,我们可以看到,他们之间的主要变化为:
1、  增加系统资源信息和操作类型信息,系统资源为树形结构、如销售模块、销售订单等;操作类型记录可能的操作,如增加、删除、修改、查看、查询等,系统功能是资源与操作类型的组合,对资源的操作就是系统功能。
2、  增加数据对象类型和数据对象两张表,数据对象类型记录系统中需要控制的对象类型,如部门、库房、员工、客户、供应商等;数据对象记录各对象类型的对象实例,如北京销售部、上海销售部、张三、李四等等。(独立保存的好处后面会说到)
3、  增加系统资源与数据对象类型的关联表(多对多),本表为配置表,说明某种资源可能需要的控制点,如销售订单与部门类型的关联可能涉及到分部门分配权限;销售订单与客户的关联可能涉及到按客户分配权限等等。
4、  增加数据对象与角色权限的关联,这张表是真正最终实现数据权限管理的所在地。
 
通过这种设计,能够最小化地减少对原有权限系统的更改,并且可以很灵活地增加数据的控制点。在产品化软件的设计中使用,能够灵活满足客户的需要。
  • 大小: 6.8 KB
  • 大小: 16.7 KB
分享到:
评论

相关推荐

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

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

    基于RBAC模型的通用权限组件的设计与实现系统

    权限管理一直以来都是每一个应用系统不可缺少的部分,而且几乎是每个应用系统都要重新对系统的权限进行重新设计,以满足不同系统用户的雪求,目前很少公司对权限管理形成一套通用,灵活,完全可复用而且易嵌入应用...

    整合Spring+Spring security基于RBAC模型实现通用的权限控制和用户管理系统(适合新手了解学习权限相关技术)

    本项目基于Spring,整合Spring的security模块,实现用户管理和权限控制,是一套较为通用的权限控制功能,主要内容如下: 1.登录,包括“记住我”的功能; 2.加密,存储的密码不采用明文,初始密码1234; 3.拦截器...

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

    基本目标是为了限制访问主体(用户、进程、服务等)对访问客体(文件、系统等)的访问权限,从而使计算机系统在合法范围内使用;决定用户能做什么,也决定代表一定用户利益的程序能做什么[1]。 企业环境中的访问...

    【参考】RBAC模型基于角色-功能-资源的权限控制模型

    .NET 权限管理模块设计参考 作者原话在项目开发中,往往需要涉及到权限模型的问题,现在比较流行的设计方案是RBAC3模型,为了使权限系统更加通用,减少开发人员在项目开发过程中的重复劳动,介绍一个比较通用的权限...

    一个小而美的通用业务型后台管理系统。采用前后端分离的设计模式,基于RBAC+多机构的权限-SimpleAdmin.zip

    一个小而美的通用业务型后台管理系统。采用前后端分离的设计模式,基于RBAC+多机构的权限-SimpleAdmin

    基于LayUI+Servlet的权限管理系统的设计

    通用的权限管理系统需要考虑用户权限控制问题,可以采用RBAC(基于角色的访问控制)模型进行设计和实现。 基于角色的访问控制系统可以通过确定用户所扮演的角色和其权限来实现对不同操作和资源的限制和控制。包括...

    BPMS-通用权限系统快速开发框架

    1、有价值且优秀的产品,这样您就有了市场需求了。 2、界面很重要,特别是和竞争对手...6、本框架根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型.对象模型中包含的基本元素主要有:用户、用户组、角色

    Spring Boot+Maven+Spring Data JPA+apache Shiro+Easyui实现通用用户权限管理系统

    之前本菜鸟分享的例子里有各种技术点的分项实例,这次做一个综合,形成自己的简单通用的权限管理系统。设计思路源于经典的RBAC模型,即:用户通过角色操作资源。在实现上,基本实现了功能权限,包含了资源菜单的显示...

    ASP.Net 后台通用权限系统 源代码

    1、有价值且优秀的产品,这样您就有了市场需求了。 2、界面很重要,特别是和竞争对手...6、本框架根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型.对象模型中包含的基本元素主要有:用户、用户组、角色

    企业级权限管理系统ssm

    手把手原生实现一套权限管理系统 数据库详细表结构设计 Spring MVC + Mybatis + Maven 环境搭建 通用配置及工具开发 扩展RBAC模型相关功能开发 前端管理界面开发 权限拦截、权限缓存、权限更新记录、权限恢复...

    Java开发企业级权限管理系统

    全程手把手带你运用Java技术栈,打造一套基于最流行的RBAC拓展模型的,分布式的,有界面的,高灵活性,高拓展性的企业级权限管理系统。学完本课程你将可以轻松应对绝大多数企业开发中与权限管理及后台系统相关的需求...

     扩展的RBAC权限管理模型的设计与研究

    对传统RBAC访问控制模型进行扩展,提出了基于导航树页面的RBAC模型,有效避免了传统RBAC模型应用到B/S系统时的角色和权限冗余。根据大多数电子政务系统对用户与角色数据的读取操作较更新操作频繁的特点,选择LDAP...

    DEV基本权限管理项目代码整套

    1、有价值且优秀的产品,这样您就有了市场需求了。 2、界面很重要,特别是和竞争对手...6、本框架根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型.对象模型中包含的基本元素主要有:用户、用户组、角色

    Java Web通用用户权限管理框架设计与实现.pdf

    在MyEclipse 10开发环境下,运用RBAC模型设计并实现一款基于java Web的通用用户权限管理框架,主要实现用户管理功能,角色管理功能和资源管理功能。该系统采用java EE自身的服务,提高系统的可重用性,在用户和资源间引入...

    Java毕业设计-基于Java的两个通用安全模块的设计与实现.rar

    **权限控制模块**:采用基于角色的访问控制模型(RBAC),实现对系统资源的细粒度管理。该模块支持自定义角色和权限,方便管理员根据实际需求进行配置。同时,提供动态权限分配功能,可根据用户的行为和属性动态调整...

    基于Ajax的通用Web系统权限管理的设计与实现 (2011年)

    基于RBAC模型,提出了采用AjaX技术实现一种通用的权限管理模块,使用此模块,无需编制代码,只需根据不同的系统需求由管理员设置相关的角色、用户和权限即可。该方案实现了权限控制和业务的分离,可以很方便地在其他Web...

Global site tag (gtag.js) - Google Analytics