当前位置: 首页 > 专利查询>微软公司专利>正文

最优化行级别数据库安全的系统和方法技术方案

技术编号:2921118 阅读:258 留言:0更新日期:2012-04-11 18:40
通过利用SQL扩展来创建指定安全表达式并使其与查询初启程序相关联,本发明专利技术的系统和方法推动数据库行级别安全。这种表达式包括布尔表达式,其必须被数据行满足以便该数据能被查询初启程序访问。一般而言,查询用在查询数据行期间聚集并利用的安全表达式进行增强。诸系统和方法不同地在查询中置入安全表达式,以便最优化查询性能同时减轻信息泄漏。这通过对安全表达式作特殊标记并取决于由静态和/或动态分析确定的非安全表达式是安全的可能性,利用谓项规则把非安全表达式拖到或压到安全表达式之上或之下来完成。

【技术实现步骤摘要】
相关申请参照本申请要求于2004年2月11日提交的题为“为数据库表格行提供行级别安全的系统和方法”(“Systems and Methods That Provide Row Level Security forDatabase Table Row”)的美国专利临时申请60/543,855的权益,其全文在此引入作为参考。本申请与于__提交的美国专利申请__(律师案号MS308288.02/MSFTP647USA)有关,其题为“指定行级别数据库安全的系统和方法”(“Systemsand Methods That Specify Row Level Database Security”)。技术领字段本专利技术一般涉及数据库,尤其涉及用行级别安全表达式来增强查询,以最优化性能并减轻数据泄漏的系统和方法。
技术介绍
计算机硬件、软件和网络的技术进步提高了人们用电子信息交换取代诸如纸张和电话通信等常规技术的需求。这种电子通信在全世界基本上任意两个地点之间都能提供瞬间发生的、可靠的数据传输。许多行业和消费者发挥这种技术用以通过基于web(例如在线)的服务来改进效率并降低成本。例如,消费者能点击鼠标在家里购买货物、查看银行报表、研究产品和公司、获取实时股票报价、下载宣传册等。随着可用电子数据的数量在增长,以便于用户友好和快速的数据搜索和检索的可管理方式存储这种数据变得越来越重要。今天,一种常用方法是把电子数据存储在一个或多个数据库中。一般而言,典型的数据库是有组织的信息集合,使其结构化从而例如计算机程序能够快速搜索和选择数据。通常,存储在数据库中的数据通过一个或多个表格进行组织,其中相应的表格包括成组的记录而一条记录则包括成组的字段。记录通常被索引为表格中的行而记录字段则被索引为列,从而行/列对能够指向表格中的具体数据。存储在数据库中的数据常常包括个人信息(例如银行账户和社会安全号)和敏感信息(例如病历),且不能通过硬拷贝来备份。因此,涉及数据库和存储于其中的数据的安全性变得越来越重要。然而,许多现有的数据库安全技术能被突破,例如由于软件漏洞和/或由有不良意图的软件黑客,或者这些技术不能提供全面的安全。
技术实现思路
以下简单归纳了本专利技术的内容,以便提供对本专利技术部分方面的基本理解。这部分内容不是本专利技术的广泛纵览。它并非旨在标识本专利技术的关键/重要元素或描绘本专利技术的范围。其唯一目的是用简化形式表示本专利技术的部分概念,作为后面呈现的更详细描述的序幕。本专利技术的诸系统和方法通过提供能被用来创建指定安全表达式(namedsecurity expressions)并使其关联于一个以上查询初启程序(query initiator)的增强语法,来推动数据库行级别安全。这种表达式包括表示为任意布尔表达式的谓项(predicate),数据行必须满足该谓项以便使该数据可被查询初启程序访问。一般而言,当激活行级别安全时,用关联于查询初启程序的安全表达式增强所接收的查询。在对数据行查询期间利用这些表达式,其中满足安全表达式(或者求得为“真”的值)的行可被查询初启程序访问。在一特定示例中,通过嫁接(grafting)一表达式来使所接收的查询得以增强,该表达式由当其满足时即准许行访问的布尔表达式的逻辑和(disjunction)与当其满足时即拒绝行访问的布尔表达式的补码(complement)的逻辑积(conjunction)所组成。换言之,将查询增强使得在满足至少一个准许表达式且没有满足一个拒绝表达式时,行数据满足聚集的安全表达式。诸系统和方法能各不相同地在查询中置入并移动包括安全表达式的表达式,以便最优化查询性能。常规技术不考虑是否应当在其它表达式之前对一个或多个安全表达式求值。因而,常规系统容易泄漏,用户可访问该用户不应当见到的数据。本专利技术减轻了这种泄漏。通常,这通过在安全表达式上作特殊标记以便区分安全表达式和非安全表达式来达成。然后,可利用谓项移动规则以便于减轻数据泄漏。仅在限定情形中,这些规则使非安全表达式被拖到(或压到)安全表达式之上(或之下)。在许多实例中,可在编译时执行静态分析以确定表达式是否是“安全”表达式,或者表达式是否可无信息揭示风险地运行。在其它实例中,能可选地或附加地在运行时执行动态分析,以确定表达式是否是“安全”表达式。对于动态分析,通常直到已成功运行了安全谓项和/或未遇到安全侵犯(例如错误条件、中断、事件……)才返回结果并作改动。对于静态分析和动态分析,如果未发现安全侵犯,则可确定表达式的排列顺序以改进性能。然而,如果检测到安全侵犯,则放弃查询或查询在“安全”模式中运行,其中安全表达式在运行非安全表达式之前求值。一般而言,认为逻辑操作是“安全”的。安全表达式能通过诸如“SQL”的数据库语言关联到查询初启程序上。例如,安全表达式可使用SQL CREATE(SQL创建)实用工具(utility)创建。已创建安全表达式可通过SQL GRANT(SQL准许)或SQL DENY(SQL拒绝)实用工具关联到查询初启程序。准许和/或拒绝安全表达式可通过SQL REVOKE(SQL撤消)实用工具取消,而安全表达式可通过SQL DROP(SQL丢弃)实用工具放弃。这种安全表达式通常被结合于查询中并在查询数据时利用。一般而言,准许安全表达式是在一个数据行满足它时提供对该数据行的访问的表达式,而拒绝安全表达式则是在数据行满足它时禁止对该数据行访问的表达式。如上所述,多个安全表达式可与查询初启程序相关联;因而,准许安全表达式和拒绝安全表达式两者都可以与一用户相关联。通常,拒绝安全表达式会取代准许安全表达式,使得满足两种安全表达式的行对查询初启程序不可用。另外,可利用拒绝安全表达式的补码,从而当满足至少一个准许安全表达式且没有满足一个拒绝表达式时,用多个安全表达式对行数据求值的聚集结果呈现为“真”。传统上,为了使安全与行相关联,需要标识相应行。然而,许多数据库编程语言并未说明如何用地址来标识表格中的相应各行。在一些情形中,可利用初级关键字(primary key)作为表格的地址。然而,并不是每个表格都有初级关键字。此外,关联安全使得表格中的行能分别被单个标识可导致数据管理问题,因为表格中可能会有很多行。还有,把安全信息存储在相应行中效率低又占用空间,特别是如果存储在行中的各个值并不是很大时。另外,许多数据库编程语言规定了语法,通过这些语法可在表格或其一个或多个构成列上(而不是在行上)指定安全。本专利技术的新系统和方法能通过增强SQL语法用来减轻前述缺点。以下说明和附图详细陈述了本专利技术的某些说明性方面。然而,这些方面仅仅示出了本专利技术诸原理可在其中采用的各种方式的其中几种,且本专利技术旨在包括所有这些方面及其等同方案。结合附图参阅本专利技术的以下详细说明,本专利技术的其它优点和新特征会变得清楚。附图说明图1阐述了通过用安全表达式增强查询有助于数据访问安全的系统。图2阐述了为了性能最优化安全增强查询的数据安全系统。图3阐述了用由数据管理员存储在表达式库中的安全表达式来增强查询的数据安全系统。图4阐述了利用安全增强查询来查询数据库的系统。图5阐述了用来实现行级别数据库安全的方法论。图6阐述了用来准许对表格行的行级别安全权限的方法论。图7阐述了用来拒绝对表格行的行级本文档来自技高网
...

【技术保护点】
一种推动数据库安全的系统,其特征在于,包括:一输入组件,其接收查询;以及一查询组件,其利用谓项规则至少以行级别安全表达式来增强所述查询,所述增强查询被用来搜索数据并返回至少满足所述行级别安全表达式聚集的数据行。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:AC科米尤G钱德JR汉米尔顿LB克里斯托福PN克莱恩T杜塔
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

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

1