CN108140053A - 可插拔数据库锁定配置文件 - Google Patents

可插拔数据库锁定配置文件 Download PDF

Info

Publication number
CN108140053A
CN108140053A CN201680061448.1A CN201680061448A CN108140053A CN 108140053 A CN108140053 A CN 108140053A CN 201680061448 A CN201680061448 A CN 201680061448A CN 108140053 A CN108140053 A CN 108140053A
Authority
CN
China
Prior art keywords
database
user
specific
limitation
pluggable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680061448.1A
Other languages
English (en)
Other versions
CN108140053B (zh
Inventor
P·尚塔夫拉帕
S·翟因
K·拉加玛尼
A·克鲁格力可维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN108140053A publication Critical patent/CN108140053A/zh
Application granted granted Critical
Publication of CN108140053B publication Critical patent/CN108140053B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Closures For Containers (AREA)

Abstract

本文描述了用于允许容器DBMS在每个可插拔数据库的基础上基于请求操作的用户所属的可插拔数据库对操作施加限制的技术。在一个实施例中,可以创建锁定配置文件并将其映射到可插拔数据库。锁定配置文件对操作指定PDB范围的限制。限制可以应用于给定类型的所有操作、可以应用于特定特征、可以要求使用特定参数值等。属于可插拔数据库的所有用户都受到其可插拔数据库被映射到的锁定配置文件中指定的限制,除非该锁定配置文件具有用于他们的特定于用户的豁免。

Description

可插拔数据库锁定配置文件
技术领域
本发明涉及数据库系统,并且更具体地涉及基于操作源自的可插拔数据库来限制操作。
背景技术
数据库整合涉及在多个数据库之间分配和共享硬件平台的计算机资源。例如,已经开发了其中在单个“容器数据库”中可以包含多个不同的“可插拔数据库”的技术。例如,在于2014年3月10日提交的美国专利申请No.14/202,091中描述了这种技术,该申请的全部内容被结合于此。
容器数据库由容器DBMS(“容器DBMS”)管理。容器数据库内的每个可插拔数据库均由其自己的单独数据库字典定义,并与容器数据库内的其它可插拔数据库在某种程度上隔离。
不幸的是,尽管容器DBMS可能意识到它所管理的可插拔数据库之间存在分离,但是容器DBMS外部的实体并不共享这种意识。例如,在容器DBMS与操作系统和网络之间的交互中,容器DBMS看起来可能是单个单一实体。因此,操作系统无法确定与由容器DBMS做出的对OS资源的任何给定请求有关的特定可插拔数据库。类似地,网络软件无法确定与容器DBMS和其它系统之间的任何给定网络通信有关的特定可插拔数据库。
此外,当可插拔数据库的本地用户执行影响公共共享用户模式或影响整个容器数据库的操作时,可能会出现安全问题。最后,目前还没有能力在每个可插拔数据库的基础上设置数据库选项。相反,容器数据库的数据库选项管理其中包含的所有可插拔数据库。
本节中描述的方法是可以实行的方法,但不一定是先前已被构思或实行的方法。因此,除非另外指出,否则不应当假定在本节中描述的任何方法仅仅凭其包括在本节中就有资格作为现有技术。
附图说明
在附图中:
图1A是描绘根据实施例的容器DBMS的图。
图1B是更详细地描绘根据实施例的图1A的容器数据库的图。
图2是图示根据实施例的用于针对关于查询的PDB范围限制执行运行时检查的步骤的流程图;以及
图3是可以在其上实现本文描述的技术的计算机系统的框图。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本发明的透彻理解。但是,很显然,本发明可以在没有这些具体细节的情况下进行实践。在其它情况下,众所周知的结构和设备以框图的形式示出,以避免不必要地模糊本发明。
数据库系统概述
本发明的实施例用在DBMS的上下文中。因此,对DBMS的描述是有用的。
DBMS管理一个或多个数据库。DBMS可以包括一个或多个数据库服务器。数据库包括存储在持久性存储器机制(诸如一组硬盘)上的数据库数据和数据库字典。数据库数据可以存储在一个或多个数据容器中。每个容器包含记录。每条记录内的数据被组织到一个或多个字段中。在关系DBMS中,数据容器被称为表,记录被称为行,并且字段被称为列。在面向对象的数据库中,数据容器被称为对象类,记录被称为对象,并且字段被称为属性。其它数据库体系架构可能使用其它术语。
用户通过向数据库服务器提交命令来与DBMS的数据库服务器交互,这些命令使数据库服务器对存储在数据库中的数据执行操作。用户可以是运行在与数据库服务器交互的客户端计算机上的一个或多个应用。多个用户在本文也可以被统称为用户。
数据库命令可以采用符合数据库语言的数据库语句的形式。用于表达数据库命令的数据库语言是结构化查询语言(SQL)。存在许多不同的SQL版本,一些版本是标准版本和一些是专有版本,并且存在各种扩展。数据定义语言(“DDL”)命令被发到数据库服务器以创建或配置数据库对象,诸如表、视图或复杂数据类型。SQL/XML是在操纵对象关系数据库中的XML数据时使用的SQL的公共扩展。
多节点数据库管理系统由共享对相同的一个或多个数据库的访问的互连节点组成。典型地,节点经由网络互连并且以不同的程度共享对共享存储装置的访问,例如,对一组盘驱动器和其上存储的数据块的共享访问。节点之间的不同程度的共享访问可以包括不共享、全部共享、节点对数据库分区的独占访问、或者其一些组合。多节点数据库系统中的节点可以是经由网络互连的一组计算机(例如,工作站、个人计算机)的形式。替代地,节点可以是网格的节点,其中网格由节点组成,这些节点采用与机架上的其它刀片服务器互连的刀片服务器的形式。
多节点数据库系统中的每个节点都托管数据库服务器。服务器(诸如数据库服务器)是集成的软件组件和计算资源分配的组合,计算资源诸如存储器、节点和用于在处理器上执行集成的软件组件的过程,软件和专用于代表一个或多个客户端执行特定的功能的计算资源的组合。
来自多节点数据库系统中的多个节点的资源可以被分配以运行特定数据库服务器的软件。软件和来自节点的资源分配的每种组合是在本文中被称为“服务器实例”或“实例”的服务器。数据库服务器可以包括多个数据库实例,其中一些或全部在独立的计算机上运行,包括单独的服务器刀片。
可插拔数据库锁定配置文件概述
由于无法在操作系统或网络级别区分各个可插拔数据库,因此不能依赖操作系统和网络软件来实施针对每个可插拔数据库的限制。因此,本文描述的技术用于允许容器DBMS在每个可插拔数据库的基础上对导致与操作系统和/或网络交互的操作施加限制。
具体而言,下文描述了用于实现可插拔数据库锁定配置文件(“锁定配置文件”)的技术。根据一个实施例,锁定配置文件驻留在容器数据库ROOT(根)中,并且只能在ROOT中创建和更改。在一个实现中,锁定配置文件指定一组否定(negative)特权来在可插拔数据库的基础上限制操作。
例如,在一个实施例中,给定可插拔数据库的锁定配置文件可以针对以下指定限制:
·身份在可插拔数据库之间共享的操作
o当数据库与OS资源(比如文件或进程)交互时,在OS级别。
o当数据库与其它系统通信时,在网络级别。
·影响容器数据库中公共用户的模式的可插拔数据库本地用户的操作。
·与数据库选项相关的操作。
·可能影响其它可插拔数据库,从而影响整个容器数据库的SQL语句级别的操作。
由于这些限制在知道不同的可插拔数据库的容器DBMS内实施,因此即使操作系统和网络仍然不知道与OS请求相关联的可插拔数据库和由容器DBMS进行的网络通信,针对每个可插拔数据库的安全措施也是可能的。
容器数据库管理系统
图1A描绘了其上可以实现实施例的示例DBMS 100。参考图1A,容器DBMS 100包括数据库服务器102和容器数据库104。容器数据库104又包含多个可插拔数据库。数据库服务器102管理容器数据库104和包含在容器数据库104中的可插拔数据库。
数据库服务器102表示管理容器数据库104的一个或多个计算机系统上的软件和资源的组合。数据库服务器和其上可以运行数据库服务器的计算机系统的示例在上面的数据库系统概述部分中进行了描述,但是本发明的实施例不限于此。虽然图1A仅描绘了特定数量的每个元素,但是实施例可以具有更多的图1A中所示的每个元素。
图1B描绘了根据本发明的实施例的容器数据库104的更详细视图。容器数据库104包含由数据库服务器102托管和管理的多个数据库。数据库包括可插拔数据库PDB 120、可插拔数据库PDB 130、可插拔数据库PDB 140和根数据库110。根数据库110是由数据库服务器120用于全局管理容器数据库104并存储定义可插拔数据库和/或定义可由多个可插拔数据库的用户访问的“公共数据库对象”的元数据的数据库。
每个可插拔数据库包括其自己的数据库字典和数据库对象。在图1B所示的系统中,可插拔数据库PDB 120包括数据库字典121和数据库对象126,可插拔数据库PDB 130包括数据库字典131和数据库对象136,并且可插拔数据库PDB 140包括数据库字典141和数据库对象146。类似于可插拔数据库,根数据库110包括数据库字典111。数据库字典111包含容器数据库104的定义管理容器数据库104和其中包含的可插拔数据库所需的各个方面的元数据,包括定义可插拔数据库PDB 120、可插拔数据库PDB 130和可插拔数据库PDB 140的元数据。
根数据库110还包括锁定配置文件150和配置文件到可插拔数据库映射152。如上所述,锁定配置文件150中的每个配置文件指定一组否定特权来限制在可插拔数据库级别的操作。配置文件到可插拔数据库映射152一般地表示指示哪些配置文件与哪个可插拔数据库对应的元数据。例如,如果配置文件X仅映射到可插拔数据库Y,则配置文件X中指定的限制仅限制代表可插拔数据库Y的用户启动的操作。
虽然配置文件150和映射152被图示为与根数据库110的字典121分开维护,但是在备选实施例中,配置文件150和映射152中的一个或两者可以被维护在数据库字典121内。
特定于用户的特权授权
数据库系统通常支持特定于用户的特权授权。例如,与典型数据库用户相比,数据库管理员可能被给予执行明显更大范围的操作的授权。这些特权通常被肯定地授予。即,赋予用户的授权指示用户可以做什么,而不是用户不能做什么。
向可插拔数据库的用户授予特权可以包括:
·容器数据库的管理员用户在容器数据库中创建可插拔数据库并为可插拔数据库创建管理员用户。
·可插拔数据库的管理员用户为可插拔数据库创建另一个用户并授予该另一个用户特定的特权。
·授予该另一个用户的特定特权可以允许该另一个用户向可插拔数据库的还有其他用户授予特权。
重要的是,这些特权是肯定地授予的,并且授权是在每个用户的基础上进行的。在一些情况下,肯定特权可以被授予“公众”,这意味着每个人都具有所讨论的特权。
如以上所提到的,当在多个可插拔数据库之间共享硬件时,可能会出现安全问题。例如,虽然可插拔数据库(例如,PDB 120)的用户修改该用户所属的可插拔数据库中的数据库对象(例如,对象126)可能是可以的,但是可能不希望允许相同用户修改在可插拔数据库之间共享的“公共数据库对象”(例如,根数据库110中的对象)。另一方面,可能希望PDB 130的所有用户修改这些公共数据库对象。因此,本文描述的技术涉及提供用于结合特定于用户的特权授权来使用的锁定配置文件。正下文将要解释的,锁定配置文件有效地从用户取走用户已经被授予的一些特权,其中被取走的特权是基于用户所属的可插拔数据库的。
PDB范围的特权限制
如以上所提到的,锁定配置文件建立了PDB范围的特权限制。具体而言,为了限制PDB 120的用户执行特定类型的操作,在根数据库110中创建锁定配置文件,并且将条目插入到锁定配置文件中以指示受限制的特定类型的操作。然后更新配置文件到可插拔数据库映射152以将锁定配置文件与PDB 120相关联。从这一点开始,每当PDB 120的用户请求数据库服务器102执行用户已被授予特权的操作时,数据库服务器102确定该用户属于可插拔数据库120、(基于映射152)确定映射到可插拔数据库120的一个或多个配置文件、并且然后确定所请求的操作是否将违反这些配置文件中指定的任何限制。如果该操作将违反这些配置文件中的任何限制,则操作被防止,并且数据库服务器102可以返回适当的错误消息。另一方面,如果该操作不会违反任何限制,则数据库服务器102执行该操作。
可以使用PDL配置文件进行保护的特征类型
如以上所提到的,当使用共享身份的个体是不同的并且可能具有不同的目标或忠诚度时,共享身份会引发安全问题。在容器DBMS内,共享身份可以:
·当数据库与OS资源(比如文件或进程)进行交互时,在OS级别共享,
·当数据库与其它系统通信并且网络身份是重要的时,在网络级别共享,或者
·在PDB使用比如数据库链接的特征访问或创建公共对象或跨容器边界进行通信时,在数据库内部共享。
使用这些身份的特征可以被划分为:
·网络访问特征,即,使用网络在PDB之外进行通信的操作
·系统访问特征,即,访问主机操作系统的操作
·文件访问特征,即,访问文件或目录的操作
·公共用户或对象访问,即,其中PDB中的本地用户可以通过公共模式中的公共用户或访问对象进行代理的操作
·管理特征,即,用于管理某些数据库选项(比如XDB、高级队列、上下文)的操作。
·连接特征,例如,锁定配置文件可以用于(a)阻止与PDB的公共用户连接,(b)以受限模式阻止与PDB的本地SYSOPER连接等。
这些仅仅是锁定配置文件可以用于保护的特征类型的示例。一些实施例可以使用锁定配置文件来保护落在以上列出的类别之外的特征。因此,锁定配置文件不限于保护任何特定的一组特征或任何特定类型的特征。
以上列出的许多这些特征都是多个操作所属的类别。根据一个实施例,锁定配置文件可以以各种粒度级别指定限制。例如,锁定配置文件可以限制整个特征,或者可以指示与该特征相关联的哪些特定操作受到限制。
创建和丢弃锁定配置文件
为了使用锁定配置文件对特定可插拔数据库的用户执行的操作施加限制,必须首先创建锁定配置文件。根据一个实施例,创建锁定配置文件的数据库命令的语法是:
·CREATE LOCKDOWN PROFILE<profile_name>;
响应于接收到这样的命令,锁定配置文件<profile_name>将由容器DBMS创建。
使用这样的命令的示例是:
·SQL>create lockdown profile p1;
根据一个实施例,丢弃锁定配置文件的数据库命令的语法是:
·DROP LOCKDOWN PROFILE<profile_name>;
响应于接收到这样的命令,指定的配置文件<profile_name>将被容器DBMS丢弃,配置文件与任何PDB之间的映射将被删除,并且新丢弃的PDB锁定配置文件被分配给的任何PDB将不再受在丢弃的配置文件中指定的限制的限制。
使用这样的命令的示例是:
·SQL>drop lockdown profile p1;
在一个实施例中,这些命令仅由容器DBMS 100为(a)连接到容器数据库(根数据库110)和(b)已被授予用于执行这些命令的特权的用户执行。
向PDL配置文件添加限制
在创建锁定配置文件之后,会向配置文件添加限制,以在可插拔数据库范围的基础上禁止某些操作。根据一个实施例,使用以下命令更改锁定配置文件以包括否定特权(规则):
对于指定基于语句的规则:
·SQL>Alter lockdown profile<profile_name>disable statement=(′Statement name′)clause=(′clause name′)
·option=(′option name′);
如何使用这种语法的示例是:
·alter lockdown profile p1 disable statement=(′ALTER SYSTEM′)clause=(′SET′)
·option=(′CURSOR_SHARING′);
对于指定特征规则:
·SQL>alter lockdown profile<profile_name>disable feature=(′featurename′);
如何使用这种语法的示例是:
·SQL>alter lockdown profile p1 disable feature=(′NETWORK_ACCESS′);
对于指定选项规则:
·SQL>alter lockdown profile<profile_name>disableoption=(′optionname′);
如何使用这种语法的示例是:
·SQL>alter lockdown profile p1 disable option=
(′Database Queuing′);
创建配置文件到PDB映射
一旦锁定配置文件被创建,锁定配置文件就可以被映射到一个或多个可插拔数据库,以指示在锁定配置文件中指定的限制要被应用到那些一个或多个可插拔数据库的用户。根据一个实施例,锁定配置文件由容器数据库的管理员用户映射到特定的可插拔数据库。具体而言,在一个实施例中,容器数据库的管理员用户通过(a)连接到可插拔数据库,以及(b)将参数pdb_lockdown设置为期望的配置文件的名称来将锁定配置文件分配给可插拔数据库。
在备选实施例中,可以在不首先连接到锁定配置文件将被分配给的可插拔数据库的情况下建立配置文件到PDB映射。例如,在这样的备选实施例中,连接到容器数据库104的管理员用户可以在不首先连接到PDB 120的情况下将锁定配置文件映射到PDB 120。
在一个实施例中,创建配置文件到PDB映射的命令的语法是:
·SQL>alter system set pdb_lockdown=′<profile_name>′;
响应于接收到这样的命令,将配置文件到PDB映射存储在容器数据库中。例如,响应于由连接到PDB 120的容器数据库管理员用户发出该命令,将指定的配置文件映射到PDB120的条目将被添加到存储在根数据库110中的配置文件到PDB映射152。如何使用这种语法的示例是:
·SQL>alter system set pdb_lockdown=′p1′;
在设置配置文件之后,所有规则都会生效,并且配置文件中列出的操作将在指定的可插拔数据库中受到限制(锁定)。应该注意的是,与锁定配置文件有关的所有命令的语法可能因实现而异。因此,本文描述的技术不限于任何特定的命令语法。
系统提供的PDL配置文件
根据一个实施例,数据库服务器102的开发人员可以为常见的PDB情景提供锁定配置文件。这些系统提供的锁定配置文件可以用来代替一个或多个用户创建的锁定配置文件或结合一个或多个用户创建的锁定配置文件使用。在包括系统提供的锁定配置文件的实施例中,当数据库服务器102最初被安装时,系统提供的锁定配置文件可以被包括在配置文件150中。但是,配置文件到PDB映射152将不会最初把这些系统提供的锁定配置文件映射到任何PDB。
一旦PDB被创建,PDB和系统提供的锁定配置文件之间的映射就可以以与上面相对于用户创建的锁定配置文件描述的相同方式创建。根据一个实施例,操作、选项和特征可以以与用户创建的锁定配置文件相同的方式从系统提供的锁定配置文件添加或去除。但是,在一个实施例中,对于系统提供的锁定配置文件,只有客户添加的操作才可以被客户去除,即,由数据库开发人员在这些配置文件中施加的限制不能被解除。
强制执行锁定配置文件中指定的限制
根据一个实施例,数据库服务器102在数据库服务器102执行由与PDB相关联的用户发出的查询中指定的操作之前进行两次检查。具体而言,数据库服务器102进行编译时检查以确定提交查询的用户是否已被授予执行查询中指定的操作所需的特权。如果提交查询的用户不拥有执行查询中指定的操作所需的特权,则数据库服务器102生成错误。否则,数据库服务器102编译该查询。
在编译该查询之后并且在执行该查询之前,数据库服务器102执行运行时检查,以检查在查询中指定的操作是否将违反在适用的锁定配置文件中指定的限制。如果查询中指定的操作将违反在适用的锁定配置文件中指定的限制,则数据库服务器102生成错误。否则,数据库服务器102编译该查询。
根据一个实施例,运行时检查包括:
·确定查询中指定的操作是否是可能在锁定配置文件中被限制的操作类型
·如果是,则检查配置文件到PDB映射152以确定提交查询的用户的PDB是否被映射到任何锁定配置文件。
·如果是,则将识别用户的PDB映射到的锁定配置文件150中指定的限制的限制识别信息加载到易失性存储器中。
·数据库服务器然后基于限制识别信息来确定查询中指定的操作是否受到限制。
·如果查询中指定的操作受到限制,则生成错误消息。否则,数据库服务器102执行查询以执行操作。
高效地确定SQL命令类型是否受到限制
可以采用各种增强来加速基于限制识别信息来确定操作是否受到限制的过程。例如,假定锁定配置文件限制使用特定类型的SQL命令。大多数数据库系统都支持相对少量类型的SQL命令。因此,在锁定配置文件中指定的SQL命令限制可以由受限命令位图来表示,其中每个位位置与不同类型的SQL命令对应,并且每个位的值指示该位对应的SQL命令类型是否受到限制。
受限命令位图可以直接存储在锁定配置文件150内。但是,在一个实施例中,锁定配置文件150以人类可读的文本格式指定受限SQL命令。在这样的实施例中,将限制识别信息加载到易失性存储器中涉及读取受限SQL命令的文本指示并且基于文本指示生成受限命令位图。
在采用受限命令位图的实施例中,确定PDB用户请求的SQL命令是否受限的过程仅包括读取受限命令位图内与用户的查询中指定的SQL命令的类型对应的位置处的值。在PDB映射到多个锁定配置文件的情况下,各种配置文件的受限命令位图可以被“或”在一起以创建复合受限命令位图,其中限制确定是根据复合受限命令位图中相关位置处的位的值的。
高效地确定特征是否受到限制
锁定配置文件可以用于限制PDB的使用使用某些特征。可能受到限制的特征可能不与SQL语句的类型对应。例如,受到限制的特征可能是PL/SQL过程、某些视图、某些参数等。与受限SQL命令类型类似,这些受到限制的特征可以按照人类可读文本在锁定配置文件中表示。在这样的实施例中,数据库服务器102可以在查询运行时执行串比较以确定查询指定的特征是否与配置文件限制的特征匹配。但是,响应于每个查询来执行这种串比较是相对低效的。
在备选实施例中,不是在查询运行时执行这种串比较,而是将限制识别信息加载到易失性存储器中涉及在易失性存储器中构建散列表。具体而言,每个受限特征的文本表示可以被馈送到散列函数以生成散列值。这样产生的散列值然后被用作索引来定位散列表中的条目。由散列值指示的条目被更新以指示散列到这些条目的特征受到限制。
一旦散列表被构建和填充,散列表就可以用于通过以下方式快速确定传入查询是否引用受限制的特征:
·将散列函数应用于传入查询中指定的特征以生成散列值
·在散列表中定位与散列值对应的条目
·基于条目的内容确定传入查询中指定的特征是否受到限制
特征的默认设置
除了指定PDB的用户不能使用的特征之外或取而代之,锁定配置文件可以指定特征的默认值。例如,锁定配置文件可以指示某种类型的SQL命令必须始终包含特定的参数值。当这样的限制出现在锁定配置文件中时,数据库服务器102首先检查传入查询是否利用了已经指定默认设置的任何特征。如果这样的特征正在被使用,则数据库服务器102检查以查看查询是否指定了该特征的默认设置。如果不是,则拒绝该查询的执行并生成错误消息。
OS用户限制
在许多数据库系统中,数据库命令可能导致数据库服务器调用DBMS系统外部的脚本或例程。这种调用是通过操作系统进行的。但是,除了调用源自的操作系统用户的身份之外,操作系统几乎不知道调用的来源。因此,当由PDB 120的用户发出的命令导致数据库服务器102调用DBMS 100外部的脚本时,操作系统仅知道数据库服务器102用来调用脚本的OS用户ID(user-id)。
根据一个实施例,锁定配置文件可以用于在OS级别指示与由数据库服务器102做出的外部调用相关联的PDB。具体而言,与每个PDB 120、130和140相关联的锁定配置文件可以指定不同的OS用户ID。例如,与PDB 120、130和140相关联的锁定配置文件可以分别指定USER1、USER2和USER3。当数据库服务器102响应于由PDB 120的用户发出的命令而调用任何外部例程时,数据库服务器102作为OS USER1调用该例程。类似地,当数据库服务器102响应于由PDB 130的用户发出的命令而调用任何外部例程时,数据库服务器102作为OS USER2调用该例程。
由于管理员用户知道代表PDB 120的用户做出的外部调用将与OS USER1相关联,因此管理员用户可以在每个OS用户的基础上建立OS限制。由于每个OS用户与PDB对应,因此这些OS限制将在PDB范围的基础上施加。
路径限制
在许多数据库系统中,数据库命令可能导致数据库服务器在DBMS外部创建文件。根据一个实施例,锁定配置文件可以用于限制用户能够在哪里创建这样的文件。具体而言,在一个实施例中,与PDB相关联的锁定配置文件可以指定路径前缀,诸如/home/user/pdb1/。如果在任何PDB的锁定配置文件中指定了这样的前缀,则数据库服务器102防止由PDB的用户发出的命令在文件系统内除了目录/home/user/pdb1/以及从其下传的目录之外的任何地方创建文件。这样的限制可以通过使数据库服务器102将/home/user/pdb1/预先添加到在来自PDB的用户的命令中指定的每条路径,或者通过当这些命令包括不符合这样的限制的路径时引发错误来实施。
公共对象限制
锁定配置文件可以用于对“公共对象”施加限制。公共对象是在容器DBMS中的PDB之间共享的对象。存在两种类型的公共对象:元数据共享对象和数据共享对象。在元数据共享对象中,只有对象的元数据在PDB之间共享。用于填充元数据共享对象的实际数据是特定于PDB的。例如,元数据共享表T1的定义可以在PDB 120、130和140之间共享。但是,由PDB120的用户插入到表T1中的数据仅对PDB 120的用户可见。类似地,由PDB 130的用户插入到表T1中的数据仅对PDB 130的用户可见。
数据共享对象是其中对象的元数据和数据两者都在PDB之间共享的对象。例如,数据共享表T2的定义可以在PDB 120、130和140之间共享。包含在表T2中的所有数据对所有PDB 120、130和140的用户都是可见的。
由于公共对象在PDB之间共享,因此对公共对象的访问涉及附加的安全问题。因此,根据一个实施例,在锁定配置文件中指定的限制可以被标记为特定于公共对象的。标记为特定于公共对象的限制仅由数据库服务器102针对涉及公共对象的操作实施。没有标记为特定于公共对象的限制被强制执行,而不考虑该操作是否涉及公共对象。
例如,假定锁定配置文件具有指定当针对公共对象发出命令Y时必须使用参数X的限制。在这些情况下,数据库服务器将允许针对特定于PDB的对象发出命令Y,而不管参数X是否被使用。但是,如果针对公共对象使用了命令Y,则如果参数X不存在,那么数据库服务器102将防止该命令的执行。
在一个实施例中,锁定配置文件可以在逐个限制的基础上指定每个限制施加到的对象的类型。例如,限制可以施加到所有对象、仅仅元数据共享对象、仅仅数据共享对象、仅仅公共对象等。锁定配置文件还可以指定所有操作都限制在某类对象、或者某些对象上。例如,锁定配置文件可以指定没有操作可以引用数据共享对象,或者没有操作可以引用特定的数据共享对象。
网络访问限制
响应于用户查询,数据库服务器102可以调用提供网络访问的例程(例如,PL/SQL包)。在PDB范围的基础上,可以通过向与给定PDB相关联的锁定配置文件添加网络访问限制来防止网络访问。网络访问限制可以限制对所有这些例程的访问、或者仅例程中的一些的访问。例如,网络访问限制可以防止调用用于TCP消息传送的例程,但不会防止调用用于HTTP消息传送的例程。因此,与PDB 120相关联的锁定配置文件可以防止所有网络访问,与PDB 130相关联的锁定配置文件可以防止使用HTTP的网络访问,并且与PDB 140相关联的锁定配置文件可能根本没有任何网络访问限制。
特定于用户的豁免
根据一个实施例,锁定配置文件可以识别从锁定配置文件中包含的一些或全部限制中豁免的特定用户。因此,如果容器数据库104的管理员用户确信PDB 120的用户X不是安全风险,则管理员用户可以在与PDB 120相关联的锁定配置文件中存储用户X从锁定配置文件中包含的一些或全部限制中豁免的指示。特定于用户的豁免的范围可以是全局性的(即,用户X可以做他/她的特权允许的任何事情)或特定于限制的(例如,用户X从禁止特征Y的限制中豁免)。
高速缓存限制
虽然有可能在每次对与映射到锁定配置文件的PDB相关联的用户执行查询时为锁定配置文件生成限制指示信息,但这样做可能是低效的。特别地,当限制指示信息包括基于锁定配置文件中的文本信息生成的结构(诸如散列表和/或位图)时,必须重新生成每个适用查询的结构所遭受的性能惩罚可能超过使用这样的结构所获得的性能益处。
根据一个实施例,为了减少创建这种访问结构的每个查询开销,用于锁定配置文件的限制指示信息在其为之生成的查询完成之后被保留在易失性存储器中。这种限制指示信息可以保持在易失性存储器中被高速缓存,直到或者(a)存储器需要用于某种其它目的,或者(b)对应的锁定配置文件被更新。
在高速缓存锁定配置文件的限制指示信息的实施例中,当对锁定配置文件进行任何改变时,高速缓存的锁定配置文件的限制指示信息变得陈旧。陈旧的限制指示信息不能被使用,因为限制的去除和/或添加应该被数据库服务器立即执行。因此,在一个实施例中,对锁定配置文件的任何改变会导致数据库服务器将该锁定配置文件的高速缓存的限制指示信息标记为无效。响应于与映射到锁定配置文件的PDB相关联的用户发出的查询,数据库服务器确定用于锁定配置文件的高速缓存的限制指示信息是否无效。如果不是,则使用高速缓存的限制指示信息来确定查询中指定的操作是否受到限制。如果高速缓存的限制指示信息无效,则基于更新后的锁定配置文件重建锁定配置文件的限制指示信息。
在备选实施例中,不是在限制变为陈旧时将它们标记为无效,而是对锁定配置文件的改变被立即传播至高速缓存的限制指示信息。通过响应于锁定配置文件改变来立即且动态更新高速缓存的限制指示信息,高速缓存的限制指示信息从不陈旧。
查询处理示例
参考图2,图2是根据一个实施例的指示执行运行时检查所涉及的步骤的流程图。如以上所提到的,在编译时检查已确认发出查询的用户具有执行查询所需的操作所需的特权之后,执行运行时检查。为了解释的目的,将假定所讨论的查询是从与PDB 120相关联的用户接收的。
在步骤200处,数据库服务器102确定查询中指定的操作是否是可能在锁定配置文件中被限制的操作类型。如果不是,则控制传递到步骤212。否则,控制传递到步骤202。
在步骤202处,数据库服务器102检查配置文件到PDB映射152以确定提交查询的用户的PDB是否被映射到任何锁定配置文件。如果否,则控制传递到步骤212。否则,控制传递到步骤204。
在步骤204处,数据库服务器102确定用户的PDB的限制指示信息是否已经驻留在高速缓存中。如果是,则控制传递到步骤206,否则,控制传递到步骤208。在步骤206处,数据库服务器102确定高速缓存的限制指示信息是否有效。如果是,则控制传递到步骤210。否则,控制传递到步骤208。
在步骤208处,数据库服务器102将识别在用户的PDB映射到的锁定配置文件150中指定的限制的限制识别信息加载到易失性存储器中。如以上所提到的,加载限制识别信息可能涉及生成一个或多个受限命令位图和/或生成一个或多个受限特征散列表。然后控制传递到步骤210。
在步骤210处,数据库服务器102基于限制识别信息来确定查询中指定的任何操作/特征是否被限制。如以上所提到的,这个步骤可能涉及考虑特定于用户的豁免、公共对象限制、所需的参数值、由操作创建的任何文件的路径等。如果查询中指定的操作/特征中没有一个被限制,则控制传递到步骤212,在那里执行查询。否则,控制传递到步骤214,在步骤214中生成错误消息而不执行查询。
硬件概述
根据一个实施例,本文所描述的技术由一个或多个专用计算设备实现。专用计算设备可以是硬连线的以执行所述技术,或者可以包括诸如被永久性地编程以执行所述技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)的数字电子设备,或者可以包括编程为按照固件、存储器、其它存储装置或者其组合中的程序指令执行所述技术的一个或多个通用硬件处理器。这种专用计算设备还可以合并定制的硬连线逻辑、ASIC或FPGA与定制的编程来实现所述技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持式设备、联网设备或者结合硬连线和/或程序逻辑来实现所述技术的任何其它设备。
例如,图3是图示本发明的实施例可以在其上实现的计算机系统300的框图。计算机系统300包括总线302或者用于传送信息的其它通信机制,以及与总线302耦合用于处理信息的硬件处理器304。硬件处理器304可以是例如通用微处理器。
计算机系统300还包括耦合到总线302用于存储信息和要由处理器304执行的指令的主存储器306,诸如随机存取存储器(RAM)或其它动态存储设备。主存储器306还可以用于在要由处理器304执行的指令执行期间存储临时变量或其它中间信息。这种指令当被存储在处理器304可访问的非瞬态存储介质中时使计算机系统300变成为被定制以执行指令中所规定的操作的专用机器。
计算机系统300还包括只读存储器(ROM)308或者耦合到总线302的其它静态存储设备,用于为处理器304存储静态信息和指令。提供了存储设备310,诸如磁盘、光盘或固态驱动器,该存储设备310耦合到总线302以用于存储信息和指令。
计算机系统300可以经总线302耦合到诸如阴极射线管(CRT)的显示器312,用于向计算机用户显示信息。输入设备314(包括字母数字和其它键)耦合到总线302,以用于向处理器304传送信息和命令选择。另一种类型的用户输入设备是诸如鼠标、轨迹球或者游标方向键的游标控制316,用于向处理器304传送方向信息和命令选择并且用于控制显示器312上的游标运动。这种输入设备通常具有在两个轴(第一个轴(例如,x)和第二个轴(例如,y))中的两个自由度,以允许设备在平面内指定位置。
计算机系统300可以利用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实现本文所述的技术,这些与计算机系统相结合使计算机系统300或者把计算机系统300编程为专用机器。根据本发明的一种实施例,本文的技术由计算机系统300响应于处理器304执行包含在主存储器306中的一条或多条指令的一个或多个序列而执行。这种指令可以从另一存储介质(诸如存储设备310)读到主存储器306中。包含在主存储器306中的指令序列的执行使处理器304执行本文所述的过程步骤。在备选实施例中,硬连线的电路系统可以代替软件指令或者与其结合使用。
如在本文所使用的,术语“存储介质”是指存储使机器以特定方式操作的数据和/或指令的任何非瞬态介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘、磁盘或固体驱动器,诸如存储设备310。易失性介质包括动态存储器,诸如主存储器306。存储介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带、或者任何其它磁性数据存储介质、CD-ROM、任何其它光学数据存储介质、任何具有孔模式的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带。
存储介质与传输介质截然不同但是可以与其结合使用。传输介质参与在存储介质之间传送信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线302的配线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外线数据通信中产生的那些。
各种形式的介质可以参与把一条或多条指令的一个或多个序列携带到处理器304供执行。例如,指令最初可以承载在远端计算机的磁盘或固态驱动器上。远端计算机可以把指令加载到其动态存储器中并且利用调制解调器经电话线发送指令。位于计算机系统300本地的调制解调器可以在电话线上接收数据,并且使用红外线发送器把数据转换成红外线信号。红外线检测器可以接收在红外线信号中携带的数据,并且适当的电路系统可以把数据放在总线302上。总线302把数据携带到主存储器306,处理器304从该主存储器306检索并执行指令。由主存储器306接收的指令可以可选地在被处理器304执行之前或之后存储在存储设备310上。
计算机系统300还包括耦合到总线302的通信接口318。通信接口318提供与连接到局域网322的网络链接320的双向数据通信耦合。例如,通信接口318可以是综合业务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器,或者提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口318可以是提供与兼容的局域网(LAN)的数据通信连接的LAN卡。也可以实现无线链路。在任何此类实现中,通信接口318都发送和接收携带表示各种类型信息的数字信号流的电信号、电磁信号或光信号。
网络链接320通常通过一个或多个网络提供与其它数据设备的数据通信。例如。网络链接320可以通过局域网322提供与主计算机324或者与由互联网服务提供商(ISP)326操作的数据设备的连接。ISP 326又通过现在通常称为“互联网”328的全球分组数据通信网络提供数据通信服务。局域网322和互联网328都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及在网络链接320上并通过通信接口318的信号是传输介质的示例形式,其中信号把数字数据带到计算机系统300或者携带来自计算机系统300的数字数据。
计算机系统300可以通过(一个或多个)网络、网络链接320和通信接口318发送消息和接收数据,包括程序代码在内。在互联网示例中,服务器330可以通过互联网328、ISP326、局域网322和通信接口318发送对应于程序的所请求代码。
接收到的代码可以在其被接收到时由处理器304执行,和/或存储在存储设备310或其它非易失性存储装置中用于以后执行。
在前面的说明书中,本发明的实施例已经参考众多的具体细节进行了描述,这些细节可以从一种实现到另一种实现不同。因此,说明书和附图被认为是说明性的而不是限制性的。本发明的范围的唯一且排他指示,以及申请人所预期的作为本发明的范围的内容,是从本申请产生的权利要求集合的书面和等效范围,以这种权利要求产生的具体形式,包括任何后续的校正。

Claims (20)

1.一种方法,包括:
在多个可插拔数据库之间共享硬件资源,每个可插拔数据库包含在由容器DBMS管理的容器数据库中;
存储一个或多个配置文件;
其中所述一个或多个配置文件中的每个配置文件指定对应的一组限制;
存储配置文件到可插拔数据库映射信息;
其中所述配置文件到可插拔数据库映射信息将所述多个可插拔数据库中的特定可插拔数据库映射到所述一个或多个配置文件中的特定配置文件;
由所述容器DBMS检测执行特定操作的请求;
响应于检测到所述请求,所述容器DBMS执行以下步骤:
确定所述请求是针对所述特定可插拔数据库的特定用户;
使用所述配置文件到可插拔数据库映射来确定所述特定配置文件被映射到所述特定可插拔数据库;
基于所述特定配置文件中指定的所述一组限制来确定所述特定操作是否是所述特定可插拔数据库的用户被限制执行的操作;
以及
至少部分地基于确定所述特定操作是所述特定可插拔数据库的用户被限制执行的操作,防止所述特定操作的执行。
2.如权利要求1所述的方法,其中存储所述一个或多个配置文件是通过将所述一个或多个配置文件存储在所述容器数据库中来执行的。
3.如权利要求1所述的方法,其中存储所述配置文件到可插拔数据库映射是通过将所述配置文件到可插拔数据库映射存储在所述容器数据库中来执行的。
4.如权利要求1所述的方法,其中所述特定配置文件包括禁止执行其中身份在可插拔数据库之间共享的一个或多个操作的限制。
5.如权利要求1所述的方法,其中所述特定配置文件包括禁止执行其中可插拔数据库的本地用户能够影响所述容器数据库中的共享模式的一个或多个操作的限制。
6.如权利要求1所述的方法,其中所述特定配置文件包括禁止执行与数据库选项有关的一个或多个操作的限制。
7.如权利要求1所述的方法,其中所述特定配置文件包括禁止执行在一个可插拔数据库的用户能够影响其它可插拔数据库的SQL语句级别的一个或多个操作的限制。
8.如权利要求1所述的方法,其中所述特定操作是所述特定用户已被明确授予特权来执行,但由于所述特定配置文件内适用于所述特定可插拔数据库的所有用户的限制而被阻止执行的操作。
9.如权利要求1所述的方法,其中确定所述特定操作是否是所述特定可插拔数据库的用户被限制执行的操作包括使用受限命令位图来确定所述特定操作是否是所述特定可插拔数据库的用户被限制执行的操作。
10.如权利要求9所述的方法,还包括在确定所述特定操作是否被限制之后将所述受限命令位图高速缓存在易失性存储器中,并且当所述特定配置文件被更新时使所述受限命令位图无效。
11.如权利要求1所述的方法,其中确定所述特定操作是否是所述特定可插拔数据库的用户被限制执行的操作包括:
将散列函数应用于所述请求中指定的特征以产生散列值;以及
使用所述散列值访问散列表以确定所述特定操作是否是所述特定可插拔数据库的用户被限制执行的操作。
12.如权利要求11所述的方法,还包括在确定所述特定操作是否被限制之后将所述散列表高速缓存在易失性存储器中,并且当所述特定配置文件被更新时使所述散列表无效。
13.如权利要求1所述的方法,其中所述特定配置文件指示某种类型的命令必须始终包括特定参数值。
14.如权利要求1所述的方法,其中所述特定配置文件指示当所述特定可插拔数据库的用户使所述容器DBMS在所述容器DBMS外部进行调用时,应该使用特定OS用户ID。
15.如权利要求1所述的方法,其中所述特定配置文件指示适用于响应于由所述特定可插拔数据库的用户发出的命令而在所述容器DBMS外部创建的文件的路径限制。
16.如权利要求1所述的方法,其中所述特定配置文件指示仅适用于涉及公共对象的操作的限制。
17.如权利要求1所述的方法,其中所述特定配置文件指示防止所述特定可插拔数据库的用户调用提供网络访问的一个或多个例程的限制。
18.如权利要求1所述的方法,其中所述特定配置文件指示对于所述特定可插拔数据库的至少一个用户的特定于用户的豁免。
19.如权利要求1所述的方法,其中所述特定于用户的豁免适用于所述特定配置文件内的单个限制。
20.存储指令的多种非瞬态计算机可读介质中的一种,当所述指令由一个或多个处理器执行时,使得执行如权利要求1-19中任一项所述的方法。
CN201680061448.1A 2015-10-23 2016-10-21 可插拔数据库锁定配置文件 Active CN108140053B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562245937P 2015-10-23 2015-10-23
US62/245,937 2015-10-23
US15/244,395 2016-08-23
US15/244,395 US10733316B2 (en) 2015-10-23 2016-08-23 Pluggable database lockdown profile
PCT/US2016/058103 WO2017070465A1 (en) 2015-10-23 2016-10-21 Pluggable database lockdown profile

Publications (2)

Publication Number Publication Date
CN108140053A true CN108140053A (zh) 2018-06-08
CN108140053B CN108140053B (zh) 2022-12-06

Family

ID=57233898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680061448.1A Active CN108140053B (zh) 2015-10-23 2016-10-21 可插拔数据库锁定配置文件

Country Status (3)

Country Link
US (1) US10733316B2 (zh)
CN (1) CN108140053B (zh)
WO (1) WO2017070465A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9928147B2 (en) * 2012-09-28 2018-03-27 Oracle International Corporation Forceful closure and automatic recovery of pluggable databases in a shared-everything cluster multitenant container database
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
CN108810013B (zh) * 2018-07-02 2021-12-24 上海浪潮云计算服务有限公司 一种基于容器的服务访问方法
US12050708B2 (en) * 2022-03-11 2024-07-30 Oracle International Corporation Cardinal method for hierarchical phased secure access to system entities in isolated multi-tenant database for autonomous cloud environments

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006045844A1 (en) * 2004-10-29 2006-05-04 Hewlett-Packard Development Company, L.P. Virtual computing infrastructure
US20070294236A1 (en) * 2004-06-25 2007-12-20 Apple Inc. Caching permissions information
CN101685460A (zh) * 2008-09-23 2010-03-31 华为技术有限公司 数据库装置、对共享数据进行处理的方法及系统
US20110153727A1 (en) * 2009-12-17 2011-06-23 Hong Li Cloud federation as a service
CN103500180A (zh) * 2013-09-09 2014-01-08 北京思特奇信息技术股份有限公司 一种基于连接池管理的分布式事务处理方法
US20140095530A1 (en) * 2012-09-28 2014-04-03 Oracle International Corporation Container database

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7010663B2 (en) * 2002-03-22 2006-03-07 Sun Microsystems, Inc. Method and system for dividing a plurality of existing volumes of storage into a plurality of virtual logical units of storage
US7493311B1 (en) 2002-08-01 2009-02-17 Microsoft Corporation Information server and pluggable data sources
US8732856B2 (en) 2004-12-30 2014-05-20 Oracle International Corporation Cross-domain security for data vault
US8140576B1 (en) * 2007-07-19 2012-03-20 Salesforce.Com, Inc. On-demand database service system, method and computer program product for conditionally allowing an application of an entity access to data of another entity
US10411975B2 (en) 2013-03-15 2019-09-10 Csc Agility Platform, Inc. System and method for a cloud computing abstraction with multi-tier deployment policy
US8238256B2 (en) 2008-09-08 2012-08-07 Nugent Raymond M System and method for cloud computing
US8554793B2 (en) * 2010-04-19 2013-10-08 Salesforce.Com, Inc. Methods and systems for providing custom settings in an on-demand service environment
US8706772B2 (en) 2010-12-30 2014-04-22 Sap Ag Strict tenant isolation in multi-tenant enabled systems
US9613092B2 (en) 2010-12-31 2017-04-04 Microsoft Technology Licensing, Llc Allocation of tenants to database services
US9336060B2 (en) 2011-06-17 2016-05-10 Microsoft Technology Licensing, Llc Middleware services framework for on-premises and cloud deployment
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US8615528B2 (en) 2011-07-28 2013-12-24 International Business Machines Corporation Cloud database sharing
US8676864B2 (en) 2011-08-19 2014-03-18 Salesforce.Com, Inc. Methods and systems for providing schema layout in an on-demand services environment
US9350718B2 (en) * 2011-09-29 2016-05-24 Oracle International Corporation Using representational state transfer (REST) for consent management
WO2013138979A1 (en) 2012-03-19 2013-09-26 Empire Technology Development Llc Hybrid multi-tenancy cloud platform
US9218406B2 (en) * 2012-04-26 2015-12-22 Connected Data, Inc. System and method for managing user data in a plurality of storage appliances over a wide area network for collaboration, protection, publication, or sharing
US9026561B2 (en) 2012-07-02 2015-05-05 International Business Machines Corporation Automated report of broken relationships between tables
US9203866B2 (en) 2012-09-07 2015-12-01 Oracle International Corporation Overage framework for cloud services
EP2926266A4 (en) 2012-12-03 2016-04-20 Hewlett Packard Development Co CLOUD OBJECT
EP2767913B1 (en) 2013-02-13 2021-10-06 Facebook, Inc. Hive table links
US9201908B2 (en) 2013-08-22 2015-12-01 Sap Portals Israel Ltd Multi-layered multi-tenancy database architecture
US20150095973A1 (en) 2013-09-27 2015-04-02 Oracle International Corporation Cloud database lockdown
US10536545B2 (en) 2013-09-27 2020-01-14 Oracle International Corporation Cloud database connection multiplexing
US20150095796A1 (en) 2013-09-27 2015-04-02 Oracle International Corporation Loading a database into the cloud
US9961011B2 (en) 2014-01-21 2018-05-01 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US9372635B2 (en) * 2014-06-03 2016-06-21 Ati Technologies Ulc Methods and apparatus for dividing secondary storage
US9462002B2 (en) * 2014-10-10 2016-10-04 Salesforce.Com, Inc. System, method, and computer program product for sharing files based on user profile visibility

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294236A1 (en) * 2004-06-25 2007-12-20 Apple Inc. Caching permissions information
WO2006045844A1 (en) * 2004-10-29 2006-05-04 Hewlett-Packard Development Company, L.P. Virtual computing infrastructure
CN101685460A (zh) * 2008-09-23 2010-03-31 华为技术有限公司 数据库装置、对共享数据进行处理的方法及系统
US20110153727A1 (en) * 2009-12-17 2011-06-23 Hong Li Cloud federation as a service
US20140095530A1 (en) * 2012-09-28 2014-04-03 Oracle International Corporation Container database
CN103500180A (zh) * 2013-09-09 2014-01-08 北京思特奇信息技术股份有限公司 一种基于连接池管理的分布式事务处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GARFIELD ZHIPING WU等: ""Effective and Efficient Bitmaps for Access Control"", 《2014 DATA COMPRESSION CONFERENCE》 *
刘庆等: "《数据库系统概论》", 30 September 2015 *

Also Published As

Publication number Publication date
WO2017070465A1 (en) 2017-04-27
WO2017070465A8 (en) 2017-05-26
US20170116435A1 (en) 2017-04-27
CN108140053B (zh) 2022-12-06
US10733316B2 (en) 2020-08-04

Similar Documents

Publication Publication Date Title
US11308126B2 (en) Different hierarchies of resource data objects for managing system resources
US11128465B2 (en) Zero-knowledge identity verification in a distributed computing system
US11574070B2 (en) Application specific schema extensions for a hierarchical data structure
US9239763B2 (en) Container database
US9465877B2 (en) Globally unique identifiers in an online content management system
US7437362B1 (en) System and methods for nonintrusive database security
US20140215551A1 (en) Controlling access to shared content in an online content management system
US9600685B2 (en) Destruction of sensitive information
US20150095973A1 (en) Cloud database lockdown
CN108140053A (zh) 可插拔数据库锁定配置文件
US11762775B2 (en) Systems and methods for implementing overlapping data caching for object application program interfaces
US11188555B2 (en) Isolating a network stack for pluggable databases
US11113110B2 (en) Intelligent pooling of isolated hierarchical runtimes for cloud scale databases in a multi-tenant environment
EP3704581A1 (en) Dynamic rule-based transformation of api calls
US10942945B2 (en) Isolated hierarchical runtime environments for multi-tenant databases
KR20140048396A (ko) 클라우드 스토리지 서비스의 파일 검색 시스템 및 방법, 및 파일 제어 방법
WO2020253344A1 (zh) 一种授权控制的方法、装置以及存储介质
US10685019B2 (en) Secure query interface
US11711314B1 (en) Grouping resource metadata tags
US11157454B2 (en) Event-based synchronization in a file sharing environment
US11366810B2 (en) Index contention under high concurrency in a database system
US20220353241A1 (en) Policy compilation and dissemination as a layer 7 firewall
US20220353298A1 (en) Embedded and distributable policy enforcement
CA3194167A1 (en) System and method for exchange of data without sharing personally identifiable information

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant