数据库表行级数据的自主访问控制方法技术

技术编号:2918658 阅读:355 留言:0更新日期:2012-04-11 18:40
本发明专利技术为一种数据库表行级数据的自主访问控制方法,它包括以下步骤:A.建立行级访问控制策略:为启用行级访问控制的每一张数据库表增加一行级访问控制权限列,用于记录这一行的访问控制权限信息;B.授予用户行级访问权限:为数据库用户授予数据库表中相应行的访问权限及访问类型;C.行级访问控制:当用户对数据库表进行访问时,根据上述行级访问控制策略和授予该用户的行级访问权限,对该用户实施行级访问控制。本发明专利技术在数据库表上建立行级访问控制策略,为用户授予行级访问权限,实现了对用户的行级访问控制,有效保护了数据库行级数据,克服了传统数据库表级、属性级自主访问控制粒度过大的缺点,数据库安全性得以提高。

【技术实现步骤摘要】

本专利技术涉及一种对数据库表的自主访问控制方法,具体地说,是涉及一种。
技术介绍
自主访问控制是操作系统和数据库管理系统的基础,其的一个重要属性是能够支持委托授权规则。目前,众多数据库的自主访问控制是基于访问控制矩阵(AccessControl Matrix)来实现对角色的表级、属性级(列级)的访问控制,这类访问控制可对数据库中的表、表中的某些列进行访问控制,但这类访问控制并不能对数据库中的行访问进行约束。例如,数据库用户如果具有某张数据库表的访问权限,则该用户便能对这张表中的每一行进行相关访问。故这种传统的表级、属性级(列级)粒度的对象权限管理已不能完全满足现今数据库系统的安全性要求,特别是不能满足将多个异构数据库中的信息整合到一起的数据库系统的安全性要求。
技术实现思路
本专利技术的目的是提供一种对于数据库表行级数据进行自主访问的控制方法,该方法可满足各种对安全性要求高的数据库系统的需求。为实现上述目的,本专利技术采用以下技术方案一种,其特征在于它包括以下步骤A.建立行级访问控制策略为启用行级访问控制的每一张数据库表增加一行级访问控制权限列,用于记录这一行的访问控制权限信息;B.授予用户行级访问权限为数据库用户授予数据库表中相应行的访问权限,及访问类型;C.行级访问控制当用户对数据库表进行访问时,根据上述行级访问控制策略和授予该用户的行级访问权限,对该用户实施行级访问控制。所述步骤B具体包括b1.根据数据库表中是否有行级访问控制权限列,判断数据库表是否建立行级访问控制策略,如果未建立,则无法为用户授予该数据库表的行级访问权限,流程结束;如果已建立行级访问控制策略,则继续步骤b2;b2.通过行级自主访问控制系统表查找对应数据库表中是否有该用户的偏移量,判断是否是第一次为该用户授予该表的行级访问权限,如果已经为该用户授权,则转步骤b3;如果没有,则在行级自主访问控制系统表中记载该用户对于该数据库表的授权信息,即增加一行记录,用于记录用户在数据库表上的行授权偏移量; b3.在该用户授权的数据库表中,修改授权行行级访问控制权限列的值,修改后的行级访问控制权限列的值表示该用户可对该表中该行执行的数据库操作。所述步骤C具体包括c1.判断该用户是否为数据表的创建者,如果是,则成功返回;c2.判断该用户是否具有该表的访问权限,如果有,则继续步骤c3,如果没有,则该用户的访问失败;c3.通过判定数据表中是否包含行级访问控制权限列,判断该表是否开启行级访问控制,如果未开启,表明不需要进行行级自主访问控制检查,用户具有访问权限,流程结束;如果已开启,则继续步骤c4;c4.从行级自主访问控制系统表中查找数据库用户在这张数据表中的偏移量,如果没有用户的偏移量信息,则表明用户无权对这张表进行访问,流程结束,用户访问失败;如果有用户的偏移量信息,则通过用户的表偏移量定位用户在这张表上的权限信息,由此判定用户是否具有相关的行级访问控制权限。本专利技术的优点是本专利技术在表级、属性级自主访问控制的基础上进行扩充,在数据库表上建立行级访问控制策略,为用户授予行级访问权限,实现了对用户的行级访问控制,有效保护了数据库行级数据,克服了传统数据库表级、属性级自主访问控制粒度过大的缺点,数据库安全性得以提高。附图说明图1是行级访问控制模型图;图2是授予用户行级访问权限的流程图;图3是行级访问控制权限检查流程图。具体实施例方式本专利技术对数据库表进行了修改,在应用了行级自主访问控制策略的数据表中增加了一列,用于记录每一条记录行的行级授权情况,以实现行级自主访问控制。与此同时,在行级自主访问控制系统表中记录下数据库用户在该数据库表中的偏移量,通过这个偏移量找到该用户在此记录行的权限信息。行级自主访问控制模型结构图如图1所示。运用了行级自主访问的数据库中包含以下数据对象●一张系统表行级自主访问控制系统表(sys_user_row_privilege),该表主要用于记录使用了行级访问控制策略的数据库表的信息,包括应用了行级访问控制的表的名称(T1)、具有访问T1权限的用户(U1)以及用户(U1)具有的对数据表(T1)的偏移量(offset)。Offset是一个整型数据,它的大小固定在1-16这个范围当中,偏移量用来帮助系统标注用户的行级访问控制信息。●应用了行级访问控制策略的数据表(T1),应用了行级访问控制策略的数据表中包含了一列系统自动创建的64位整型列行级访问控制权限列(ROWPRI)。该列记录了本行记录的访问控制信息。行级自主访问控制可以为16个用户(U1-U16)进行授权操作,行级访问控制权限列(ROWPRI)中的每四位标识了一个用户的访问权限(分别代表了读、更新、删除、全部操作的权限),如1-4位标识了用户U1的访问控制权限,5-8位标识了用户U2访问控制权限。而行级自主访问控制系统表(sys_user_row_privilege)中标识了用户对应的偏移量。为此,我们可以定义以下公式,用来获取用户Ui的行级自主访问控制权限定义函数offset(Ui,T),该函数输入用户信息Ui、用户访问的表T,返回用户的偏移量。因此,用户ui的行级访问控制权限信息由表T中对应行的行级访问控制的权限列的以下四位组成offset(ui,T)*4-offset(ui,T)*4+3本专利技术方法包括以下步骤A.建立行级访问控制策略为启用行级访问控制的每一张数据库表增加一列,该列为行级访问控制权限列,列名为行级访问控制权限列(ROWPRI),列类型为64位整型,用于记录这一行的访问控制权限信息;在具体实施中,实行行级访问控制的数据库表的ROWPRI列的默认值可设为0,此时,除该表的创建者之外,其他所有的数据库用户都不能对该表进行查询、修改、删除记录的操作。B.授予用户行级访问权限为用户指定可对数据库表中哪些行进行访问,及访问类型。如图2所示,用户U访问数据库表T的具体步骤包括b1.判断数据库表T是否建立行级访问控制策略,如果数据库表应用了行级访问控制,那么这张数据表中将会增加行级访问控制权限列ROWPRI,以表明该数据表已经建立了行级访问控制策略。如果未建立行级访问控制策略,则无法为用户授予该数据库表T的行级访问权限,流程结束。如果已建立行级访问控制策略,则继续步骤b2;b2.判断是否是第一次为用户U授予该表的行级访问权限,通过查找行级自主访问控制系统表,来查找对应数据库表T中是否具有用户U的偏移量。如果没有,则表明是第一次为该用户进行授权。如果是第一次,则在行级自主访问控制系统表中记载该用户对于该数据库表的授权信息,即在行级自主访问控制系统表中增加一行记录,记录用户在数据库表T上的行授权偏移量offset。该偏移量标识使用了行级访问控制表上授权用户的偏移量。该记录包括授权用户的ID、数据库表的ID(数据库表T对应的唯一的ID标识)及该用户在数据库表T上的偏移量,如果已经为该用户授权,则直接跳到b3。b3.在该用户授权的数据库表中,修改授权行行级访问控制权限列ROWPRI的值,修改后的行级访问控制权限列ROWPRI的值表示该用户可对该表中该行执行的数据库操作。用户可对该行执行的数据库操作包括删除操作(DELETEOPER)、更新操作(UPDATEOPER)、查询操作(SEL本文档来自技高网...

【技术保护点】
一种数据库表行级数据的自主访问控制方法,其特征在于它包括以下步骤:A.建立行级访问控制策略:为启用行级访问控制的每一张数据库表增加一行级访问控制权限列,用于记录这一行的访问控制权限信息;B.授予用户行级访问权限:为数据库用户 授予数据库表中相应行的访问权限及访问类型;C.行级访问控制:当用户对数据库表进行访问时,根据上述行级访问控制策略和授予该用户的行级访问权限,对该用户实施行级访问控制。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐岩蒋志勇王冰冰何清法程胜赵起文刘伎李海峰谢卫平王渊
申请(专利权)人:北京神舟航天软件技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1