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)文档)、对象数据库、以及面向文档的存储系统。在许多这样的情景中,数据库的一些记录可以相互关联,其中,针对第一表的特定字段,表的记录存储与不同表的记录的标识符相对应的值。例如,第一表可以包括外键关系字段,其中一些引用记录通过外键关系字段而与第二表的被引用记录相关。引用通常通过在针对相应记录的外键关系字段中存储与被引用的表的特定记录的标识符(诸如唯一或独特键)相对应的值来实现。许多这样的数据库备选地准许这样的记录将非引用值存储在外键关系字段中,诸如指示引用表的特定记录与被引用的表中的任何记录不相关的空值。在许多这样的数据库情景中,系统允许一个或多个请求方(诸如实体、用户、设备、应用或过程)访问数据库。访问通常经由查询引擎来提供,其中请求方提交标识期望的记录的类型的查询。查询通常根据查询语言来形成和评估,查询语言诸如结构化 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。