数据库对象上以容器为中心的访问控制制造技术

技术编号:30349168 阅读:19 留言:0更新日期:2021-10-16 16:45
使用以容器为中心的受管访问,管理员可以为未来将在由管理员管理的容器中创建的每个对象定义未来授权集合。当用户创建数据库对象时,系统会检查未来的授权,以确定是否有任何授权适用于用户、数据库对象或其组合。在允许用户修改数据库对象之前,任何适用的未来授权都将应用于该数据库对象。因此,管理员甚至可以在创建数据库对象之前控制与数据库对象相关联的特权,同时限制单个对象所有者管理其拥有的对象的特权。有的对象的特权。有的对象的特权。

【技术实现步骤摘要】
【国外来华专利技术】数据库对象上以容器为中心的访问控制
[0001]优先权要求
[0002]本申请要求2020年1月17日提交的美国申请序列号16/745,922的优先权,其全部内容通过引用结合于此。


[0003]本公开总体上涉及管理数据库的专用机器,以及与用于管理数据库中对象的访问控制的其他专用机器相比,这种专用机器得到改进的技术。
[0004]背景
[0005]数据可以上传到数据库,对数据库数据的访问可以由数据库管理员管理。最近,由于可以轻松创建新的数据库实例来存储数据,云数据库服务越来越受欢迎。虽然新的云数据库服务允许轻松创建数据库,但云数据库服务在数据隐私方面带来了新的问题。例如,随着数据量的增加,很难以既安全又可扩展的方式为特定个人创建对给定数据库中特定数据的访问权。
[0006]附图简述
[0007]各种附图仅示出了本公开的示例性实施例,不应被视为限制其范围。
[0008]图1示出了根据一些示例实施例的示例计算环境,其中基于网络的数据仓库系统可以对数据库对象实施以容器为中心的受管访问控制。
[0009]图2示出了根据一些示例实施例的用于在数据库对象上实现以容器为中心的受管访问控制的示例数据库架构。
[0010]图3是示出根据一些示例实施例的使用对数据库对象的以容器为中心的受管访问控制的数据库中的角色和模式(schema)对象之间的交互的框图。
[0011]图4是根据一些示例实施例的用于在数据库对象上实现以容器为中心的受管访问控制的方法的流程图。
[0012]图5是根据一些示例实施例的用于在数据库对象上实现以容器为中心的受管访问控制的方法的流程图。
[0013]图6是根据一些示例实施例的用于在数据库对象上实现以容器为中心的受管访问控制的方法的流程图。
[0014]图7是根据一些示例实施例的用于在数据库对象上实现以容器为中心的受管访问控制的方法的流程图。
[0015]图8示出根据本公开一些实施例的以计算机系统形式的机器的示意图表示,用于使机器执行本文所讨论方法中的任何一个或更多个的指令集合可以在该计算机系统内执行。
[0016]详细描述
[0017]以下描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本专利技术主题的各种实施例的理解。然而,对于本领域技术人员来说,很明显,本专利技术主题的实施例可以
在没有这些具体细节的情况下实施。通常,众所周知的指令实例、协议、结构和技术不一定详细示出。
[0018]授权继承允许容器级别的授权规范应用于未来创建的数据库对象。如这里所使用的,容器保存数据库对象。示例容器包括数据库和模式。这减少了在容器中创建每个对象后执行一组授权语句所产生的操作开销。对于同类对象(即,容器中的具有相同授权集合的对象),对同类对象的访问策略审查可以非常有效,因为对同类对象的未来授权的审查可以代替对每个同类对象的授权的审查来执行。
[0019]使用以容器为中心的受管访问,管理员可以定义特权(privileges)集合,该特权集合将应用于未来创建的数据库对象。每一个这样的特权都可以被称为“未来授权(future grant)”。当用户创建数据库对象时,系统会检查未来的授权,以确定是否有任何授权适用于用户、数据库对象或其组合。在允许用户修改数据库对象之前,任何适用的未来授权都将应用于该数据库对象。因此,管理员甚至可以在创建数据库对象之前控制与数据库对象相关联的特权。如此处所使用的,术语“数据库对象”是指数据库中用于存储或引用数据的任何对象。示例数据库对象包括表、视图、函数、集群、序列和索引。
[0020]在没有以容器为中心的受管访问的情况下,创建数据库对象的用户是数据库对象的所有者,并且在创建时对数据库对象拥有完全控制权。因此,用户可以修改数据库对象、将数据库对象的所有权转移给另一个用户、拒绝其他用户对数据库对象的访问、删除数据库对象或其任何合适的组合。因此,管理员可以控制哪些用户能够创建数据库对象,但不能控制用户一旦创建数据库对象就能对其做什么。例如,这可能导致具有创建特权的用户创建数据库对象,并将创建的对象转移到没有创建特权的账户,至少部分绕过预期的控制。使用以容器为中心的受管访问,甚至提供了对尚未创建的数据库对象的控制。
[0021]在传统数据库中,对数据库对象的访问由自主访问控制(DAC)来介导,在这种控制中,单个对象所有者决定谁可以访问该对象。相比之下,在以容器为中心的受管访问控制(CcMAC)中,容器的所有者(例如,数据库或模式的管理员)决定谁可以访问容器中的哪些对象。因此,通过CcMAC,组织可以为多租户云数据仓库实现访问控制机制,其中可以为每个租户创建容器(例如,数据库或模式),使得容器的所有者角色将充当租户的安全管理员,并负责确定哪些用户可以对哪些对象执行哪些操作。在CcMAC中,单个对象所有者只负责对象的操作方面(例如,填充数据、创建视图或其任何合适的组合)。
[0022]图1示出了根据一些示例实施例的示例计算环境100,其中基于网络的数据仓库系统110可以对数据库对象实施以容器为中心的受管访问控制。为了避免用不必要的细节模糊本专利技术主题,图中省略了与传达对本专利技术主题的理解不密切相关的各种功能组件。然而,本领域技术人员将容易认识到,各种附加功能组件可以被包括作为计算环境100的一部分,以促进本文没有具体描述的附加功能。
[0023]如图所示,计算环境100包括基于网络的数据仓库系统110和计算设备160A、160B和160C,它们都通过网络170连接。数据仓库系统110包括中央服务器130和数据库120A、120B和120C。数据仓库系统110是基于网络的系统,用于以集成方式存储和访问数据(例如,内部存储数据、访问外部远程数据),并报告和分析集成数据。数据仓库系统110可以在包括多个计算机器的云计算平台上实现,这些计算机器向基于网络的数据仓库系统110提供按需计算机系统资源,例如数据存储和计算能力。
[0024]计算设备160A

160C各自包括一个或更多个执行远程软件组件150A或150B的计算机器,以向基于网络的数据仓库系统110的用户140A、140B和140C提供功能。为了方便起见,计算设备160A

160C可以笼统地称为设备160,或者统称为设备160。类似地,远程软件组件150A

150B可以具体称为web客户端150A和应用(app)客户端150B;总体上作为远程软件组件150;或者统称为远程软件组件150。web客户端150A在web浏览器中操作。应用客户端150B是独立的应用。
[0025]每个远程软件组件150包括一组机器可读指令(例如,代码),当由计算设备160执行时,使得计算设备160提供某些功能。远程软件组件150可以对输入数据进行操作,并基于处理、分析或以其他方式转换输入数据来生成结果本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种系统,包括:一个或更多个处理器;和存储器,其存储指令,当由所述一个或更多个处理器执行时,所述指令使得所述一个或更多个处理器执行操作,所述操作包括:访问来自用户账户的在数据库中创建数据库对象的第一请求;响应于所述第一请求,访问与所述用户账户相关联的特权集合;创建具有所述特权集合的所述数据库对象;和基于所述特权集合,拒绝来自所述用户账户的修改所述数据库对象的第二请求。2.根据权利要求1所述的系统,其中所述操作还包括:在访问所述第一请求之前,访问来自第二用户账户的定义与所述用户账户相关联的所述特权集合的第三请求。3.根据权利要求2所述的系统,其中所述第三请求包括所述用户账户的标识符、所述数据库对象的类型和所述特权集合。4.根据权利要求2所述的系统,其中:所述数据库对象在所述数据库的第一模式中;所述第二用户账户与第一特权相关联,所述第一特权定义对在所述数据库的所述第一模式中的数据库对象的特权;和所述第二用户账户不与第二特权相关联,所述第二特权定义对在所述数据库的第二模式中的数据库对象的特权。5.根据权利要求1所述的系统,其中与所述用户账户相关联的所述特权集合包括与和所述用户账户相关联的角色相关联的特权集合。6.根据权利要求1所述的系统,其中所述特权集合包括第二用户账户对数据库对象的访问权限。7.根据权利要求1所述的系统,其中所述特权集合禁止从所述用户账户转移对所述数据库对象的所有权。8.根据权利要求1所述的系统,其中所述操作还包括:访问克隆包括所述数据库对象的第一数据库模式的请求;和响应于所述请求,创建第二数据库模式,所述第二数据库模式包括所述数据库对象的没有所述特权集合的副本。9.根据权利要求1所述的系统,其中所述操作还包括:访问克隆包括所述数据库对象的第一数据库模式的请求;和响应于所述请求,创建第二数据库模式,所述第二数据库模式包括所述数据库对象的具有所述特权集合的副本。10.一种方法,包括:由包括一个或更多个处理器的中央服务器访问来自用户账户的在数据库中创建数据库对象的第一请求;响应于所述第一请求,由所述中央服务器访问与所述用户账户相关联的特权集合;创建具有所述特权集合的所述数据库对象;和基于所述特权集合,拒绝来自所述用户账户的修改所述数据库对象的第二请求。
11.根据权利要求10所述的方法,还包括:在访问所述第一请求之前,访问来自第二用户账户的定义与所述用户账户相关联的所述特权集合的第三请求。12.根据权利要求11所述的方法,其中所述第三请求包括所述用户账户的标识符、所述数据库对象的类型和所述特权集合。13.根据权利要求11所述的方法,其中:所述数据库对象在所述数据库的第一模式中;所述第二用户账户与第一特权相关联,所述第一特权定义对在所述数据库的所述第一模式中的数据库对象的特权;和所述第二用户账户不与第二特权相关联,所述第二特权定义对在所...

【专利技术属性】
技术研发人员:阿尔廷
申请(专利权)人:斯诺弗雷克公司
类型:发明
国别省市:

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

1