一种对数据库系统表设置强制访问控制的方法

文档序号:6442535阅读:247来源:国知局
专利名称:一种对数据库系统表设置强制访问控制的方法
技术领域
本发明涉及一种数据库访问控制方法,尤其涉及一种对数据库中的系统表设置强制访问控制(Mandatory Access Control,简称MAC)的方法,属于数据库安全技术领域。
背景技术
数据库系统承担着存储和管理业务数据的任务,保证和加强数据库系统的安全性是信息安全的一个重要方面。数据库系统的安全性在很大程度上依赖于数据库管理系统。 如果数据库管理系统的安全机制如访问控制策略等比较完善,则数据库系统的安全性能就相对较好。传统数据库系统提供的访问控制策略能够满足一般应用的要求,但无法满足一些重要部门或敏感领域的需求。这是因为在传统数据库中,一般访问控制能力只能达到自主访问控制级别,对于敏感信息和普通信息是按照统一的方式管理的,仅通过用户的权限进行访问控制,对于那些蓄意的破坏者,特别是内部人员而言就无法达到防护的作用。为了满足越来越高的安全要求,需要数据库系统的访问控制能力提高到强制访问控制级别,给敏感数据提供特殊的保护。强制访问控制是指系统为保证更高程度的安全性,按照TDI/TCSEC标准中安全策略的要求所采取的强制存取检查手段。在强制访问控制中,数据库管理系统(Database Management System,简称DBMS)所管理的全部实体被分为主体和客体两大类。主体包括普通用户、系统管理员和特权用户等;客体包括数据库表、索引、数据字典以及其中的元组等。 对于主体和客体,DBMS为它们的每个实例指派一个敏感度标记(Label)。强制访问控制策略即是通过比较主体的Label和客体的Label,最终确定主体是否能够存取客体。在申请号为201010578774.4的中国发明专利申请中,公开了一种基于策略的数据库强制访问控制方法及其系统。该方法包括下列步骤1)为数据库中的数据表建立多维索引树;幻将强制访问控制安全标签设定策略逐层叠加存储到多维索引树的节点上;3)基于叠加了策略的多维索引树进行用户访问控制。该系统包括前端和后端,前端包括策略管理组件和索引树组件,后端包括访问控制组件和策略修改组件。使用本发明管理员只需对海量数据库中的少量强制访问控制安全标签设定策略进行管理,从而大量减少时间和人力的耗费。将策略叠加于索引树上,使得数据的安全标签计算以及基于安全标签的访问控制可以和数据的检索过程结合为一体,减少了额外的检索耗时。提高了执行效率和数据访问的响应速率。在常用的数据库管理系统如SQL Server中,几乎将所有的配置信息、安全性信息和对象信息都存储在它自身的系统表中。系统表存在于每个独立的数据库中。在创建一个数据库的同时,数据库管理系统会自动建立一些系统表,例如表SYSOBJECTS用于描述数据库中的对象图表、视图、存储过程等,表SYSUSER用于描述数据库的用户,表SYSL0GINS用于保存每个服务器的登录名、口令和配置信息,表SYSDATABASE保存服务器上所有数据库名、 所有者、状态及其他信息等。对于数据库系统的用户而言,无论是直接使用数据库的系统表还是间接使用数据库的系统表,都需要防止系统表中的对象定义被未授权的用户使用。因此,用户在操作对象(或对象保存的数据)之前,都必须拥有访问对象定义的合适权限。但是,目前针对数据库系统表的访问控制策略,尚没有完整成熟的技术解决方案。

发明内容
本发明所要解决的技术问题在于提供一种对数据库中的系统表设置强制访问控制的方法。为实现上述的发明目的,本发明采用下述的技术方案一种对数据库系统表设置强制访问控制的方法,其特征在于包括下述步骤(1)判断被应用的强制访问控制策略是否存在,如果强制访问控制策略存在则进入步骤⑵;(2)判断被应用强制访问控制策略的数据库系统表是否存在;如果存在则进入步骤⑶;(3)判断被应用强制访问控制策略的表是否为系统表,如果是系统表则进入步骤 (4);如果不是系统表,则结束流程;(4)判断强制访问控制策略是否被重复依赖,即强制访问控制策略是否已经应用在该系统表上,如果没有应用在该系统表上,则可以建立依赖关系;如果强制访问控制策略已经应用在系统表上,则结束流程。其中较优地,上述方法还包括下述步骤判断建立依赖关系的系统表是共享系统表还是非共享系统表,如果是共享系统表,则将强制访问控制策略和系统表ID写到共享系统表上的策略中,如果是非共享系统表,则将该强制访问控制策略写到被保护系统表上的策略中。其中较优地,通过数据库系统函数设置数据库系统表的强制访问控制信息,将数据库系统表的强制访问控制信息记录在数据库系统表的策略中。其中较优地,设置对应系统表中的行的安全标记的操作步骤包括(11)判断需要删除的强制访问控制策略是否存在,如果存在则进入下一步骤;如果不存在,结束流程;(15)判断强制访问控制策略是否已经在目标系统表上应用,如果没有应用,则结束流程;如果已经应用,则转至下一步骤;(16)设置对应系统表中基于行的安全标记。其中较优地,在步骤(11)和步骤(15)之间还包括下述步骤(12)判断被应用策略的系统表是否为系统表,同时判断该表是否存在,如果该表不存在或不是系统表,则结束流程,否则进入下一步骤。其中较优地,在步骤(1 和步骤(1 之间还包括下述步骤(13)判断是否合理的等级信息,如果是则进入下一步骤,如果不是则结束流程。其中较优地,在步骤(1 和步骤(1 之间还包括下述步骤(14)判断是否是共享的系统表,对于不同类型的系统表,下述流程将转移到不同的安全等级表。其中较优地,上述方法还包括对数据库系统表移除强制访问控制策略的步骤
(21)判断被应用策略的系统表是否存在,如果该表不存在,则结束流程;如果该表存在,则进入下一步骤;(22)判断需要移除的强制访问控制策略是否存在,如果不存在,则结束流程;如果存在则进入下一步骤;(24)查看该强制访问控制策略是否已经与数据库系统表产生依赖,如果强制访问控制策略没有应用到数据库系统表上,该结束流程;如果已产生依赖,则进入下一步骤;(25)移除数据库系统表和强制访问控制策略的依赖关系,同时还移除对应的安全等级中的标记信息。其中较优地,在步骤0 和步骤04)之间还包括下述步骤(23)判断被引用的数据库系统表是什么类型的系统表,如果是共享系统表,则下述流程的操作对象为共享系统表上的策略,如果是非共享系统表,则下述流程的操作对象为被保护系统表上的策略;然后进入下一步骤。本发明所提供的强制访问控制方法可以对数据库系统表设置强制访问控制策略。 在用户访问数据库系统表时,首先检查数据库系统表的强制访问控制权限,未被授权的非权限用户不能访问该系统表,只有得到授权的权限用户可以访问该系统表,从而对系统表中的敏感数据进行保护。


下面结合附图和具体实施方式
对本发明作进一步的详细说明。图1为对数据库系统表设置强制访问控制策略的示意图;图2为对数据库系统表应用强制访问控制策略的操作步骤示意图;图3为对数据库系统表移除强制访问控制策略的操作步骤示意图;图4为设置对应系统表中的行的安全标记的操作步骤示意图。
具体实施例方式本发明的基本思路在于设置对数据库系统表的强制访问控制权限,防止数据库系统表中的对象定义被未授权的用户使用。此处的强制访问控制权限是指通过权限(SELECT、 INSERT、UPDATE和DELETE)的授予和回收来控制对信息的访问。如图1所示,本发明在数据库系统的系统表中设置强制访问控制(MAC)策略,即安全员通过调用数据库系统提供的接口对数据库系统表的访问控制权限进行设置,并将策略信息存放在数据库系统表中,使得数据库系统表拥有相应的强制访问控制权限。在用户访问数据库系统表时,首先检查数据库系统表的强制访问控制权限,未被授权的非权限用户不能访问该系统表,只有得到授权的权限用户可以访问该系统表,从而对系统表中的敏感数据进行保护。在本发明中,数据库的系统表包括共享(shared)系统表以及非共享系统表。它们都保存了数据库被共享的元信息。上述系统表强制访问控制策略对共享系统表和非共享系统表均进行同样的控制。为了存放系统表的强制访问控制策略,首先需要增加四个新的数据库系统表。分别存放
>共享系统表上的策略(参见表1 :SYS_强制访问控制_SHCATAL0G. ENFORCEMENT),该表是共享系统表。
权利要求
1.一种对数据库系统表设置强制访问控制的方法,其特征在于包括下述步骤(1)判断被应用的强制访问控制策略是否存在,如果强制访问控制策略存在则进入步骤⑵;(2)判断被应用强制访问控制策略的数据库系统表是否存在;如果存在则进入步骤⑶;(3)判断被应用强制访问控制策略的表是否为系统表,如果是系统表则进入步骤; 如果不是系统表,则结束流程;(4)判断强制访问控制策略是否被重复依赖,即强制访问控制策略是否已经应用在该系统表上,如果没有应用在该系统表上,则可以建立依赖关系;如果强制访问控制策略已经应用在系统表上,则结束流程。
2.如权利要求1所述的对数据库系统表设置强制访问控制的方法,其特征在于还包括下述步骤判断建立依赖关系的系统表是共享系统表还是非共享系统表,如果是共享系统表,则将强制访问控制策略和系统表ID写到共享系统表上的策略中,如果是非共享系统表,则将该强制访问控制策略写到被保护系统表上的策略中。
3.如权利要求2所述的对数据库系统表设置强制访问控制的方法,其特征在于,通过数据库系统函数设置数据库系统表的强制访问控制信息,将数据库系统表的强制访问控制信息记录在数据库系统表的策略中。
4.如权利要求2所述的对数据库系统表设置强制访问控制的方法,其特征在于还包括设置对应系统表中的行的安全标记的操作步骤。
5.如权利要求4所述的对数据库系统表设置强制访问控制的方法,其特征在于,所述设置对应系统表中的行的安全标记的操作步骤包括(11)判断需要删除的强制访问控制策略是否存在,如果存在则进入下一步骤;如果不存在,结束流程;(15)判断强制访问控制策略是否已经在目标系统表上应用,如果没有应用,则结束流程;如果已经应用,则转至下一步骤;(16)设置对应系统表中基于行的安全标记。
6.如权利要求5所述的对数据库系统表设置强制访问控制的方法,其特征在于在步骤(11)和步骤(15)之间还包括下述步骤(12)判断被应用策略的系统表是否为系统表,同时判断该表是否存在,如果该表不存在或不是系统表,则结束流程,否则进入下一步骤。
7.如权利要求6所述的对数据库系统表设置强制访问控制的方法,其特征在于在步骤(12)和步骤(15)之间还包括下述步骤(13)判断是否合理的等级信息,如果是则进入下一步骤,如果不是则结束流程。
8.如权利要求7所述的对数据库系统表设置强制访问控制的方法,其特征在于在步骤(13)和步骤(15)之间还包括下述步骤(14)判断是否是共享的系统表,对于不同类型的系统表,下述流程将转移到不同的安全等级表。
9.如权利要求5所述的对数据库系统表设置强制访问控制的方法,其特征在于还包括对数据库系统表移除强制访问控制策略的步骤(21)判断被应用策略的系统表是否存在,如果该表不存在,则结束流程;如果该表存在,则进入下一步骤;(22)判断需要移除的强制访问控制策略是否存在,如果不存在,则结束流程;如果存在则进入下一步骤;(24)查看该强制访问控制策略是否已经与数据库系统表产生依赖,如果强制访问控制策略没有应用到数据库系统表上,该结束流程;如果已产生依赖,则进入下一步骤;(25)移除数据库系统表和强制访问控制策略的依赖关系,同时还移除对应的安全等级中的标记信息。
10.如权利要求9所述的对数据库系统表设置强制访问控制的方法,其特征在于在步骤0 和步骤04)之间还包括下述步骤(23)判断被引用的数据库系统表是什么类型的系统表,如果是共享系统表,则下述流程的操作对象为共享系统表上的策略,如果是非共享系统表,则下述流程的操作对象为被保护系统表上的策略;然后进入下一步骤。
全文摘要
本发明公开了一种对数据库系统表设置强制访问控制的方法,包括下述步骤(1)判断被应用的强制访问控制策略是否存在,如果强制访问控制策略存在则进入步骤(2);(2)判断被应用强制访问控制策略的数据库系统表是否存在;如果存在则进入步骤(3);(3)判断被应用强制访问控制策略的表是否为系统表,如果是系统表则进入步骤(4);如果不是系统表,则结束流程;(4)判断强制访问控制策略是否被重复依赖,即强制访问控制策略是否已经应用在该系统表上,如果没有应用在该系统表上,则可以建立依赖关系;如果强制访问控制策略已经应用在系统表上,则结束流程。本发明可以对数据库系统表中的敏感数据进行保护。
文档编号G06F17/30GK102521385SQ201110433709
公开日2012年6月27日 申请日期2011年12月21日 优先权日2011年12月21日
发明者孙旭, 张建梅, 王传廷, 王颖泽 申请人:北京人大金仓信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1