APP下载

权限通用化管理系统的设计与实现

2014-10-23陈颖悦

三明学院学报 2014年2期
关键词:功能模块管理系统数据库

陈颖悦

(厦门理工学院 经济与管理实验中心,福建 厦门,361000)

随着高校信息化程度不断提高,高校各院系门户等信息系统日益增多。由于B/S模式具有标准化、开放分布式等优点。在服务器上集中运行各类信息系统,客户端只要装有浏览器,无需向C/S模式需要安装其他一些特定软件就可以随时随地访问这些信息系统。然而B/S模式在提供这种便利访问的同时,也存在较大的安全问题,需要对各类用户访问信息系统进行权限分配限制,如各院系门户网站内容发布、内容审核等权限需对不同用户进行限制。另外由于不同的信息系统的资源差别较大,每一个信息系统都重新设计一个权限管理不仅浪费人力物力,而且各管理人员都要重新培训学习,对管理人员也是非常繁琐。因此设计一套良好的权限通用化管理系统对整个信息系统的设计、管理、维护都具有非常重要的意义。基于角色的安全访问控制(RBAC,role-based access control)技术已经非常成熟,.Net也提供了对用户和角色管理的良好实现基础。

1 需求分析

权限通用化管理系统是整个信息系统的一部分,是基础支撑的子系统,通过通用权限管理子系统对具体系统功能、系统资源的使用访问进行授权,分配,管理。RBAC包括用户、角色、权限3个部分。将权限与角色相关联,用户成为角色的成员而具有该角色的权限,简化权限管理,如图1所示。

图1 简化权限管理关联图

权限通用化管理系统应具有以下特点:

(1)用户生命周期管理。对用户从注册、登陆、功能使用、资源访问、注销、删除等生命周期进行跟踪检测。将用户整个流程周期都控制在通用权限管理子系统,提高用户角色信息安全保证整个B/S系统的安全性。

(2)可重用性。这是权限通用化管理系统设计的初衷,提供基本的用户管理、角色管理、功能模块管理。在这些基本功能的基础上进行扩展,只需关注信息系统具体功能的实现,而无需关心用户控制、权限管理等功能。

(3)高效便捷。权限通用化管理系统基本数据都存储在数据库表中,用户、角色、权限、功能模块之间的关系也存储在数据库中。各个表之间的关联是多对多的关系。用户有复杂的角色权限继承关系。因此需要有较高的系统性能以及方便快捷的在此子系统的基础上进行功能模块的开发。

2 通用化权限系统功能模块设计实现

2.1 总体设计

权限通用化管理系统通过提供用户管理、用户角色管理、角色权限管理、功能模块管理等基本功能,通过功能模块管理可对各类具体功能模块进行集中统一管理。通过角色权限对用户进行高度灵活分配权限,实现多层次、分布式管理。使整个系统完整而不失高度可拓展性。

权限通用化管理系统采用B/S模式进行开发,ASP.NET是基于通用语言的动态网页开发工具,也是将面向对象的网络编程工具,具有强大性和适应性,完全基于组件与模块,具有良好的可定制性与可扩展性和兼容性。ASP.NET使用ADO.NET接口访问数据库,有天然优势。对于数据库具体操作代码,系统将使用存储过程来完成,这样既可以加快程序运行速度、增加可操作性、可维护性。与权限通用化管理系统有着极大的契合度,因此选用ASP.NET和SQLServer作为开发语言和数据库存储。

2.2 数据库设计

在权限通用化管理系统中数据库存储着各类模块、角色、用户、权限分配等信息。是权限通用化管理系统实现动态分配角色权限的基础。一个较为完整的权限通用化管理系统中数据库表至少需要包括功能模块表、用户信息表、角色信息表、权限分配表等等数据表。模块表用于保存实现具体业务功能模块信息以及各模块之间的关系,应包括模块编号、模块名称、模块路径、父级模块编号等等信息如表1所示。用户信息表保存用户的相关信息至少应包含用户账号、用户密码、用户所属部门角色编号等基本信息,可根据具体功能进行拓展字段,如表2所示。角色信息表用于存储系统的角色信息至少应包括角色编号、角色名称等基本信息,如表3所示。权限分配表则是用于存储用户-角色-功能模块之间的访问控制的关系,如表4所示。

表1 模块表

表2 用户信息表

表3 角色信息表

表4 角色模块权限表

通用化权限系统数据库数据模型如图2所示。

图2 通用化权限系统数据库数据模型

3 功能模块设计

权限通用化管理系统通过提供用户管理、用户角色管理、角色权限管理、功能模块管理等几大模块。

用户管理。用户管理是对用户的整个生命周期集中统一的管理。包括新用户注册添加,用户密码修改,用户资料修改,用户登录验证,用户删除,用户批量管理,查询浏览用户信息等基本功能。

用户角色管理。通过创建一系列用户角色并将用户指派到指定的角色就可以对用户按角色分组管理能方便统一的对该角色里面的用户进行批量设置。用户角色管理包括创建用户角色,删除现有用户角色,修改用户角色信息,浏览查询用户角色信息,分配用户角色等功能。

角色权限管理。将用户指派到各类角色,通过对用户角色进行授权实现对属于该用户角色的用户批量授权,用户加入或者退出相应的角色就具有或失去相应角色的权限,避免需对每个用户分别设置权限的繁琐操作。角色权限管理应具有分配新权限,修改现有权限、删除现有权限、权限查询浏览等功能。

功能模块管理。对各类实现具体功能的模块进行管理。包括添加、修改、删除、启用等功能。

整个通用权限管理的流程如下:首先把各类具体功能模块通过功能权限管理集成至系统中进行统一管理;根据实际需求按照部门级别不同创建多个用户角色,如各办公室、各部门等等具体角色;根据部门级别权限对创建的角色授予相关模块相应的操作权限;批量添加用户信息到系统中,并把用户加入相对应的用户角色中,用户即可继承该角色所对应的权限。

用户访问某个功能模块时要求用户先进行登录验证。验证通过后获取用户所在角色的权限列表,判断用户是否具有访问该模块的权限,有权限访问则继续调用加载该模块,无权限访问则进行相应的处理。流程如图3所示。

图3 通用权限管理的流程图

部分系统接口如下

用户登录验证

Public Function CheckLogin(ByVal username As String,ByVal password As String)As Boolean

用户输入用户名和密码,调用数据库查询功能,核对输入的用户名和密码验证用户是否为合法用户,返回验证结果。

添加用户角色

Public Function AddRole(ByVal rolename As String,ByVal rolememo As String)As Integer

添加用户角色之前先检查是否已经存在该用户角色有则提示已存在,不存在该用户角色则将输入的角色名,角色备注等信息添加至数据库角色表中,并返回添加后的角色编号id。

判断用户是否具有某个功能模块的操作权限部分代码如下:

判断用户是否具有某个功能模块的操作权限时,根据用户信息读取用户所属角色信息,再通过角色信息获取该角色所具有的权限列表,在权限列表中查找与该模块相匹配的记录,匹配到记录返回验证通过 True,否则则返回验证未通过False。

图4 权限通用化管理系统处理流程图

4 算法设计

权限通用化管理系统中有两类映射关系,分别是用户-角色映射关系 角色-权限映射关系。权限通用化管理系统中这两种关系较为复杂,如一个用户映射多个角色,一个角色映射多个用户等等,是多对多的关系。对用户-角色-权限之间的映射关系处理是权限通用化管理系统的重要组成部分。根据多个角色、权限分配继承映射不同,可以分为直接映射和继承映射。用户和角色之间没有继承其他角色的直接指派分配角色为直接映射。用户和角色之间存在继承其他角色的角色分配成为继承映射。举例如下,角色B继承自角色A,如果用户A与角色B存在映射关系,则用户A-角色B之间的关系为直接映射关系;用户A-角色A则为基础映射关系。角色A与权限A映射,角色B继承自角色A,则角色A-权限A之间为直接映射关系,角色B-权限A为继承映射关系。一个用户只能和一个角色存在直接映射关系,可以和多个角色存在继承映射关系。一个角色可以与一个权限存在直接映射关系,可以和多个权限存在继承映射关系。处理流程如图4。

部分代码如下:

5 结论与讨论

本文介绍一种支持多个应用系统集成环境下的进行统一用户授权管理所必须的授权信息通用化表示方案,在对当前主要权限控制模型分析总结的基础上,提出并实现了扩展的RBAC模型,它不但能够完成系统按角色进行授权管理、权限验证,对系统资源的动态管理,扩展了对用户临时权限的直接授权管理,从而有效的加强了Web系统的权限控制能力。另外,模型在实现时采用了独立的通用化设计原则,使得它能够很容易地在Web系统中进行集成复用、拓展挂载。在几个项目软件中的实用情况说明该扩展模型取得了较好的预期效果。

该权限通用化管理系统在设计上通过角色的分配管理可以有效地避免非法用户登陆该信息管理系统,对于那些不经常登录或者有破坏数据安全倾向的用户可以进行删除和禁用,在信息系统的安全管理中起到了非常重要的作用。该设计方案使得不同类别的管理人员和操作人员能充分有效而且合理地使用本绩效考核系统不但能够充分的发挥该系统的优越性而且较大地提高了系统的安全、可靠性,使权限达到自定义、颗粒化、卡片附加式的程度,具有很好的实际使用价值。

[1]张健,孙吉贵,李妮娅,等.工作流中一个基于加权角色的权限代理模型[J].吉林大学学报:工学版,2009,39(4):1057-1063.

[2]范明虎,樊红,伍孝金,等.ASP.net中基于 RBAC 的权限通用化管理系统[J].计算机工程,2010,36(1):143-145.

[3]杨莹莹.权限通用化管理系统研究与应用[D].成都:电子科技大学,2010.

[4]易高翔,杨春生,马良俊,等.B/S模式下基于角色的权限管理系统设计与实现[J].中国安全生产科学技术,2008,4(3):110-113.

[6]戴莹莹.B/S结构的OA系统中基于角色访问控制模型研究与实现[D].武汉:武汉理工大学,2006.

[7]吴春雷,张学辉.一种基于 RBAC 扩展模型的 Web 系统权限控制方法[J].科学技术与工程,2007,7(11):2672-2676.

[8]强光平,刘才铭,赵静,等.基于 JSP 的用户分组权限的设计和实现[J].计算机光盘软件与应用,2013(18):53-54.

[9]朱爱梅.基于对象的 RBAC 权限控制模型在 Web 系统中的应用[J].数字技术与应用,2011(11):242-243.

[10]徐宁.基于角色的访问控制技术在数字图书馆的应用[J].情报杂志,2007,26(11):62-64.

[11]夏志雄,张曙光.RBAC 在基于 Web 管理信息系统中的应用[J].计算机应用研究,2004,21(7):198-199.

[12]董斌,陈进哲,刘秀玲,等.基于Web的RBAC权限机制在电子病历系统的研究[J].计算机工程与应用,2008,44(26):233-235,238.

[13]崔乐乐,夏洪山.基于 RBAC 的权限认证在高校信息管理系统中的应用[J].电脑知识与技术,2010,6(29):8160-8161.

[14]杜利峰,许淳.基于 ASP.NET 权限动态分配的设计与实现[J].现代电子技术,2012,35(18):36-37.

[15]朱勇,陆亚东.基于角色的权限访问控制在 CMS 中的研究与应用[J].计算技术与自动化,2008,27(1):100-103.

[16]李南妮,张璟,李军怀,等.一种基于树型结构的 B/S 系统权限控制方法[J].计算机应用研究,2005,22(10):128-130.

[18]瞿诗高.基于Asp.Net MVC3.0设计 WEB信息管理系统身份验证与颗粒权限[J].计算机光盘软件与应用,2013,(5):169-170,184.

猜你喜欢

功能模块管理系统数据库
基于James的院内邮件管理系统的实现
基于LED联动显示的违停管理系统
海盾压载水管理系统
数据库
基于ASP.NET标准的采购管理系统研究
数据库
输电线路附着物测算系统测算功能模块的研究
数据库
M市石油装备公服平台网站主要功能模块设计与实现
数据库