正文:摘 要
数据库的管理是现代信息技术的重要组成部分,本文提出的通用数据库的安全访问控制基于角色访问控制(RBAC),并提出了角色管理模块(RMM)的概念,以对复杂的角色关系进行管理。角色管理模块方案的提出有利于提高系统的效率和对复杂角色管理的高效性,论文系统阐述了这一理论。在论文中对角色到权限,权限到权限项,权限项到菜单和页面的关联进行了说明。实验结果表明,这种方式能简化授权管理并使系统安全性、高效性得到提高。
关键字:访问控制 角色管理模块 权限 权限项
Research and Implementation Of Database
Secure Access Control
Abstract
The management of the database plays a significant role in the modern information technology,this search comes up with a new secure access control method which is Role-Based Access Control(RBAC) on database and puts forword the concept of the role management module(RMM) to deal with the complexity of the relationship between roles. The RMM is conducive to improve the performance of the system and makes the the complex role management more efficient. This paper systematically expatiates this theory, the article explains the relationships between roles and authorities, authorities and authority itmes, authority items and menu items or page items。Results show that this method simplifies the process of authorization and strengthens the security and efficiency.
Keywords: Access control, RMM, Authority, Authority items.
- 引言
Sandhu等人在1996年提出了基于角色的访问控制模型( Role2Based Access Control,RBAC) ,第一次形式化地描述了基于角色的访问控制。并在1997年提出了RBAC的管理模型AR2BAC (Administrative RBAC) 。这两个模型是基于角色的访问控制模型中的经典模型,也被分别称为RBAC96模型和ARBAC97模型。2000 年Osborn等人研究证明了RBAC 是一种更一般的访问控制模型 。他们利用RBAC 模型成功的模拟了MAC 和DAC,即可以用RBAC实现DAC和MAC。同时RBAC也在实际应用中反映出更好的适应性,许多学者在此领域进行了深入的研究。【1】(图1.1给出了RBAC的基本模型图)
但许多学者、老师和学生的研究和理论一般都带有一定的片面性,很难有人能够提出一种通用的数据库安全访问控制模型。本文提出的数据库安全访问控制的模型具有较强的通用性,可以为理论研究和软件开发提供一定的参考。
对本文提出的通用数据库安全访问控制模型,以下简称系统安全访问控制。

图1.1 RBAC基本角色模型图【2】
2.系统总体设计
在实际应用中,为了提高系统的安全性和灵活性,许多系统都要求根据不同的用户系统生成不同的界面。这样一方面可以有效预防越权操,用户只对自己可操作的部分可见;另一方面可以提高系统的灵活性和高效性,根据用户部分加载系统可以有效提高系统的加载速度和性能。
为了满足这一要求,系统安全访问控制的总体设计流程图如下:

图2.1 系统总体设计流程图
在实际编码实现中,系统设计分为三个层次。
1)权限界面层:包含两个主要的对话框:用户登录对话框、系统权限管理对话框,提供和用户的直接会话。
2)权限操作层:业务逻辑层次,调用数据库访问层接口实现相应的业务逻
辑功能。
3)数据库操作层:封装对数据库操作的接口。
3. UA(用户/角色授权)
3.1角色理论基础
在实际系统中,角色之间存在着继承关系。如果角色r1 继承角色r2 ,那么角色r1 的级别高于角色r2 的角色,并且拥有角色r2 所有的权限。我们称角色r1 为父角色,角色r2 为子角色, 记作: r1 ≥r2。当一个用户激活角色r时,同时也隐式的激活了所有角色r所继承的子角色。角色继承关系满足下列3个属性:
自反性:

r∈R

r ≥r;
反对称性:

(r1 , r2 ∈R) ((r1 ≥r2 ∧r2 ≥r1)

r1 = r2 ) ;
传递性:

( r1 , r2 , r3 ∈R) (( r1 ≥ r2 ∧ r2 ≥ r3 )

r1 ≥r3 ) 。
综上:继承关系“≥”是一个R上的偏序关系。
给定了角色继承关系之后,可以将角色之间的关系用一个层次图表是出来:如果r1 ≥r2 ,那么在图上就存在r2到r1的一条有向边。根据不同的角色偏序定义,角色层次图可以是树,倒装树、格、甚至是极为复杂的图。【1】
一个会话拥有的角色是用户所分配的角色以及它们的子角色的总和,一个会话所拥有的权限包括用户所分配角色的权限和他们的子角色的权限的总和。【3】
3.2. 角色管理模块概念的提出
用户与角色是多对多的关系,如何有效地为用户指派角色,关系到系统的安全性和效率。角色管理在有些实际的系统中一项复杂的事情。比如一个部门拥有许多下属部门,每一个个下属部门又有许多的下属部门;并且有些情况下,人员之间的管理并不是严格的呈现一种标准的树形结构。可能有同一个职员直接隶属于具有同样职位的上级的情况,在数据库中也就是同一个角色具有多个父角色,而一个父角色有多个子角色;角色呈现多对多的自参照状态。关于如何解决这个问题,许多系统都避开这个问题;或者建立一个父角色对应多个子角色的参照关系。这在一些系统中可行的,但这并不代表对所有的系统均可行,这样提出专门的角色管理模块,对复杂的角色进行系统管理成为一种必要。
3.3 角色管理模块的分析和实现
上面的分析指出,角色之间的关系呈现一种关系图。下面提出的算法可以解决如何在系统中维持这种关系图,并实现查询的高效性。
每一个角色增加一个bit型数组的属性,数组的长度为系统角色总数。如果某角色继承于该角色,则根据其角色编号将数组的相应bit位标记为1,否则标记为0。系统执行查询时根据该bit数组中的值为1的角色,搜索出所有的权限,然后获取权限项,加载菜单和页面,生成系统界面。
1/3 1 2 3 下一页 尾页