基于RBAC权限管理数据库的改进与探究

2016-12-26 18:17周姝昕
海峡科技与产业 2016年11期
关键词:监管

周姝昕

摘 要:为解决传统RBAC模型在实际应用中的不足,提出改进RBAC模型的数据库设计。该模型通过设置角色优先级解决角色互斥问题,并引入监管角色分化系统管理类人员权限保障数据和系统的安全。

Abstract:In order to solve the lack of traditional RBAC model in practical application,puts forward a database design about improve the model of RBAC.By setting the priority of role to solve this problem about mutex and introduce a kind of role which abate the action of manager to ensure the security of data and system.

关键词:RBAC;职责分离;优先级;最小特权;监管

随着信息科技的迅猛发展,数据的重要性不言而喻。在当前的大数据时代下,海量数据的存在推动了数据库系统的发展。美国惠普公司和麻省理工学院联合对当代数据库进行了解刨式分析,得出结论:传统关系通用型数据库,只有10%左右的时间是处理有效数据,剩下90%的时间都浪费在Buffer Manager,Latching,Locking,Logging,Btree keys等其他辅助工作上。面对当前如此庞大的数据群体,传统型数据库的弊端日益显现,分布式数据库系统逐渐取代了传统型数据库。分布式数据库利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以获取更大的存储容量和更高的并发访问量,其特点主要体现在更高的数据访问速度,更强的可扩展性,更高的并发访问量。正是因为这种数据存储与处理呈现物理分散逻辑统一的发展趋势,访问控制及权限管理便应运而生,其主要作用是负责识别信息系统中的人员、数据以及功能是否具有访问和操作的“合法性”。这种技术从最初的自主访问控制(DAC)和强制访问控制(MAC)发展为现在普遍流行的基于角色的访问控制(RBAC)。

1 RBAC模型基本思想及特点

RBAC的基本思想是引入角色将用户和访问权限间接联系起来,根据系统用户的工作职责设置角色,授予角色相应的访问权限,再为用户分配角色。如图

RBAC相对于DAC(自主访问控制)以及MAC(强制访问控制)将用户与访问权限直接对应的控制管理方法,减少了用户工作职责的变动对系统稳定性及安全状态的影响。因为用户的职责易于变动更改,RBAC模型将用户和访问权限通过角色进行逻辑分离,根据工作职责设计角色,并且使得管理员只需对角色权限进行处理并分配给用户。这样的设计大大减少了授权管理的复杂性和工作量。

2 RBAC的改进

2.1 改进的初衷

在实际开发中,用户所对应的角色和权限都有存在变数,可能存在这样几种情况:

1.用户A属于某类角色,但因为某些原因用户A暂时不可拥有这类角色对应的权限,后续存在着恢复该角色身份的可能。这个时候,使用传统的RBAC模型,一旦这类用户增多,管理员需要对这类用户进行单独修改,因为他们只是该角色下的部分用户,故而不可以对该类 角色进行更改。但这样的做法使得RBAC并没有突出它在授权管理方式的优势。

2.角色A拥有某项权限P,角色B没有这项权限,A与B具有互斥关系。在某种情况下需要某位用户同时具有两种角色的权限。而在传统的RBAC模型中根据职责分离原则,用户是不能同时被赋予A和B这两个角色的。

3.系统管理员在处理事务的时候因为失误或者蓄意篡改破坏数据,而事后发觉,已丢失的数据难以恢复,同时会造成一定的损失。

2.2 改进的RBAC设计思路

2.2.1 对角色设置优先级

无论是情况1还是情况2 ,这都是用户所属角色的互斥现象。若同时给赋给用户A两种角色,造成某一用户权限过大,影响系统安全,违背了职责分离原则。单一角色则权限不够,影响事务处理进度。故而引入角色优先级的概念,各角色默认优先级高低以权限大小划分,根据最小特权原则,权限越小,优先级越高。

在数据库中设置用于存放角色和用户对应的表user-role,存放角色和权限对应的表role-action。用户A在登陆时,根据数据库里的user-role表将该用户A所拥有的角色显示出来,用户需要选择此次以哪种身份进入系统,系统根据他的选择将所选角色优先级临时调至最高,通过role-action表将该角色所对应的权限抽调出来。此时他的其他所属身份存在,但因为当前优先级不是最高,权限会被暂时隐藏。若用户A的当前处于待职,此时给他赋予访客权限,该权限优先级别默认最高,将其他角色覆盖。恢复职务时收回访客身份。也就是说,这类用户从宏观上看他同时拥有多种角色,但在具体的某一时刻用户对系统进行操作的时候只使用一种身份,将用户当时所用角色的优先级提高,使得当前高优先级角色覆盖掉其余低优先级角色。这样既保证用户操作基于RBAC的职责分离原则,同时又方便系统的维护和使用。对于没有互斥的情况,则按角色并集处理权限。

2.2.2 增加监管角色

对于系统来说,总是需要管理员的存在。管理员这个角色的权限往往是最大的,这时如果出现情况3,对系统的危害是不言而喻的。而对一个成熟的系统来说,这泪角色必不可少。为了解决这个问题,将引入一个监管角色。

监管角色最主要的两个职责分别是: 监管管理员操作、分化管理员权限。

这使得没有任何一类管理角色有足够的权限可以单独进行对数据的删改及查阅数据库定期备份的操作。

根据最小特权原则,将管理员角色的权限划分至最小。管理员需要对数据进行操作时,需要询问监管管理员,只有在监管管理员允许的情况下才可以实现对数据的更改,而监管管理员没有直接对数据的进行操作的权限。当需要进行查阅数据备份的时候,需要二者同时进行操作,才可拥有该项权限。同时监管管理员对管理员操作记录表,具有读权限。即,监管管理员只可查阅该表不可更改。

监管角色针对管理员行为进行监管及管理员对数据更改的把控和审核,并没有过多干涉系统管理员其他权限。保障了数据的安全性,最大限度上避免对数据进行恶意篡改,也避免系统中出现一类角色独大的情况,有利于系统的正常运行和维护。

3 总结

通过在实际的项目开发中引用,使得该改进模型不只停留于理论。所提出的改进模型在我们开发的“学生科研管理系统”中得到了很好的应用。在使用RBAC模型建立数据库的过程中发现,通过对RBAC模型进行改进,可以使其更贴近系统实际开发与数据管理。改进后的RBAC模型可以适应不同情况下同一用户对多种角色需求,使得数据处理高效,提高了管理员对人员及所属多种角色管理的方便性和安全性,同时监管角色的引入,也降低了单一角色对系统和数据安全的影响。

猜你喜欢
监管
数字监管 既能“看病”也能“开方”
综合监管=兜底的网?
对强化简易升降机监管的若干思考
用科技构建治超监管网络
加强微商监管有效途径的探讨
监管
多措并举抓监管,省外项目获殊荣
监管和扶持并行
放开价格后的监管
实施“十个结合”有效监管网吧