调和外键引用和表安全策略制造技术

技术编号:20122812 阅读:25 留言:0更新日期:2019-01-16 12:56
一些数据库表包括关系字段,其中表的记录存储标识第二表的相关记录的外键引用值。在实现包括在数据库上的查询的请求时,系统可以标识请求的上下文,其中上下文是对查询的补充,并且其中上下文与关系字段相关。例如,安全策略可以准许请求方查询第一表,但是限制请求方访问第一表的关系字段所引用的第二表,其中解引用关系字段可能导致意料不到的结果。代替地,系统可以评估请求的上下文,并且可以通过提供用不引用第二表的替代值来替代引用第二表的值的响应来基于上下文实现请求。

Harmonizing Foreign Key Reference and Table Security Policies

Some database tables include relational fields where the records of the tables store foreign key reference values that identify the relevant records of the second table. When implementing a request that includes a query on a database, the system can identify the context of the request, where the context is a complement to the query, and where the context is related to the relational field. For example, security policies may allow requesters to query the first table, but restrict requesters to access the second table referenced by the relational field of the first table, where dereferencing the relational field may lead to unexpected results. Alternatively, the system can evaluate the context of the request and implement the request based on the context by providing a response that replaces the value of the reference second table with an alternative value that does not refer to the second table.

【技术实现步骤摘要】
【国外来华专利技术】调和外键引用和表安全策略相关申请的交叉引用本申请要求于2017年5月11日提交的美国临时专利申请No.15/592,780的优先权,该美国临时专利申请要求于2016年5月19日提交的美国临时专利申请No.62/339,084的优先权,通过引用将其两者都并入本文中。
技术介绍
在计算领域内,许多情景涉及提供对数据库的访问的系统。在许多这样的情景中,数据库包括分别表示一类数据对象的一组表,其中相应的表包括表示由表来表示的该类数据对象的各种性质的一组字段或列。相应的表还包括分别表示数据对象的实例的一组记录,其中相应的记录存储针对表的相应字段的值。许多种类的数据库一般可以以这种方式来构造,包括关系数据库、键/值存储库、分层数据集(诸如可扩展标记语言(XML)文档)、对象数据库、以及面向文档的存储系统。在许多这样的情景中,数据库的一些记录可以相互关联,其中,针对第一表的特定字段,表的记录存储与不同表的记录的标识符相对应的值。例如,第一表可以包括外键关系字段,其中一些引用记录通过外键关系字段而与第二表的被引用记录相关。引用通常通过在针对相应记录的外键关系字段中存储与被引用的表的特定记录的标识符(诸如唯一或独特键)相对应的值来实现。许多这样的数据库备选地准许这样的记录将非引用值存储在外键关系字段中,诸如指示引用表的特定记录与被引用的表中的任何记录不相关的空值。在许多这样的数据库情景中,系统允许一个或多个请求方(诸如实体、用户、设备、应用或过程)访问数据库。访问通常经由查询引擎来提供,其中请求方提交标识期望的记录的类型的查询。查询通常根据查询语言来形成和评估,查询语言诸如结构化查询语言(SQL)的变体。通常,系统评估查询以形成响应,包括满足查询的细节的记录和/或其部分。附加地,许多系统可以使得数据库的特定部分能够被安全保护,使得数据只有在查询由授权的请求方提交时才响应于查询而被提供,并且由其他请求方提交的查询按照安全参数被拒绝。例如,大型企业可以包括分别被准许访问数据库的表、表字段和/或记录的特定子集的各种公司或单位。通常,系统利用指定数据库安全的细节的安全策略,诸如数据库的哪些部分被安全保护;被准许和/或限制访问这样的部分的请求方;请求方被授权以请求的访问类型,诸如读、更新、删除以及查询请求;以及这样的请求方可以由此认证身份的机制,诸如用户名和密码证书或密码安全令牌。
技术实现思路
提供本
技术实现思路
从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本
技术实现思路
不旨在标识要求保护的主题的关键因素或必要特征,也不旨在用于限制要求保护的主题的范围。在涉及在数据库上实现查询的情景内,对查询的评估可以涉及考虑查询中包含的请求,诸如查询所标识的资源(例如,查询中涉及的特定表、属性以及数据库的记录);查询在这样的资源上所请求的操作的类型;以及对访问请求的资源的准许。例如,数据库可以评估标识的资源是否存在;指定的操作是否适用于资源;和/或是否准许用户访问请求的资源。然而,在一些情况下,查询可以涉及包含引用数据库的第二表的外键值的关系字段。例如,第二表可以包括充当表的键的一个或多个字段,使得这些(一个或多个)字段的值对于第二表的每个记录是唯一的,并且第二表的特定记录可以根据这样的值的组合而被引用。第一表的记录可以包含包括充当外键引用的值的关系字段。尽管数据库可以验证对用户访问在查询中标识的资源(例如,第一表和第一表的属性)的准许,但是数据库可能不进一步标识和验证对用户访问关系字段所引用的第二表的准许。即,尽管用户可以被准许访问关系字段中的值,但是用户可能不能引用这样的值所标识的第二表的记录。结果,为了实现请求而呈现的响应可能包括与第二表的记录的标识符相对应的值。请求方可以假定所提供的数据在数据库的安全策略内,并且可能作用于由系统提供的记录,其可以包括解引用所提供的外键值,诸如通过提交到系统的后续查询。因为请求方不被准许访问这样的被引用记录存在于其中的第二表,所以系统拒绝实现请求。这样的响应可能是请求方没有意料到的,请求方可能假定由系统提供的数据(包括外键引用值)包括连贯(coherent)数据集。由请求方利用的商业逻辑可能意料不到地失败,其可能涉及引起异常和/或使交易失败和回滚。这样的结果起因于请求方与系统之间的隐性通信缺口,其中请求方预料由系统返回的数据是有效的并且可用于由请求方使用(包括解引用),而系统有效地提供外键引用值而不验证第二表中的被引用记录对请求方的后续可访问性。鉴于这样的情况,本公开内容提供了用于调和数据库表安全策略和外键关系的技术。根据这样的技术,系统可以存储第一表的关系字段,其包括引用数据库的第二表的值。系统可以从请求方接收包括涉及第一表的记录的查询的请求,其中记录包括针对关系字段的引用第二表的值。鉴于本文中呈现的考虑,系统可以评估请求的上下文,其中上下文是对查询的补充,并且其中上下文与关系字段相关。基于上下文,系统可以生成用不引用第二表的替代值来替代引用第二表的值的响应。系统可以之后呈现包括替代值的响应,以便实现请求。关系字段的值的替代可以以各种方式来实现。第一种这样的技术可以涉及将第一表的相应记录表示为主记录,其响应于由非授权请求方进行的查询而提供针对关系字段的替代值。针对关系字段的值的替代可以通过利用替代值来覆写关系字段而实现,替代值之后响应于在表上的查询而被提供。在该第一示例的第二种这样的变型中,系统可以制止覆写记录中的非替代值。代替地,在查询时,可以评估查询的上下文,并且可以响应于查询而选择性地用替代值来替代现有值,甚至对于具有针对关系字段的非替代值的记录。作为一个这样的示例,系统可以将该选择性基于请求的上下文,其中上下文是对查询的补充。例如,上下文可以涉及请求的细节,诸如请求方的访问准许:对授权的请求方的响应可以包括相应记录中的默认值或非替代值。这些细节可以与请求有关,但是可以在查询中即不是指定的也不是隐式的,其可以简单地指定在数据库的指定资源上的选择和投影逻辑。对非授权的请求方的响应可以导致针对关系字段的替代值被替代,而不管记录的内容如何。在其他变型中,系统可以将对表的记录的外键字段的更新限制于特定上下文(例如,从占有如数据库管理员、用户的这种角色的用户和/或自动化过程接收到的请求)。系统可以通过在表的更新期间隐藏关系字段以便将对新值的写入限制于记录的关系字段来实现替代。以这种方式,根据作为对查询的补充的上下文,系统使非授权的上下文接收针对表的记录的关系字段的替代值。用于实现对关系字段的值的替代的第二种这样的示例涉及复制表的记录,针对访问表的请求的每个上下文具有一个上下文特定副本。例如,如果包括关系字段的表在三个上下文中可访问,则系统可以自动地存储表的相应记录的上下文特定副本,其中,针对特定记录,每个上下文特定副本表示响应于特定上下文中的查询而要被提供的记录的版本。当请求被接收到时,系统可以检查请求的上下文,其中上下文是对查询的补充,并且其中上下文与关系字段相关。例如,检查可以涉及对第二表在该特定上下文中可访问的记录的上下文特定副本的标识,其中上下文特定副本可以指定关系字段的替代的(例如,默认)值或者非替代的(例如,原始)值。如果请求的上下文指示第二表在该特定上下文中不可访问,则记录的本文档来自技高网
...

【技术保护点】
1.一种提供对数据库的访问的系统,所述数据库包括第一表,所述第一表包括关系字段,所述关系字段包括引用所述数据库的第二表的值,所述系统包括:处理器;以及存储指令的存储器,所述指令当由所述处理器执行时使所述系统:接收包括查询的请求,所述查询涉及所述第一表的记录,其中所述记录针对所述关系字段包括引用所述第二表的所述值;标识所述请求的上下文,其中所述上下文与所述关系字段相关,并且其中所述上下文是对所述查询的补充;基于所述上下文,生成响应,所述响应用不引用所述第二表的替代值来替代引用所述第二表的所述值;以及提供响应于所述请求的所述响应。

【技术特征摘要】
【国外来华专利技术】2016.05.19 US 62/339,084;2017.05.11 US 15/592,7801.一种提供对数据库的访问的系统,所述数据库包括第一表,所述第一表包括关系字段,所述关系字段包括引用所述数据库的第二表的值,所述系统包括:处理器;以及存储指令的存储器,所述指令当由所述处理器执行时使所述系统:接收包括查询的请求,所述查询涉及所述第一表的记录,其中所述记录针对所述关系字段包括引用所述第二表的所述值;标识所述请求的上下文,其中所述上下文与所述关系字段相关,并且其中所述上下文是对所述查询的补充;基于所述上下文,生成响应,所述响应用不引用所述第二表的替代值来替代引用所述第二表的所述值;以及提供响应于所述请求的所述响应。2.一种计算机可读存储介质,所述计算机可读存储介质存储指令,所述指令使系统通过以下来提供对数据库的访问,所述数据库包括第一表,所述第一表包括关系字段,所述关系字段包括引用所述数据库的第二表的值:接收包括查询的请求,所述查询涉及所述第一表的记录,其中所述记录针对所述关系字段包括引用所述第二表的所述值;标识所述请求的上下文,其中所述上下文与所述关系字段相关,并且其中所述上下文是对所述查询的补充;基于所述上下文,生成响应,所述响应用不引用所述第二表的替代值来替代引用所述第二表的所述值;以及提供响应于所述请求的所述响应。3.一种通过以下来提供对数据库的访问的方法,所述数据库包括第一表,所述第一表包括关系字段,所述关系字段包括引用所述数据库的第二表的值:接收包括请求的请求,所述请求包括查询,所述查询涉及所述第一表的记录,其中所述记录针对所述关系字段包括引用所述第二表的所述值;标识所述请求的上下文,其中所述上下文与所述关系字段相关,并且其中所述上下文是对所述查询的补充;基于所述上下文,生成响应,所述响应用不引用所述第二表的替代值来替代引用所述第二表的所述值;以及提供响应于所述请求的所述响应。4.根据权利要求3所述的方法,其中标识所述上下文还包括:确定所述查询的请求方不被准许访问所述第二表。5.根据权利要求3所述的方法,其中:所述表还包括指示其中所述记录被提供的上下文的上下文字段;并且所述方法还包括:针对相应记录,将适用于来自所述表的任何请求记录的任何上下文的主上下文存储在所述上下文字段中。6.根据权利要求3所述的方法,还包括:针对所述表的所述相应记录,将所述替代值存储在所述记录的所述关系字段中。7.根据权利要求3所述的方法,其中标识所述替代值还包括:针对所述表的记录,维护所述记录的针对所述关系字段的存储值;以及响应于确定所述请求的所述上下文不准许对所述第二表的访问,提供响应于所述查询的具有针对所述关系字段的所述替代值而非所述存储值的所述记录。8.根据权利要求3所述的方法,其中:所述方法还包括:针对相应请求的上下文,当在所述上下文中被请求时标识针对所述关系字段的上下文特定的替代值;并且提供所述记录还包括:响应于在对所述第二表的访问不被准许的上下文中的请求:针对所述请求的所述上下文来标识所述关系字段的所述上下文特定的替代值;以及提供响应于所述查询的具有针对所述关系字段的所述上下文...

【专利技术属性】
技术研发人员:L·D·布拉贝格A·M·埃尔·赫塞尼G·S·萨达斯瓦姆M·加尔J·安德森
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

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

1