邵发明 伍红兵 卜一波 李兴德 陈磊
摘要:信息管理系统所面对的服务对象不同,需要对不同用户赋予不同的权限。该文在根据信息管理系统的普遍设计需求,提出基于Struts的信息系统权限设计方法,分级、分角色进行信息管理系统的权限管理。根据用户角色在系统操作和信息读取上实现权限细粒度划分。基于该模式的信息系统权限管理具有高效性、灵活性、适应性以及安全性。
关键词:信息管理系统; 权限; 角色; 分级;信息安全
中图分类号:TP311 文献标识码:A文章编号:1009-3044(2012)30-7141-03
1 概述
Struts是最早的MVC开源框架,它是apache组织基于MVC模式开发的开源的单点控制的web应用框架(framework)。Struts的的目的是为了减少在运用MVC设计模型来开发Web应用的时间。
信息管理系统的权限管理,是指根据不同的用户和角色,分配不同的信息管理系统的操作权限。让不同的用户能够享受信息管理系统的功能、对不同的数据库对象进行操作、在信息管理系统中完成不同的任务,并且不允许其进行权限以外的操作确保系统安全有序的运行。
2 用户权限分配概述
2.1基于B/S系统的权限设计的重要性
B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现。而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个“非法用户”很可能就能通过浏览器轻易访问到B/S系统中的所有功能。因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让经过授权的用户可以正常合法地使用已授权功能,而对那些未经授权的“非法用户”将会将他们彻底的“拒之门外”。
2.2权限和角色的划分
权限(Privilege)是授予用户访问系统中特定对象或资源,对对象或资源执行特定操作的一种能力。
角色(Roles) 是指具有相同权限的一类用户或者用户组。用户在一般情况下是指管理信息系统的使用者。基于角色的权限管理将整个控制过程分成两个步骤:访问权限与角色关联;角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
2.3权限分配方法
不同职责人员对于系统操作的权限应该是不同的,因此要对不同的用户进行用户权限分配。
可以对“组”进行权限分配。对于一个大企业的业务系统来说,如果要求管理员为其下辖员工逐一分配系统操作权限的话,是件耗时且不够方便的事情。所以,系统中提出了对“组”进行操作的概念,将权限一致的人员编入同一组,然后对该组进行权限分配。
权限管理应该是可扩展的。它应该可以加入到任何带有权限管理功能的系统中。就像是组件一样的可以被不断的重用,而不是每开发一套管理系统,就要针对权限管理部分进行重新开发。
满足业务系统中的功能权限。传统业务系统中,存在着两种权限管理,其一是功能权限的管理,而另外一种则是资源权限的管理,在不同系统之间,功能权限是可以重用的,而资源权限则不能。
权限具有灵活的可配置性。系统能够根据用户的需求以及系统安全之间的权衡,给用户灵活分配系统的权限。
3 院校设备管理系统的权限设计
借鉴目前主流信息管理平台的用户权限管理模式,以自己设计与实现的院校设备管理系统为例,对信息管理系统的用户具体权限进行分析。
3.1系统架构设计
院校设备管理系统是为了对院校的人员、计算机、存储介质、教学科研设备、计算机入网及各种硬件设备报废进行全寿命管理的综合信息管理系统。
该系统应用JAVA语言开发,基于Struts框架、SQL Server数据库,系统依托校园网,多级管理权限。系统信息分别由一般用户录入、设备管理工作人员审核、最终由系统管理员进行技术审核。分级负责,系统自动保持信息的一致性和准确性,能够根据需要生成各种统计报表。该系统的系统架构图如图1所示。
3.2系统权限设计
院校设备管理系统涉及的管理用户有三个:系统管理员、设备管理员和一般用户。
系统管理员负责整个系统的管理,包括有配置管理,故障管理,安全管理及用户管理等。
设备管理员负责审核一般用户资格,为一般用户建立账号,同时也可对以有重复或错误账号进行删除、修改;对于已录入设备的信息、计算机信息、存储器信息进行审核,符合要求的将通过审核并提交给系统管理员来进行进一步处理。
向教学保障单位申请并通过审核的人员,在设备管理员为其建立好账户后,就可以通过该系统进行设备信息、计算机信息、存储器信息等的录入,等待设备管理员的审核,教学保障审核通过、系统管理员审核通过后,该设备就成功录入设备管理系统,实现了设备信息的计算机管理。
4 院校设备管理系统的权限的实现
根据对以上三类用户职能的分析研究,基于面向对象的设计思想,将用户划分为三个对象,对每个对象的功能封装,完成对用户权限的细致设置。
4.1基于权限管理的数据库设计
在数据库设计中,考虑到系统的权限分配的问题,在数据库字段设计上将引入权限字段。权限字段采用整型数字,这样的权限字段的设计有利于在后期的程序设计中,使权限判断和权限比较转换成数值的比较,有利于提高程序设计的灵活性以及后期的可扩展性。本系统中管理员数据表数据库模型图设计图如图3。
4.2权限管理的数据库层次的查询代码实现
系统中数据库的查询SQL阶段,通过良好的SQL数据库语句构架,来设计SQL查询语句。由于采用的是JAVA嵌入式SQL语句,在SQL中嵌入用户身份信息,并且对身份信息进行判断。这样可以实现对数据库信息的过滤,使系统前台只能读取到适合于该用户角色的信息。大大的提高了数据库查询的合法性、安全性以及可靠性。部分嵌入式SQL的代码如下:
4.3 权限管理的程序层次的代码实现
在程序实现层面,主要是根据不同的用户角色,来进行系统功能分配。对于B/S系统来说,权限的分配即体现为不同的用户可以读取不同的系统页面,不同的权限在相应的页面可以显示不同的系统模块,实现不同的系统操作。通过对于页面、模块、操作的控制,大的提高了系统的可控性,避免用户的非法操作,确保了系统的安全,完善了功能的分配,实现了系统的良好管理。根据角色、权限实现系统页面、模块、操作分配的部分代码如下:
5 系统测试
目前该系统目前已经投入运行。在测试过程中,通过50名学生分别模拟系统管理员、教务管理员和一般用户对系统信息录入、信息审核等系统操作。测试结果表明,在权限管理个权限分配方面系统运行效果良好,达到预期目的。
6 结束语
科学合理的权限划分,可以充分满足系统管理员、设备管理员和一般用户工作的方便性和快捷性。不同的人员授予不同的权限符合设备管理系统的操作需求,尤其对于需要逐级审批的系统而言,权限管理尤为重要。通过数据库的设计、查询以及程序代码的设计,可以较好的实现权限分配,用于三级权限管理或者多级权限管理的信息系统。该项目目前已经通过鉴定,正在申报军队科学进步奖。参考文献:
[1] 齐斌.基于角色的权限管理模型在大学生创新性项目管理系统中的研究与应用[J].软件导刊,2011(3).
[2] 钟旭红.嘉应学院成人教育教材管理系统的研究和开发[D].广州:广东工业大学,2004.
[3] 齐润泉.VPN技术在教育城域网中的应用研究[D].山东科技大学,2004年
[4] 刘剑.农村人力资源管理及决策支持系统研究[D].重庆:重庆大学,2004.
[5] 伍珍贞.高校(广东青年干部学院)综合教务管理系统的设计和研究[D].广州:广东工业大学,2005.
[6] 闫冬梅.三峡库区边坡稳定性评价决策支持系统的研究与实现[D].武汉:武汉理工大学,2006.
[7] 邱哲,王俊标,马斗. Struts Web 设计与开发大全[M].北京:清华大学出版社,2006.
[8] 邹俊.整合Struts 和Hibernate 的Web 应用开发[J].微计算机信息,2008(9).
[9] 蒋宏潮,尹怡欣,班晓娟 .基于SOA 的St rut s 框架应用[J].计算机工程,2009(1).
[10] 梁爱虎.精通SOA : 基于服务总线的Struts + EJB + WebService 整合应用开发[M].北京:电子工业出版社,2007.