用户权限设计(三)——通用数据权限管理系统设计【转】 - 不飞则已,一飞冲天 - CSDN...
来源:百度文库 编辑:神马文学网 时间:2024/04/29 17:50:33
通用数据权限管理系统设计(一) 作者:逸云 前言: 本文提供一种集成功能权限和数据权限的解决方法,以满足多层次组织中权限管理方面的集中控制。本方法是RBAC(基于角色的访问控制方法)的进一步扩展和延伸,即在功能权限的基础上增加数据权限的管理,实现数据权限和功能权限的集中处理。 解释: 功能权限:能做什么的问题,如增加销售订单; 数据权限:能在哪里干什么的问题,如察看北京分公司海淀销售部张三的销售订单; 术语: 资源:系统中的资源,主要是各种业务对象,如销售单、付款单等; 操作类型:对资源可能的访问方法,如增加、删除、修改等; 功能:对资源的操作,是资源与操作类型的二元组,如增加销售单、修改销售单等; 数据类型:业务系统中常用的数据权限类型,如公司、部门、项目、个人等; 数据对象:具体的业务对象,如甲公司、乙部门等等,包括所有涉及到数据权限的对象值; 权限:角色可使用的功能,分角色的功能权限和角色的数据权限; 角色:特定权限的集合; 用户:参与系统活动的主体,如人,系统等。 通用数据权限管理系统设计(二) 方法说明: 在实际应用中,数据权限的控制点一般相对固定,如针对公司、部门、个人、客户、供应商等,也就是说数据权限一般针对指定数据类型下的一些数据对象。 本方法中,数据权限的依赖于功能权限,是对功能权限的进一步描述,说明角色在指定的功能点上的数据控制权限。本方法中采用“没有明确规定即视为有效”的原则,如果没有定义功能的数据权限,则说明该角色具有该功能的全部的权限。如果定义了功能的某种类型的数据权限,则该用户只具有该类型下指定数据的数据权限。 这段话比较绕口,下面举个例子实际例子。 某公司有北京销售部、上海销售部和广州销售部三个销售部,现在需要定义几种角色: 销售总监 -- 能察看所有销售部的销售订单; 北京销售经理 -- 只能察看北京销售部的所有销售订单; 上海销售经理 -- 只能察看上海销售部的所有销售订单; 广州销售经理 -- 只能察看广州销售部的所有销售订单; 上述角色的定义如下: ------------------------------------------------------------------- 角色名称 功能 数据类型 数据对象 ------------------------------------------------------------------- 销售总监 察看销售订单 北京销售经理 察看销售订单 部门 北京 上海销售经理 察看销售订单 部门 上海 广州销售经理 察看销售订单 部门 广州 ------------------------------------------------------------------- 上述定义中,销售总监只定义了功能权限,而没有定义数据权限,所以销售总监能够察看所有的销售订单;而其他几位销售经理分别定义了这一功能的数据权限,所以只能察看指定部门的销售订单。 在实际应用中,往往会出现部门分组,组长能够察看本组所有人员处理的销售订单的情况,以及某些情况下,某些人只能察看本人的销售订单的情况,这些特殊情况在上述的说明中无法解决,需要在设计和实现中进行处理。 北京销售代表 -- 只能察看北京销售部的本人的所有销售订单; 北京销售代表 察看销售订单 部门 北京 个人 通用数据权限管理系统设计(三)--数据库设计 我们先来看看传统的基于角色的权限管理系统,如下图所示,最简单的基于角色的权限管理由系统功能、系统角色、系统用户、角色功能和用户角色五部分组成。 图一:基于角色的数据库结构为实现数据权限控制,在设计上对基于角色的权限管理进行扩充,如下图所示: 图二:通用数据权限管理系统数据库设计对比两张图,我们可以看到,他们之间的主要变化为:1、 增加系统资源信息和操作类型信息,系统资源为树形结构、如销售模块、销售订单等;操作类型记录可能的操作,如增加、删除、修改、查看、查询等,系统功能是资源与操作类型的组合,对资源的操作就是系统功能。2、 增加数据对象类型和数据对象两张表,数据对象类型记录系统中需要控制的对象类型,如部门、库房、员工、客户、供应商等;数据对象记录各对象类型的对象实例,如北京销售部、上海销售部、张三、李四等等。(独立保存的好处后面会说到)3、 增加系统资源与数据对象类型的关联表(多对多),本表为配置表,说明某种资源可能需要的控制点,如销售订单与部门类型的关联可能涉及到分部门分配权限;销售订单与客户的关联可能涉及到按客户分配权限等等。4、 增加数据对象与角色权限的关联,这张表是真正最终实现数据权限管理的所在地。 通过这种设计,能够最小化地减少对原有权限系统的更改,并且可以很灵活地增加数据的控制点。在产品化软件的设计中使用,能够灵活满足客户的需要。 下一篇文章将讨论这种结构如何满足第二部分功能需求的问题,如果时间允许,将对程序的设计做进一步阐述。 本设计方法已应用于自行开发的通用供应链管理系统中,欢迎指正。 开源供应链[进销存]系统说明目录
将销售经理定义为角色的情况下,需要将其对部门对象的数据权限定义为仅用于本部门,这样也可以实现不同地区经理有不同权限的问题.
本文中只所以分开,主要考虑是描述的更清晰一些
由于服务器配置问题,目前只能看到英文的(菜单除外)
1、权限模型本质要素分为三个:主体+动作+客体
2、权限的表现类型分为两种:静态权限(常规权限)和动态权限(工作流程)
-----------------------------------------------------------------
1、权限模型本质要素分为三个:主体+动作+客体
-----------------------------------------------------------------
权限问题是who do what的问题,
数据权限是who do what in which scope的问题
----------------------------------------------------------------
2、权限的表现类型分为两种:静态权限(常规权限)和动态权限(工作流程)
----------------------------------------------------------------
想请教一下,这里的动态权限具体指的是什么?是授权?还是业务流程到某一状态后才能具备的功能?比如,销售订单没有没有审批就不能办理出库等等?
如:采购入库单的新增按钮怎么和用户的采购入库单的新增权限的挂钩.新增按钮的id和功能编码有关系?
在正常发布后,功能(如新增采购订单)是不能删除的,但可以处理某个角色是否具有某项功能功能.
用户的权限在权限管理部分设置,在业务操作时,新增操作后在Logic层进行权限的检查,Logic层的相关方法中有类似于功能编码的识别符(本系统中不使用功能编码)。
[收藏到我的网摘] 原一飞发表于 2006年11月21日 11:11:00
相关文章:
特别推荐:
没有评论。
请输入尊姓大名 网址: 评论 请输入评论" controltovalidate="PostComment.ascx_tbComment" isvalid="true">
请输入评论
当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1041807
[点击此处收藏本文] 逸云发表于 2006年08月09日 13:52:00
laok 发表于2006-08-10 15:51:00 IP: 159.226.3.*关于定义角色的部分,是否可以考虑定义一系列具有动态特性的角色,比如文中的销售经理定义为角色,而不是将广州销售经理、北京销售经理之类的定义为角色,通过进一步抽象,结构上可能会更加清晰一点。
将销售经理定义为角色的情况下,需要将其对部门对象的数据权限定义为仅用于本部门,这样也可以实现不同地区经理有不同权限的问题.
本文中只所以分开,主要考虑是描述的更清晰一些
由于服务器配置问题,目前只能看到英文的(菜单除外)
1、权限模型本质要素分为三个:主体+动作+客体
2、权限的表现类型分为两种:静态权限(常规权限)和动态权限(工作流程)
-----------------------------------------------------------------
1、权限模型本质要素分为三个:主体+动作+客体
-----------------------------------------------------------------
权限问题是who do what的问题,
数据权限是who do what in which scope的问题
----------------------------------------------------------------
2、权限的表现类型分为两种:静态权限(常规权限)和动态权限(工作流程)
----------------------------------------------------------------
想请教一下,这里的动态权限具体指的是什么?是授权?还是业务流程到某一状态后才能具备的功能?比如,销售订单没有没有审批就不能办理出库等等?
如:采购入库单的新增按钮怎么和用户的采购入库单的新增权限的挂钩.新增按钮的id和功能编码有关系?
在正常发布后,功能(如新增采购订单)是不能删除的,但可以处理某个角色是否具有某项功能功能.
用户的权限在权限管理部分设置,在业务操作时,新增操作后在Logic层进行权限的检查,Logic层的相关方法中有类似于功能编码的识别符(本系统中不使用功能编码)。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1401081
[收藏到我的网摘] 原一飞发表于 2006年11月21日 11:11:00
相关文章:
- 系统权限设计(1) 2005-04-14 carbonhu
- OA-基于功能点的权限系统 2005-03-26 fgwf1
- 应用系统权限表示的算法技巧 2006-03-13 JOHNCOOLS
- 基于角色的权限管理 2006-07-06 Shatty
- 关于权限设计的探讨 2003-07-22 csdntoll
特别推荐:
- Solaris平台IPC及系统限制简介
旨在帮助那些在Unix特别是在Solaris平台上 本文简单介绍了Solaris平台上常用的几种IPC - C#的多线程能力
翻译文章 - 快来参加企业级工作流开发培训!
工作流基础知识讲解 工作流引擎实现技术讲解 - Sun ATS 自动性能优化工具简介
ATS是一个通过对编译好的二进制执行文件重新优化和 ATS不仅仅可以找到最优的客户程序编译选项,而且可 - SCA/SDO加速SOA编程模型统一
SCA规范用以帮助简化服务的构建与整合 SDO规范则关注对多个站点中多种格式数据的统一访
没有评论。
发表评论
大名: 请输入尊姓大名" controltovalidate="PostComment.ascx_tbName" isvalid="true">请输入尊姓大名 网址: 评论 请输入评论" controltovalidate="PostComment.ascx_tbComment" isvalid="true">
请输入评论
当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
用户权限设计(三)——通用数据权限管理系统设计【转】 - 不飞则已,一飞冲天 - CSDN...
用户权限设计(三)——通用数据权限管理系统设计【转】 - 不飞则已,一飞冲天 - CSDN...
用户权限设计(三)——通用数据权限管理系统设计【转】
用户权限设计(三)——通用数据权限管理系统设计【转】
用户权限设计(二)——用户认证管理设计方案【转】 - 不飞则已,一飞冲天 - CSDN博客
用户权限设计(四)——基于RBAC模型的通用权限管理系统的设计(数据模型)的扩展【转】
通用数据权限管理系统设计
通用数据权限管理系统设计 - 老丁的专栏 - CSDNBlog
用户权限设计(一)——ASP.NET系统用户权限设计与实现【转】
用户权限设计(一)——ASP.NET系统用户权限设计与实现
实现业务系统中的用户权限管理--设计篇
实现业务系统中的用户权限管理--设计篇
权限系统的设计
权限系统的设计
权限管理模块设计
ASP.NET系统用户权限设计与实现
权限设计
权限设计
权限设计
用户权限设计(二)
对权限系统设计的再思考
设计图书管理系统
基于RBAC模型的权限管理系统的设计和实现
基于RBAC模型的权限管理系统的设计和实现