基于RBAC的权限管理在销售合同管理系统中的设计与实现.docx
11页基于RBAC的权限管理在销售合同管理系统中的设计与实现Design and Implementation of Rights Management Based on RBAC in SalesContract Management System摘 要:基于角色的访问控制(RBAC )是一种安全、高效、便捷的信息系统 访问控制策略,它能很好的解决复杂系统的权限管理问题本文在介绍RBAC 基本思想和基本模型的基础上,成功的将RBAC模型应用于某机械制造企业销 售合同管理系统的开发中,降低了系统授权管理的复杂性,很好的解决了该系 统面向多部门、多用户、安全性要求高等需求关键字:角色;权限管理;RBAC;机械制造业;销售合同管理系统Abstract: Role-based access control (RBAC) is a safe, efficient and convenient policy for information system access control; it is a good solution to the authority management issues of complex systems. This paper firstly introduces the basic ideas and model of RBAC, and then successfully applies the model of RBAC to the development of sales contract management system for a machinery manufacturing enterprise. By using the model, we significantly reduced the complexity of authorization management and well met the requirements of multi-sector, multi-user, higher demand for security of the sales contract management system.Key words: role; authority management; RBAC; machine building industry; sales contract management system1引言在全球经济一体化大背景下,企业间竞争愈演愈烈,传统模式下的手工管理 销售合同己经不能满足企业的发展需求,企业急需使用信息化手段来快速反应 市场需求、提高顾客满意度,进而提高金业的核心竞争力。
销售合同管理是一 项涉及多部门、多角色人员、安全保密性要求极高的企业日常管理工作为快 速响应客户需求、缩短交货周期,进而高质量、高效率的为客户提供满意的产 詁或服务,利用现代信息化管理技术实现销售合同信息化管理具有重大意义针对该机械企业的实际需求,我们以J2EE为开发平台,采用Java程序设计 语言,底层数据库选用SQL Server 2005,开发出T B/S模式下基于RBAC (Role Based Access Control)的销售合同管理系统通过采用RBAC模型对具有不同 角色的用户进行访问权限控制,人人的提高了系统的安全性和权限管理的复杂 性2 RBAC模型介绍RBAC (Role-Based Access Control一基于角色的访问控制)模型是20世纪 90年代提出來的一种新的访问控制模型,从本质上讲,该模型是对传统访问矩 阵模型的一种扩展该模型将用户与权限相分离,在用户与权限乙间引入角色 这一概念,通过授予用户适当角色进而来获得该角色的访问许可权2.1 RBAC基本概念基于角色访问控制的要素包括用户、角色、权限等基本定义1) 用户:代表的是人,也可是智能机器,只要是能够做出动作的主体即可。
2) 角色:表示在一个组织机构工作环境中的工作职责,它描述了被授予此 角色的用户所拥有的权利和责任3) 权限:是一个许可权,表示在对一个或多个冃标执行操作的许可权用户角色分配和角色权限分配均是多对多的关系通过在用户与权限之间 增加角色概念,使用户与权限相分离,使系统的访问更加灵活、高效2.2 RBAC基本思想RBAC的基本思想是:授权给用户的访问权限,通常由用户在一个组织中 担当的角色来确定RBAC中权限被授权给角色,角色被授权给用户,用户不 直接与权限相关联RBAC对访问权限的授权由系统管理员统一进行管理, RBAC根据用户在组织内所处的角色做出访问授权与控制,授权规定是强加给 用户的,用户不能自主地将访问权限传给他人,这是一种非自主型集中式访问 控制方式,其基本思想如图1所示图1 RBAC的基本思想在RBAC模型中,一个用户可被赋予多个不同的角色,一个角色也被赋予 多个不同的用户,用户和角色是多对多的关系同理,一个角色可被系统管理 员授予多项操作权限,某一项操作权限也可别授权给多个不同的角色,角色和 权限之间也是多对多的关系,当用户登录系统后,可根据该用户所有角色权限 来判断其可以访问的资源和可以进行的操作。
3 RBAC模型在系统中的应用3.1销售合同管理系统我们以上海某机械设备制造企业生产实际为背景,以该企业销售合同管理 工作的实际需求为依据,通过分析传统手工方式下销售合同管理流程现状中存 在的不足,在流程化、规范化、标准化合同管理的基础上,研制了该销售合同 管理系统系统的核心H标是快速响应市场需求,提高企业核心竞争力,系统 核心功能模块如图2所示rvi««j叭"己"亡 7Z1- »T» ziT 1 M«K= ZCT J1U1r !•・J •«! nnnf f.V .UKft vrra i* «j *<■<• xutUM -irr FCUQb WV!4 Q: HU"1 八立 1i・i厶 i tnrr “u i-八八 J '» 1 fH i'< I'M2 iw ”卜"r< jh*"1 Pg 皿 5fl® fl\ K& izr »T>FJ l u 朽t izr »T>- 1"・ l ' 1^1
系统的表现层采用传统的JSP 技术,中间层采用Spring+Hibernate,数据服务层用来存放系统数据2)系统流程该大型机械设备制造金业为订货生产型企业,其根据客户要求生产出不同 类型、型号的最终产品首先各部门销售人员输入合同信息,部门领导对输入 系统中的合同进行审核,审核通过则流转到财务处进行财务审核,若通过,销 售总部则根据库存信息制定工作令计划报总经理批示,批示通过则根据产品结 构信息(BOM)生成物料需求计划(MRP)报表交各分厂车间进行作业,系统 流程图如图3所示图3系统流程图(3)系统用户角色划分该销售合同管理系统设计销售、财务、检测中心等多个企业业务部门,根 据各用户在合同管理业务流程中职责、权限的不同,可将该系统的用户划分为 以下儿种角色:1)系统管理员:拥有系统最高使用权,可对其他用户信息进行编辑、修改 和删除,以及动态更改其他用户的访问权限;2) 总经理:拥有合同信息最高查询权和工作令审批权限;3) 销售主管:拥有合同信息'市批权和相应查询权;4) 财务会计:主要对输入系统的合同信息进行财务审核;5) 开票员:负责开提货单通知客户提货;6) 拆分员:负责对合同中设备进行拆分;7) 检测员:检测中心检测员负责对设备进行检测;8) 销售员:主要工作是负责将本部门合同信息输入系统;3.2 RBAC模型在系统中的具体实现(I)数据库中表的设计销售合同管理系统是一个跨部门使用、多用户操作、安全性要求极高的企 业信息化管理系统,考虑到该系统的多用户性、安全性、稳定性和可维护性, 宜采用用户与访问权限相分离的数据访问控制方法。
RBAC正是基于这样一种 理念而广受青睐的系统访问权限控制模型木系统采用RBAC模型来实现对系统不同功能模块访问权限的动态控制,其用户表、角色表、权限表、用户角色 关系表、角色权限关系表结构如表1・6所小乙表1用户表(Users)字段名称字段类型字段说明备注UserIDint用户编号非空UserNamenvarchar(20)用户姓名非空UserPwdnvarchar(20)用户密码非空Departmentnvarchar(20)用户所属部门可为空Statusnchar(4)状态非空表2角色表(Roles)字段名称字段类型字段说明备注RolelDint角色编号非空RoleNamenvarchar(20)角色名称非空表 3 权限表(Permissions)字段名称字段类型字段说明备注PermissionlDint权限编号非空PermissionNamenvarchar(20)权限名称非空URLn varchar( 100)URL地址非空ParentIDint父级编码非空表4用户一角色关系表(U R)字段名称字段类型字段说明备注URIDint用户角色关系编 号非空UserIDint用户编号非空RolelDint角色编号非空表6角色一权限关系表(R P)字段名称字段类型字段说明备注RPIDint角色权限关系编 号非空RolelDint角色编号非空PermissionlDint权限编号非空(2)利用Spring IOC容器来动态装载用于描述系统各功能模块URL地址和权 限编码之间映射关系的功能权限配置文件permission.xmU功能权限配置文件permission.xml是实现对不同用户进行权限控制的一个 核心配置文件,它记录着系统所有功能模块的URL地址和权限编码之间的映射 关系,是一对多的关系,即,被授予不同权限的多个用户可能对系统中某一功 能存在共同访问权(如本系统中对合同基本信息的查询)。
Permission.xml配置 文件核心代码如下:





