冯益斌
[摘要]在基于Web访问的管理信息系统中,系统的安全性问题至关重要。而采用基于角色访问控制(RBAC)模型可以有效地解决系统安全性问题。结合“化学药品管理”系统设计与实现,详细论述角色访问具体的安全机制,通过限制系统中各种角色对系统的操作,有效地解决了Web页面安全访问和控制数据库的问题。
[关键词]RBAC 安全 权限
中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0510049-01
一、引言
基于角色的访问控制RBAC(Role-Based Access Control)的概念是从20世纪70年代对在线的多用户、多应用系统的研究开始的。因为基于角色访问控制策略是一项成功的技术,在许多Web应用程序中,正需要用它来有效地增强对用户访问的控制和管理。
目前笔者单位对实验室化学药品管理还出于手工阶段,很大程度上造成了信息的不一致性,而且对数据的安全性也不能很好地保障。文中设计的“化学药品管理”系统正是为了弥补这种不足,但同时为了保证系统的安全性,加强身份认证和访问控制,采用基于角色的访问控制策略给出了一个相应的解决方案,详细论述了角色访问(RBAC)具体的安全机制,通过限制系统中各种角色对系统的操作,有效解决了WEB页面安全访问和控制数据库的问题。
二、系统的设计与实现
(一)系统的设计
在现有的应用信息系统中主要存在以下问题:
面对大型数据库系统,如SQL Server,应用系统的用户并非专业的数据库管理人员。由于大型数据库安全管理的复杂和专业化,使得普通用户在使用过程中很容易发生误操作。
现有的一些数据库应用系统中虽然实现了数据库安全访问控制,但设计缺乏灵活性,在实际应用中,随时间和情况的变化,程序的适应能力差。为了解决上述问题,设计目标力求在保证后台数据库安全的前提下,提高软件的可用性,以及操作界面的友好性。
(二)系统的实现
该方法采用流行ASP.NET 2.0+SQL2000完成,系统运行于IIS上。这种B/S(Browser/Server)结构方便于网络浏览,适合用户同时使用该系统。
与RBAC相关的表结构如下:
其中,sys树型目录、sys权限表是相对固定的表格,在设计之初就能确定下来。sys用户表、sys角色表、sys角色权限表是在实际使用过程中会动态修改的表。以下是权限控制的几个关键操作:
用户登录:先判断用户名和密码是否匹配,再读取该用户的角色名称,存储到Session中。
获取权限列表:根据存储到Session中的用户的角色名称,从sys角色权限表中获取该角色拥有的权限列表,并存储到Session中。
显示树型菜单:从数据表sys树型目录中读取所有数据,并加载到Tre
eView控件中,加载时,先获取该节点的权限,然后根据存储在Session中的权限列表,查看该权限是否在权限列表中,如果存在,表示该角色有此权限,加载该节点;否则,跳过该节点。
权限检测:对于每个页面,先根据页面的名称从sys树型目录中查找到相应记录,并获取访问该页面所需的权限。然后根据存储在Session中的权限列表,查看该权限是否在权限列表中,如果存在,表示该角色有此权限,显示页面;否则,重定向到登录页面。
添加新角色:向sys角色表中新增一条记录。
为角色设置权限:对sys角色权限表进行相应的新增和删除操作,以权限的赋予与取消。
添加新用户:向sys用户表中新增一条记录,同时选择相应的角色。
系统管理人员便可以通过应用程序的界面跟踪监视后台数据库中数据对象的使用情况,及时发现问题,确保数据库安全。
三、结束语
文中主要论述了在基于Web的“化学药品管理”系统中利用不同用户角色的授权管理和自主访问控制(DAC),从而达到强制访问控制(MAC)的方法,防止信息流从高密级流向低密级和实现多级安全访问控制。文中论述的数据库角色访问控制方法为多角色软件开发提供了一种解决数据库安全访问控制问题的新方法。增加RBAC模型里职责分离等约束条件,从而以完整的基于角色的访问控制机制实现用户自定义的访问控制策略是下一步研究的工作。
参考文献:
[1]Sandhu R S,Coyne E J,Feinstein H L,et al.RoleBased Access Control Model[J].IEEE Computer,1995,5(3):127-130.
[2]Sandhu R S,Bhamidipati V,Munawer Q. The ARBAC97 Model forRole-Based Administration of Roles [J].ACM Transactions on Information and System Security,1999,2(1):31-36.