在PLM系统中,要保证数据对象的安全性以及易操作性,使企业的各业务部门、职能部门能够方便而且高效的协同工作,那么一个好的数据权限管理设计就成为一个关键的问题。虽然企业中各个单元的工作流程有所不同,处理的数据对象也有所不同.但是在组织结构、信息的处理方式上具有很多相同的地方,这就为设计数据对象的权限控制提供了一个抽象基础。数据权限的控制不同于一般的功能权限的控制,一般的功能权限指的是某个用户、角色或者是某个用户组能不能操作某种功能:而数据权限指的是某个用户、角色或者是某个用户组肘某个数据对象的操作幅度的问题,比如说用户A可以对数据对象进行完全控制,而用户B则只能对数据对象进行浏览的权限,同时数据权限控制隶属于动态权限控制的范畴。本文提出了一种基于权限规则的数据对象权限控制机制。
1 影响权限规则的因素
一条权限规则包括控制主体、控制客体以及对控制客体的相关操作。本文中的控制主体包括3种类型:用户、用户组以及用户角色:控制客体包括数据对象、业务对象等。
在PLM系统中,每个产品的结构文档以及各个零部件,都看作是一个具体的对象,而这些对象都有相应的生命周期以及存储位置,而每个数据对象的操作需要具体的系统用户去完成,而用户对数据对象的操作要满足对某个数据对象进行操作的权限,比如说用户A只能操作A文件夹中的A对象,从上述分析可以看出影响数据权限控制的4个影响因素是:控制主体、数据对象所处的状态、数据对象的存储位置以及一般功能权限,如图1所示。
图1 影响权限规划的因素
2 数据对象的动态访问控制设计
数据对象的权限控制分为静态权限控制和动态权限控制。静态的权限控制不会随肴数据对象的变化而变化,这种权限控制是已经预先设置好的,是一种被动式的权限控制;而动态权限控制和数据对象的动态变化息息相关。当某个数据对象变化以后,同一个用户对此数据对象的权限也会发生变化,原先的权限就会失效,此时变化后的数据对象会被赋予新的操作,用户也会得到新的权限。
不管是静态权限控制还是动态权限控制,可以通过权限规则进行数据对象的权限管理。所谓的权限规则义称为权限策略,是用来描述数据对象进入到某个特定的状态后用户能对数据对象进行何种操作。一条权限规则包括拧制主体、控制客体以及可以操作的行为,而对于某个数据对象可以定义多条权限规则,这些规则共同决定了对该数据对象的权限控制。其中规则定义了如下权限规则:
1)控制主体的优先级:用户>角色>用户组。
2)否定优先:控制主体对同一控制客体同时具有肯定和否定权限时,否定权限优先。
3)操作行为的优先级:在PLM系统中,具体的操作行为以及操作行为的优先级由系统用户进行自定义。
PLM系统中的数据对象是动态变化的,同时数据对象是具有生命周期的,为了维护生命周期模板的一致性,本文采用的是在数据对象的生命周期模板外部进行映射的方法来设置数据对象的权限。这样做的好处是当组织结构发生变化的时候,不需要修改生命周期模版,通用性较高。缺点是当某个用户完成了对某个数据对象的操作之后需要重新为此数据对象设置新的权限,要在外部重新映射。
本文根据PLM系统中设定的权限规则给出数据权限映射的形式化描述。
1)定义U表示用户集合,U{ui|l≤i≤n},ui表示的是任何一个用户。
2)定义G表示的是用户组的集合,用户组是多个用户组成的一个集合,则G可以表示为:G={gi|l≤i≤n}
3)定义R表示的是用户角色的集合,角色是规定某些用户使用系统的优先级,则R可以表示为:R={ri|l≤i≤n}
4)定义OS表示的是数据对象的集合,是权限规则中的控制客体,则OS可以表示为OS={OSi|l≤i≤n},OSi表示任意一个数据对象。
5)定义F表示的是功能集,此处提到的功能是对数据对象进行访问的时候可以进行的操作,本文用F表示一个功能的集合,包括浏览、创建、删除等功能。
6)定义UG表示的是用户到用户组的映射。UG∈U×C表示的是用户和用户组之间的多对多的映射关系。G(ui)={(ui,g)∈UC|g∈G,l≤i≤n}表示任何一个用户可以对应着一个用户组的集合。
7)定义UOS表示的是用户到数据对象集合的映射。UOS∈U×OS表示的是用户和数据对象之间多对多的映射关系。user→aOS,a∈N表示一个用户到一个数据对象集合的映射。
8)定义GOS表示的是用户组到数据对象集合的映射。COS∈U×OS表示的是用户组和数据对象之间多对多的映射关系。role→aOS,a∈N表示一个角色组到一个数据对象集合的映射。
9)定义ROS表示的是角色到数据对象集合的映射。ROS∈R×OS表示的是用户组和数据对象之间多对多的映射关系。group→aOS,a∈N表示一个用户组到一个数据对象集合的映射。
10)定义EP为一个集合,表示的是对数据对象的相关操作的优先级。
11)定义UP为一个集合,表示的是控制主体的优先级,文巾定义了3个主体:用户、角色和用户组,那么UP={0,1,2},值越小优先级越高。
12)定义UPL为控制主体的集合,VPL=(UOS,GOS,ROS)UPr。
13)定义FL为带优先级操作的集合,FL=F FPr
14)定义RUS表示的是某个数据对象OSi的权限规则。从上述描述中知道,每个权限规则是有控制主体、控制客体和操作组成。则RUS∈UPL×FL表示的某个数据对象OSi的数据权限规则集合。
从上面的14个形式化定义可以知道,某个数据对象OSi的数据权限规则集合RUS(OSi)∈UPL(OSi)×FL(OSi),这样就可以得出某个数据对象所拥有的权限,然后系统管理员按照具体的要求分配权限即可。
3 基于.NET的数据权限控制验证
本文基于.NET设计和验证此模型的正确性相通用性。首先我们根据文中给出的形式化描述给出数据权限设置的UML类图,如图2所示。
图2 数据权限设计类图
在实际的PLM系统中,通常分为两类数据权限控制,第一种是对存储数据对象的文件央的权限设置,第二种是对数据对象直接设置权限。根据此模型开发的PLM系统在许多大中型制造业中得到了应用,比如说在汽车制造业中的应用。
举例验证此模型的正确性。首先验证的是对文件夹的授权。在PLM系统中,文件夹权限规则所包含的控制客体是用户和角色两个对象。如图3所示。
图3 对文件夹进行授权
而对数据对象直接授权的情况,首先在设计业务流程的时候,预先设置执行人,然后在设置此执行人对某个数据对象的具体的操作。例如在PLM系统巾面对cat图纸这个文档设置相关的操作权限,如图4所示。
图4 对数据对象设置权限
4 结论
本文主要研究问题是如何控制处于不同状态的数据对象所拥有的数据权限,提出了基于权限规则和在数据对象外部映射权限的形式化定义,最后基于.NET实现了数据对象的权限控制,并且通过实际的PLM系统验证了此数据权限模型的正确性。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:PLM系统中数据权限控制研究