APP下载

基于RBAC的权限管理在切削数据库中的应用*

2014-07-18孟德浩徐鹏付先武

组合机床与自动化加工技术 2014年7期
关键词:分配数据库部门

孟德浩,王 杰,徐鹏,付先武

(四川大学 制造科学与工程学院,成都 610000)

基于RBAC的权限管理在切削数据库中的应用*

孟德浩,王 杰,徐鹏,付先武

(四川大学 制造科学与工程学院,成都 610000)

切削数据是衡量切削技术水平的一个基本量值。现在越来越多的公司建立切削数据库来提高生产效率、降低生产成本等。以某汽轮机厂切削数据库权限管理模块为研究对象,针对其参与使用系统的部门众多、人员角色复杂多样以及权限划分详细而导致的系统中权限分配的工作量增大和操作不便的问题,采用现有RBAC权限管理方法,进行了研究,并提出了一种新的元素授权分配模型,得到一种适合的权限管理方案。在实际使用中,有效的解决了企业中并行部门众多,管理职能重复而导致传统授权管理僵化的问题,使用效果良好。

RBAC ; 切削数据库;权限管理

0 引言

切削数据库一般是根据加工工件来优化选择刀具,包括刀具材料、刀具几何参数、刀具结构、切削参数和机床等切削数据,可以提高生产效率、降低生产成本及保证加工质量[1]。某汽轮机厂切削数据库系统是该企业完成CIMS进程的重要环节。该系统针对各种切削加工需要的数据和信息,按照规则存储在计算机中,可以根据不同的角色使用不同的功能,包括打印、调用、修改和增删等。切削数据库中包含的内容根据加工方式的不同分为车削、铣削、磨削等加工信息,其中包括刀具的型号、材料牌号及性能;机床的型号和与性能参数;工件材料的牌号、成分、性能;切削液的类型等;并且具备专家智能推理功能,可以智能推荐适当的切削用量等。

切削数据库系统不同于普通的管理系统,其实现功能更多样复杂。本系统使用功能主要分为基本信息:包含机床信息,刀片信息(按照车削、铣削、磨削等加工方式进行分类),刀体信息(按照车削、铣削、磨削等加工方式进行分类)。功能菜单:车削管理、铣削管理、磨削管理。匹配关系:刀片与刀体、机床与刀体、工件材料与刀片材料。根据企业的实际情况权限分配主要是对于用户是否可以使用上述的具体功能。另外本数据库系统使用的部门众多,人员角色复杂,可以进行操作的权限划分详细,这都给权限分配模块增加了困难。所以使用传统的授权方式将难以实现。基于角色的访问控制[2](Role-Based Access Control)—RBAC作为代替传统强制访问控制的一种有前景的方法,近年来受到广泛的关注。该模型易于管理,并且将成本、错误发生率以及复杂性都降到了最低[3]。RBAC管理模型的基本思想是根据企业中对于职能岗位的划分,进行不同角色的赋予,并且通过控制角色的权限来进行用户对系统资源访问的间接控制。而通过用户和角色之间的联系来降低大量用户和权限分配系统的管理复杂性[4]。

1 基于角色的用户权限管理模型

1.1 RBAC基本原理

现在普遍使用的RBAC版本是基于Sandhu等人提出的RBAC96模型[5],包括3个基本实体用户(user)、角色(role)和权限(permissions)[6]。它强调用户的权限不是由用户而是由用户在组织中的角色决定的[7]。角色是指一个组织或任务中的某一特定的工作或职能岗位[8]。针对权限我们把一个用户所拥有的权限定义为由角色权限(Permission of Role)、个人权限(Permission of Person)、授权权限(Permission of Authorization)三个部分组成的集合:用户权限集合P[9]。每个用户都拥有这三种权限。这样的基于角色访问,使得授权管理更加简洁,灵活更符合现如今企业的用户、组织、数据及特征之间的关系。

1.2 切削数据库系统权限管理模型的建立

本系统根据企业的应用要求及管理特点同时提出三种授权方式:角色授权,个人授权,授权权限授权。如图1所示。

图1 授权流程

(1)角色授权:对于分配给用户的权限通过授权给特定的角色(如部门主管、技术员、操作员等)来实现。角色具有使用系统特定功能的权限,如打开系统中不同的库(刀具库、刀体库等)。用户被分配某一角色或者在某一角色中选择了某一个用户,则该用户具备该角色所拥有的权限。

(2)个人授权:对于分配给用户的权限通过直接对该用户授予具体的某个权限来实现。上级可以对自己部门的下级进行他可以操作系统的某个具体权限。个人权限是个人通过系统直接授予而获得的具体功能权限[10-12]。由于工作职能划分越来越详细,所以相同角色的情况下也可能出现所拥有权限不同的情况。

(3)授权权限授权:分配给用户的权限可以对其他用户再次进行授权而得到的权限。对用户的授权通过其他用户授权来实现。

在系统的权限分配实现中,会把三种授权方式相结合。根据实际情况创建部门,并且分配上下级关系,然后根据不同的职能在相应部门下创建出不同的角色,给不同的角色分配以不同的角色权限。角色与用户的建立一定是建立于部门的基础上的,只有用户是某个部门的职员该用户才可以被加入到数据库系统中,同时只有具体部门下的角色才会被创立。不存在不属于任何部门的用户与角色。将用户分配给某角色或者在角色中选择不同的用户。当需要对相同角色的不同用户进行权限区分时,则需要对用户进行个人授权。而当被授权用户需要可以对其他用户进行授权时,则需要对被授权用户进行授权权限授权。通过以上步骤则初步完成系统的权限分配。

1.3 改进的用户与角色授权

由于在系统实际使用中,会出现希望某个用户或角色可以进行查看和查询某一个库却不能对其资料进行修改的情况,比如技术员可以修改加工信息,而操作人员只可以对于加工信息进行使用或者打印出来但是不能修改加工流程。所以我们针对功能分配进行了细化处理。即将功能划分建立在不仅仅可以使用某一个库而是具体到是否可以使用该库中的某个按钮的基础上。在用户及角色授权中加入了用户和角色的元素授权。针对系统使用中页面上的具体按键将其作为权限进行分配,如在机床信息中某些用户或者角色只可以看到现有的机床信息而不能对其进行修改和删除,则我们可以通过对该用户在机床信息中的修改及删除元素进行权限管理进行控制。这样有效的解决了只希望禁用系统中一个功能的一部分子功能的问题。

2 角色权限管理在实际项目中的应用

在本切削数据库系统中,我们采用了在上述第二节介绍的模型。在实际应用中得到了良好的应用和验证。开发环境如下:采用了Strusts + Spring+ Ibatis + Ajax 框架,Microsoft SQL5.5数据库。以下是实际开发权限管理模块的主要过程:

2.1 数据库设计

图2 数据库模型设计

系统权限模型的关键表如图2所示。用户表(user)存储用户的基本信息如用户名、密码、所属部门等。角色表(role)存储创建的角色信息。部门表(dept)存储部门信息,并且包含上下级部门关系的处理。通过部门表来实现用户与角色之间的管理,例如同是技术员但是分别属于不同的部门那么则是不同的角色。这样也方便了部门主管对于下属的管理。用户角色授权表(userauthorize)则实现了用户与角色之间的多对多关系,角色授权以及授权权限授权都是通过这个表进行的。功能表(menu)存储具体的功能。分别通过角色授权表(roleauthorize)以及用户授权表(userauthorize)实现功能与用户和功能与角色之间的多对多关系。

2.2 改进的用户与角色授权数据库设计

为了实现对于元素的权限分配,我们在以上的表的基础上增加了一些关键表,如图3所示。元素功能表(menupart)存储了上述功能表中所存储功能中的元素功能(如功能表中存储了机床信息功能,则在元素功能表中存储有机床信息中的新增,修改,删除等元素功能)。用户元素授权表(usermenupart)实现了用户与元素功能的多对多关系。角色元素授权表(rolemenupart)实现了角色与元素功能的多对多关系。

图3 元素授权数据库模型设计

2.3 实体类设计举例

下面以角色管理与授权的实现代码进行简单的介绍。

public class RoleAction extends BizAction{

private RoleService roleService = (RoleService) super.getService("roleService");

Public:

//构造函数

UserInfo (userid username roleid deptid…)

//获取用户信息空间

Dto getUserInfo (Dto pDto) {}

//角色管理与授权界面初始化

Public ActionForward RoleInit (deptid…)

//查询角色列表

public ActionForward queryRolesForManage ()

//管理权限授权

public ActionForward managerTabInit

return

mapping.findForward("managerTabView")

//保存权限授权

public ActionForward saveGrant()

}

本系统采用登录验证的方法进行权限的初始化,即用户登录后则用户类型以及权限已经通过后台自定义代码进行确定。系统再根据用户、角色与功能之间的关系逻辑推理出用户所拥有的权限,然后返回到前台实现对于系统页面的权限控制。

2.4 授权模型应用效果与用户反馈

应用本授权模型后,大大减轻了系统管理员的工作负担,简化了授权的流程。

(1)增加了管理的安全性。本系统按照部门进行角色分配,上级部门可以对下级部门进行权限管理,部门主管可以对其本部门下其他下级角色进行权限管理,而不能对其他部门下级角色进行管理。这样避免了部门之间的信息泄漏,提高了系统管理的安全性。

(2)增加了系统的灵活性。管理员可以按照实际情况根据不同部门进行相应的权限分配。同时通过元素权限分配可以将权限分配细化到是否可以改动系统信息等。这样可以随时对权限进行添加或取消,解决了部门归属领导复杂的问题。

(3)减轻管理员工作量,增加授权的准确性。这种分级进行授权的方式将授权工作分配给具备权限的各级人员,这样增加了授权的准确性,同时减轻了管理员工作量。

3 结束语

目前,本切削数据库系统使用情况良好,授权方案取得了良好的效果。不但继承了传统静态权限管理模型的有点,同时引入了部门分级操作以及元素权限分配。满足了企业部门众多,人员众多同时需要使用系统的权限复杂的要求。针对企业特点而提出的改进后的模型有效的解决了复杂的权限分配问题。并且可以灵活的结合企业ERP系统以及与其他部门之间的配合。

[1] 刘战强,黄传真,万熠.切削数据库的研究现状与发展[J].计算机集成制造系统-CIMS,2003,9(11):937-943.

[2] OSBORN s, SANDHUR. Configuring role-based access control to enforce mandatory and discretionary access control policies [J]. ACM Transaction on Information and Sy8tan Security, 2000, 3(2):123-132.

[3] 黄益民,平玲娣,潘雪增.一种基于角色的访问控制模型及其实现[J].计算机研究与发展,2003,40(10):1521-1528.

[4]LIN A, BROWN R. The application of Security policy to rose-based access control and the common data security architecture [J].Computer Communication. 2000,23(17): 1584 -1593.

[5]Sandhu R S; Coyne E J; Feinstein H L Role-based access control models. IEEE Computer, 1996,29(2): 38-47.

[6] 吴薇.基于角色的访问控制技术的用户权限管理及实现[J].福建电脑,2008(11):176-177.

[7] 蔡兰, 郭顺生, 李益兵.基于角色访问控制的动态权限配置研究与实现 [J].组合机床与自动化加工技术,2005(3): 86-87.

[8] 闫如忠, 陆立颖.RBAC在分布式监控和故障诊断系统中应用 [J].组合机床与自动化加工技术,2007(8):56-59.

[9] 刘建圻,曾碧,郑秀璋.基于RBAC 权限管理模型的改进与应用[J].计算机应用, 2008,28(9): 2449-2451.

[10] 杨强,王忠民.ERP系统用户权限分配问题的实现[J].微机发展,2004, 14(7):16-17.

[11] 张世龙,沈玉利.一种改善RBAC模型用户权限获取效率的方法[J].四川大学学报:自然科学版,2009,46(1):69-74.

[12] 李辉,崔汉国,林积徽.RBAC优化模型在装备保障信息系统中的应用[J].计算机工程与设计,2008,29(6):1450-1452.

(编辑 李秀敏)

Application of Access Control Mode in Cutting Database Based on RBAC

MENG De-hao, WANG Jie,XU Peng,FU Xian-wu

(School of Manufacturing Science and Engineering, Sichuan University, Chengdu 610000, China)

Cutting data is a basic measure of the level of cutting technology. Nowadays, an increasingly number of corporations are more apt to establish the cutting database so that they can improve production efficiency, lower production costs etc. In this dissertation, the authorization control modules in cutting database of a certain turbine factory is selected as the subject investigated. Aiming at the issues, heavy workload in systemic permission assignment and inconvenience of operation, which are caused by multi-user, multi-authority, multifunction, we adopt the existing RBAC to do the research. As a result, a brand new element authorization assignment model has been presented and an appropriate authorization control scheme comes out. In actual use, this scheme proves to be effective in eliminating the problems the rigid management in some enterprises with troubles of department redundancy.

RBAC; cutting database; authorization control

1001-2265(2014)07-0158-03

10.13462/j.cnki.mmtamt.2014.07.046

2013-11-14;

2013-12-12

四川大学校市合作重点科技计划项目(2012GH001)

孟德浩(1990—),男,黑龙江大庆人,四川大学硕士研究生,主要研究方向为计算机辅助设计与制造,(E-mail)531942143@qq.com;王杰(1964—),男,成都人,四川大学教授,博士生导师,主要研究方向为计算机辅助设计与制造,计算机集成制造系统,(E-Mail)554365209@qq.com。

TH166;TG65

A

猜你喜欢

分配数据库部门
联合监督让纪检部门不再单打独斗
应答器THR和TFFR分配及SIL等级探讨
遗产的分配
一种分配十分不均的财富
哪些是煤电部门的“落后产能”?
数据库
医改成功需打破部门藩篱
数据库
数据库
数据库