本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。
通用数据权限管理系统设计(一)
前言:
本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。
解释:
功能权限:能做什么的问题,如增加销售订单;
数据权限:能在哪里干什么的问题,如察看北京分公司海淀销售部张三的销售订单;
术语:
资源:系统中的资源,主要是各种业务对象,如销售单、付款单等;
操作类型:对资源可能的访问方法,如增加、删除、修改等;
功能:对资源的操作,是资源与操作类型的二元组,如增加销售单、修改销售单等;
数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等;
数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值;
权限:角色可使用的功能,分角色的功能权限和角色的数据权限;
角色:特定权限的集合;
用户:参与系统活动的主体,如人,系统等。
通用数据权限管理系统设计(二)
方法说明:
在实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等,也就是说数据权限一般针对指定数据类型下的一些数据对象。
本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。
本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。
这段话比较绕口,下面举个例子实际例子。
某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色:
销售总监 -- 能察看所有销售部的销售订单;
北京销售经理 -- 只能察看北京销售部的所有销售订单;
上海销售经理 -- 只能察看上海销售部的所有销售订单;
广州销售经理 -- 只能察看广州销售部的所有销售订单;
上述角色的定义如下:
-------------------------------------------------------------------
角色名称 功能 数据类型 数据对象
-------------------------------------------------------------------
销售总监 察看销售订单
北京销售经理 察看销售订单 部门 北京
上海销售经理 察看销售订单 部门 上海
广州销售经理 察看销售订单 部门 广州
-------------------------------------------------------------------
上述定义中,销售总监只定义了功能权限,而没有定义数据权限,所以销售总监能够察看所有的销售订单;而其他几位销售经理分别定义了这一功能的数据权限,所以只能察看指定部门的销售订单。
在实际应用中,往往会出现部门分组,组长能够察看本组所有人员处理的销售订单的情况,以及某些情况下,某些人只能察看本人的销售订单的情况,这些特殊情况在上述的说明中无法解决,需要在设计和实现中进行处理。
北京销售代表 -- 只能察看北京销售部的本人的所有销售订单;
北京销售代表 察看销售订单 部门 北京
个人
通用数据权限管理系统设计(三)--数据库设计
我们先来看看传统的基于角色的权限管理系统,如下图所示,最简单的基于角色的权限管理由系统功能、系统角色、系统用户、角色功能和用户角色五部分组成。
图一:基于角色的数据库结构
为实现数据权限控制,在设计上对基于角色的权限管理进行扩充,如下图所示:
图二:通用数据权限管理系统数据库设计
对比两张图,我们可以看到,他们之间的主要变化为:
1、 增加系统资源信息和操作类型信息,系统资源为树形结构、如销售模块、销售订单等;操作类型记录可能的操作,如增加、删除、修改、查看、查询等,系统功能是资源与操作类型的组合,对资源的操作就是系统功能。
2、 增加数据对象类型和数据对象两张表,数据对象类型记录系统中需要控制的对象类型,如部门、库房、员工、客户、供应商等;数据对象记录各对象类型的对象实例,如北京销售部、上海销售部、张三、李四等等。(独立保存的好处后面会说到)
3、 增加系统资源与数据对象类型的关联表(多对多),本表为配置表,说明某种资源可能需要的控制点,如销售订单与部门类型的关联可能涉及到分部门分配权限;销售订单与客户的关联可能涉及到按客户分配权限等等。
4、 增加数据对象与角色权限的关联,这张表是真正最终实现数据权限管理的所在地。
通过这种设计,能够最小化地减少对原有权限系统的更改,并且可以很灵活地增加数据的控制点。在产品化软件的设计中使用,能够灵活满足客户的需要。
分享到:
相关推荐
系统权限设计是构建安全、高效业务系统的关键环节,旨在确保不同职责的用户只能访问和操作他们应得的数据和功能。本文将深入探讨权限设计的基本原则、实现方式以及数据库结构设计。 1. **权限分配策略**: - **...
【基于AOP的大赛信息管理系统权限设计】 在大型信息系统中,权限管理是不可或缺的一部分,尤其在大赛信息管理系统中,权限的动态分配、可重用性和可移植性显得尤为重要。传统的权限管理模式往往与其他模块紧密耦合...
本资料集“web系统权限设计书”深入探讨了这一主题,提供了详细的数据库设计分析,旨在帮助开发者和系统架构师理解并实施有效的权限管理和角色控制策略。以下是核心知识点的详细说明: 1. **权限与角色概念**: - ...
本资源提供的"java web 系统权限设计 源码"包含了完整的权限管理模型和设计方案,对于开发者来说,这是一个宝贵的参考资料。下面我们将深入探讨权限管理系统的几个核心概念和实现方式。 1. **权限管理基础** 权限...
本文将详细探讨如何通过数据库技术来实现OA系统的权限设计,特别是使用Java编程语言进行实现。 首先,权限设计是OA系统中至关重要的部分,它涉及到用户角色、资源访问控制以及操作权限等多个方面。在数据库层面,...
在本文中,我们将探讨如何在ASP.NET环境中,利用用户控件技术实现基于角色的Web应用系统权限设计。 首先,我们需要理解RBAC的核心概念。RBAC模型主要包括三个基本元素:用户(User)、角色(Role)和权限...
系统权限设计是构建软件系统特别是B端SAAS产品时的关键环节,它确保了不同用户在使用系统时只能访问和操作他们被授权的数据、页面和功能。SAAS产品由于服务多个客户,即多租户特性,对权限控制的需求尤为严格。 ...
- **系统权限模块**:包含了以上各个管理部分的详细功能结构,如组权限管理中的用户管理、角色管理、权限设置和权限总览等功能。 4. **界面总体设计** - **界面布局**:在组权限管理界面中,提供了查看和编辑组的...
java web 系统权限设计 源码.rar JAVA权限管理系统2.rar Java酒店管理系统.rar struts+hibernate权限管理系统_oracle.rar struts2权限管理系统.rar 固定资产管理系统项目.rar 权限系统_oops.zip
权限设计是任何系统不可或缺的一部分,对于系统的正常运作和管理起着至关重要的作用。权限设计的主要目标是确保系统中的每个用户都拥有适当的权限,从而确保系统的安全和稳定。 permissions design is a critical ...
通用系统权限设计,可以好好看看,绝对是初学者的首选
在IT行业中,系统框架权限设计是一项至关重要的任务,它涉及到软件的安全性、稳定性和用户体验。这篇名为“系统框架权限设计杂谈论文”的文档很可能是对这一领域的深入探讨。权限设计是任何复杂系统的核心组成部分,...
花了一天时间研究一篇网上关于OA系统权限设计的文档,按照文档自己手动创建了数据库,附件包括文档跟数据库,有想要了解的同学可以下载!tb_User:用户信息基本表; tb_Department:部门表; tb_Company:公司表; ...
5. **涉及实体资源的权限设计**:当用户对某一实体的不同记录有不同的访问权限时,如内容管理系统中用户对某些频道有修改权限,而对其他频道没有,就需要为每种资源创建单独的权限表,如`UserActionContent`和`...
系统权限管理设计方案 系统权限管理设计方案是指OA系统中对权限的管理和设计。该设计方案的主要目的是为了简化权限的分配和管理,提高系统的安全性和灵活性。 在该设计方案中,权限是通过模块+动作来产生的,模块...
### 通用系统权限设计的关键知识点 #### 一、引言 在现代企业级软件系统中,权限管理是一项至关重要的功能,它确保了系统的安全性、稳定性和高效性。特别是在大型企业中,由于用户数量庞大,权限需求多样,因此...
通用权限管理系统概要设计说明书 通用权限管理系统是指管理和维护系统内所有资源的权限控制系统。该系统的设计目标是对应用系统的所有资源进行权限控制,例如应用系统的功能菜单、各个界面的按钮控件等进行权限的...