[发明专利]用于数据访问控制实施的基于SQL转换的优化方法和设备有效
申请号: | 201380037517.1 | 申请日: | 2013-05-31 |
公开(公告)号: | CN104471585B | 公开(公告)日: | 2017-09-08 |
发明(设计)人: | T·阿麦德;T·基夫;C·梁;V·佩萨蒂 | 申请(专利权)人: | 甲骨文国际公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62;G06F17/30 |
代理公司: | 中国国际贸易促进委员会专利商标事务所11038 | 代理人: | 罗亚男 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 数据 访问 控制 实施 基于 sql 转换 优化 技术 | ||
技术领域
本发明涉及数据库系统,并且更具体而言涉及由数据库管理系统执行的与数据访问控制策略关联的查询的优化。
背景技术
关系型和面向对象的数据库管理系统在数据库表中的行中存储信息。为了检索数据,请求数据的查询提交到数据库服务器,该服务器计算查询并返回所请求的数据。
由数据库服务器接收的查询可以由应用级的终端用户提交。在许多情况下,为了安全性或者其它原因,防止特定的应用级终端用户访问或修改存储在数据库中的一些或全部数据会是期望的。为了提供这种安全性,对存储在数据库中的数据的访问可以由数据库访问控制服务控制。基于一个或多个定义的数据访问控制策略,数据库访问控制服务保护数据库数据不受不期望的访问。每个数据访问控制策略定义对数据库系统中的特定主体或者授予或者禁止的数据库访问操作或特权。每个数据库主体可以是特定的数据用户或者定义的用户组。为了提供细粒度的访问控制,数据库访问控制服务可以以行级为基础应用数据访问控制策略,从而控制每个主体对数据库表的个别行的访问。
实施行级数据访问控制策略的数据库访问控制服务会给数据库系统引入相当大的开销。例如,由数据访问控制策略定义的访问条件是由数据库服务器在执行访问检查的查询操作符中定义的,从而增加了查询和查询执行的复杂度。为了存储和评估存储表示访问控制策略和数据库主体的信息的表,存在附加的数据库执行开销。
此外,为了实施以行级数据为基础的数据访问控制,数据库访问控制服务具有对在所接收的查询中规定的每一行评估数据访问控制策略的开销。使问题进一步复杂化的是,与查询中的访问控制策略相关的许多信息都封装在执行访问检查的查询操作符中并且在查询编译期间是查询优化过程不可获得的。其结果就是对在查询中规定的每一行的数据访问控制策略的评估常常涉及附加的和不必要的访问控制检查。
本文所描述的是用于优化对与数据访问控制策略关联的数据库表的查询的技术。
附图说明
在附图的图示中,本发明作为例子而不是作为限制进行说明,并且相同的标号指相似的元件并且其中:
图1是说明基于提交查询的主体重写包括访问检查操作符的查询的过程的流程图。
图2是说明实施例可以在其上实现的计算机系统的框图。
具体实施方式
在以下描述中,为了解释,阐述了众多具体细节,以便提供对本发明的透彻理解。但是,很显然,本发明没有这些具体细节也可以实践。在其它情况下,众所周知的结构和设备以框图形式示出,以避免不必要地模糊本发明。
一般概述
本文所述的方法提供了让数据库服务器优化对与数据访问控制策略关联的数据库表的查询的途径。数据库服务器接收查询并确定该查询是否识别出与数据访问控制策略关联的一个或多个表。响应于确定查询识别出与数据访问控制策略关联的表,数据库服务器重写该查询,以包括访问检查查询操作符。对于表中被请求的每一行,访问检查操作符确定提交查询的主体是否被授予执行所请求的查询操作的特权。访问检查确定是基于与数据库表关联的数据访问控制策略和主体的。
数据库服务器可以使用这些技术来识别包括访问检查操作符的查询,并且如果包括,则重写查询,以产生优化的查询执行计划。根据一种实施例,响应于识别出包括访问检查操作符的查询,数据库服务器基于提交查询的主体和关联的数据访问控制策略确定与该主体关联的一个或多个访问谓词。访问控制策略包括一个或多个访问控制列表,每个访问控制列表包括一个或多个访问控制条目。每个访问控制条目对规定的主体或者授予或者拒绝特权。每个访问控制列表还与一个或多个访问谓词关联,这些访问谓词识别关联的访问控制列表对其可适用的数据库表的一行或多行。因而,与提交查询的主体关联的访问谓词是与包括对该主体或者授予或者拒绝所请求特权的访问条目的访问控制列表关联的那些访问谓词。
响应于确定与主体关联的一个或多个访问谓词,查询被重写,以形成重写的查询表达式,其中重写的查询表达式包括逻辑表达式,该逻辑表达式包括在访问检查操作符之外的一个或多个关联的访问谓词。如果没有这种重写,则访问谓词在查询编译期间仍然封装在访问检查操作符中并且不暴露给查询优化器。此外,在查询重写期间,不适用于提交查询的主体的访问谓词从查询中完全被除去,从而产生在执行期间让数据库服务器评估的更少访问谓词。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于甲骨文国际公司,未经甲骨文国际公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380037517.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:锚筋弯曲机
- 下一篇:一种闹钟自动设定系统
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置