DE202018006529U1 - Common use or sharing of data in a multi-tenant database system - Google Patents

Common use or sharing of data in a multi-tenant database system Download PDF

Info

Publication number
DE202018006529U1
DE202018006529U1 DE202018006529.3U DE202018006529U DE202018006529U1 DE 202018006529 U1 DE202018006529 U1 DE 202018006529U1 DE 202018006529 U DE202018006529 U DE 202018006529U DE 202018006529 U1 DE202018006529 U1 DE 202018006529U1
Authority
DE
Germany
Prior art keywords
account
database
access rights
access
alias
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.)
Active
Application number
DE202018006529.3U
Other languages
German (de)
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.)
Snowflake Inc
Original Assignee
Snowflake Inc
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 Snowflake Inc filed Critical Snowflake Inc
Publication of DE202018006529U1 publication Critical patent/DE202018006529U1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy

Abstract

System umfassend:
Mittel zum Bestimmen, dass ein erstes Konto einer mandantenfähigen Datenbank einem zweiten Konto einer mandantenfähigen Datenbank Zugriffsrechte eines Teilungsobjekts in dem ersten Account gewährt, wobei das Teilungsobjekt Zugriffsrechte auf ein Datenbankobjekt des ersten Kontos gewährt und wobei Zugriff auf das Datenbankobjekt des ersten Kontos durch das zweite Konto auf den Zugriffsrechten des Teilungsobjekts basiert;
Mittel zum Erzeugen eines Alias-Objekts, das auf das Datenbankobjekt des ersten Kontos Bezug nimmt und als Proxy des Datenbankobjekts dient;
Mittel zum Verknüpfen des Alias-Objekts mit dem Datenbankobjekt; und
Mittel zum Gewähren der Zugriffsrechte des zweiten Kontos auf das Alias-Objekt, so dass das zweite Konto mit den Zugriffsrechten des Teilungsobjekts und über das Alias-Objekt auf das Datenbankobjekt zugreift, ohne das Datenbankobjekt zu kopieren.

Figure DE202018006529U1_0000
System comprehensive:
Means for determining that a first multi-tenant database account grants a second multi-tenant database account access rights to a shared object in the first account, the shared object grants access rights to a database object of the first account, and the second account having access to the database object of the first account based on the access rights of the shared object;
Means for generating an alias object which refers to the database object of the first account and serves as a proxy for the database object;
Means for linking the alias object to the database object; and
Means for granting the access rights of the second account to the alias object, so that the second account accesses the database object with the access rights of the sharing object and via the alias object without copying the database object.
Figure DE202018006529U1_0000

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die vorliegende Offenbarung betrifft Datenbanken und betrifft genauer ein gemeinsames Nutzen bzw. Teilen von Daten in einem mandantenfähigen Datenbanksystem.The present disclosure relates to databases and, more precisely, relates to sharing data in a multi-tenant database system.

Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.In accordance with the provisions of the Utility Model Act, only devices as defined in the attached claims are subject to protection and the subject of the utility model, but no processes. Insofar as reference is made to methods in the description below, these references only serve to explain the device or devices under protection in the attached claims by way of example.

HINTERGRUNDBACKGROUND

Datenbanken werden für eine Speicherung von und einen Zugriff auf Daten bei Computeranwendungen weit verbreitet verwendet. Datenbanken können eine oder mehrere Tabellen enthalten, die Daten enthalten oder darauf Bezug nehmen, die unter Verwendung von Anfragen gelesen, modifiziert oder gelöscht werden können. Datenbanken können zum Speichern von persönlicher Information oder anderer vertraulicher bzw. sensibler Information und/oder zum Zugreifen darauf verwendet werden. Ein sicheres Speichern von und Zugreifen auf Datenbankdaten können durch Verschlüsseln und/oder Speichern von Daten in einer verschlüsselten Form zur Verfügung gestellt werden, um einen nicht autorisierten Zugriff zu verhindern. In einigen Fällen kann ein Teilen von Daten erwünscht sein, um andere Parteien Anfragen gegenüber einer Gruppe von Daten durchführen zu lassen.Databases are widely used for storing and accessing data in computer applications. Databases can contain one or more tables that contain or refer to data that can be read, modified, or deleted using queries. Databases can be used to store and / or access personal information or other confidential or sensitive information. Secure storage of and access to database data can be provided by encrypting and / or storing data in an encrypted form to prevent unauthorized access. In some cases it may be desirable to share data to allow other parties to make inquiries against a group of data.

FigurenlisteFigure list

Nicht beschränkende und nicht erschöpfende Implementierungen der vorliegenden Offenbarung werden unter Bezugnahme auf die folgenden Figuren beschrieben, wobei sich gleiche Bezugszeichen auf gleiche oder ähnliche Teile in allen verschiedenen Ansichten beziehen, solange nichts anderes spezifiziert ist. Vorteile der vorliegenden Offenbarung werden Bezug nehmend auf die folgende Beschreibung und die beigefügten Zeichnungen besser verstanden werden, wobei:

  • 1 ein schematisches Blockdiagramm ist, das Konten in einer mandantenfähigen Datenbank gemäß einer Ausführungsform darstellt;
  • 2 ein schematisches Diagramm ist, das ein System zum Bereitstellen von Datenbankdiensten und zum Zugreifen darauf gemäß einer Ausführungsform darstellt;
  • 3 ein schematisches Diagramm ist, das eine mandantenfähige Datenbank mit einer Trennung von Speicher- und Computerressourcen gemäß einer Ausführungsform darstellt;
  • 4 ein schematisches Blockdiagramm ist, das Objekthierarchien gemäß einer Ausführungsform darstellt;
  • 5 ein schematisches Diagramm ist, das einen auf einer Rolle basierenden Zugriff gemäß einer Ausführungsform darstellt;
  • 6 ein schematisches Diagramm ist, das eine Verwendungsgewährung zwischen Rollen gemäß einer Ausführungsform darstellt;
  • 7 ein schematisches Diagramm ist, das ein Teilungsobjekt gemäß einer Ausführungsform darstellt;
  • 8 ein schematisches Diagramm ist, das kontenübergreifende Gewährungen gemäß einer Ausführungsform darstellt;
  • 9 ein schematisches Blockdiagramm ist, das Komponenten einer Teilungskomponente gemäß einer Ausführungsform darstellt;
  • 10 ein schematisches Ablaufplandiagramm ist, das ein Verfahren zum gemeinsamen Nutzen bzw. Teilen von Datenbankdaten zwischen Konten gemäß einer Ausführungsform darstellt; und
  • 11 ein Blockdiagramm ist, das eine beispielhafte Computervorrichtung oder ein System gemäß einem oder mehreren hierin offenbarten Ausführungsformen darstellt.
Non-limiting and non-exhaustive implementations of the present disclosure are described with reference to the following figures, wherein like reference characters refer to the same or like parts throughout the different views, unless otherwise specified. Advantages of the present disclosure will be better understood with reference to the following description and accompanying drawings, wherein:
  • 1 Figure 3 is a schematic block diagram illustrating accounts in a multi-tenant database according to one embodiment;
  • 2 Figure 3 is a schematic diagram illustrating a system for providing and accessing database services according to one embodiment;
  • 3 Figure 3 is a schematic diagram illustrating a multi-tenant database with a separation of storage and computing resources according to one embodiment;
  • 4th Figure 3 is a schematic block diagram illustrating object hierarchies according to one embodiment;
  • 5 Figure 3 is a schematic diagram illustrating role-based access according to an embodiment;
  • 6th Figure 3 is a schematic diagram illustrating usage granting between roles according to one embodiment;
  • 7th Figure 13 is a schematic diagram illustrating a partition object according to an embodiment;
  • 8th Figure 13 is a schematic diagram illustrating cross-account grants according to one embodiment;
  • 9 Figure 3 is a schematic block diagram illustrating components of a partition component according to an embodiment;
  • 10 Figure 13 is a schematic flow diagram diagram illustrating a method for sharing database data between accounts, according to one embodiment; and
  • 11 Figure 3 is a block diagram illustrating an exemplary computing device or system in accordance with one or more embodiments disclosed herein.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Mandantenfähige Datenbanken oder mandantenfähige universellen Datenbanken bzw. Datenlager unterstützen mehrere unterschiedliche Kundenkonten auf einmal. Als ein Beispiel ist 1 ein schematisches Blockdiagramm, das eine mandantenfähige Datenbank oder eine universelle Datenbank darstellt, die viele unterschiedliche Kundenkonten A1, A2, A3, An, etc. unterstützt. Kundenkonten können durch mehrere Sicherheitskontrollen getrennt sein, einschließlich unterschiedlicher einheitlicher Ressourcenzeiger (URLs), um mit unterschiedlichen Anmeldedaten, unterschiedlichen Datenspeicherorten (wie beispielsweise Amazon Web Services S3 Buckets) und unterschiedlichen Kontenebenen-Verschlüsselungsschlüsseln zu verbinden. Somit kann jedem Kunden nur erlaubt werden, die eigenen Daten des Kunden zu sehen, zu lesen und/oder zu schreiben. Durch konstruktive Maßnahmen kann es für einen Kunden unmöglich sein, Daten eines anderen Kunden zu sehen, zu lesen oder zu schreiben. In einigen Fällen ist die strenge Trennung von Kundenkonten das Rückgrat einer mandantenfähigen universellen Datenbank bzw. eines mandantenfähigen Datenlagers oder eines Datenbanksystems.Multi-tenant databases or multi-tenant universal databases or data warehouses support several different customer accounts at once. As an example is 1 Figure 3 is a schematic block diagram illustrating a multi-tenant database or a universal database containing many different customer accounts A1 , A2 , A3 , To, etc. supported. Customer accounts can be separated by multiple security controls, including different unified resource pointers (URLs) to access different credentials, different data locations (such as Amazon Web Services S3 Buckets) and different account level encryption keys. Thus, each customer can only be allowed to see, read and / or write their own data. Constructive measures can make it impossible for a customer to see, read or write data from another customer. In some cases the strict separation of Customer accounts are the backbone of a multi-tenant universal database or a multi-tenant data warehouse or database system.

Die Anmelder haben erkannt, dass es manchmal erwünscht sein kann, ein kontenübergreifendes Teilen von Daten zuzulassen. Jedoch lässt kein gegenwärtiges mandantenfähiges Datenbanksystem ein Teilen bzw. gemeinsames Nutzen von Daten zwischen unterschiedlichen Kundenkonten auf sofortige, kopierfreie, einfach steuerbare bzw. kontrollierbare Weise zu. Existierende Online-Datenlager, wie beispielsweise Amazon Redshift® unterstützen kein Teilen von Daten ohne physikalisches Kopieren von Daten. On-Premises-Datenbanksysteme, wie beispielsweise Oracle Database Server® oder Microsoft SQL Server® unterstützen keine Online-Datenteilung per Definition aufgrund der physikalischen Verteilung von individuellen Datenban kinstallationen.Applicants have recognized that it may sometimes be desirable to allow data sharing across accounts. However, no current multi-tenant database system allows sharing or common use of data between different customer accounts in an immediate, copy-free, easily controllable or controllable manner. Existing online data warehouses such as Amazon Redshift® do not support data sharing without physically copying data. On-premises database systems such as Oracle Database Server® or Microsoft SQL Server® do not support online data sharing by definition due to the physical distribution of individual database installations.

Basierend auf dem vorangehenden hat der Anmelder Systeme, Verfahren und Vorrichtungen für ein mandantenfähiges Online-Datenbanksystem entwickelt. Einige Ausführungsformen lassen ein Teilen von Daten zwischen verschiedenen Kundenkonten zu und können veranlassen, dass die Daten ohne die Notwendigkeit, Daten zu kopieren, sofort zugreifbar sind. Einige Ausführungsformen stellen einen Zugriff auf Daten unter Verwendung von feinkörnigen Steuerungen zur Verfügung, um eine Trennung von erwünschten Daten beizubehalten, während ein Zugriff auf Daten zugelassen wird, die ein Kunde zu teilen wünscht.Based on the foregoing, the applicant has developed systems, methods and devices for a multi-tenant online database system. Some embodiments allow data to be shared between different customer accounts and can make the data instantly accessible without the need to copy data. Some embodiments provide access to data using fine grain controls to maintain separation from desired data while allowing access to data that a customer wishes to share.

Gemäß einer Ausführungsform enthält ein computerimplementiertes Verfahren ein Erzeugen eines Teilungsobjekts in einem ersten Konto, das eine Teilungsrolle umfasst. Das Verfahren enthält ein Assoziieren von einem oder mehreren Zugriffsrechten mit der Teilungsrolle, wobei das eine oder die mehreren Zugriffsrechte basierend auf dem Teilungsobjekt anzeigen, welche Objekte in dem ersten Konto zugreifbar sind. Das Verfahren enthält ein Gewähren von kontenübergreifenden Zugriffsrechten zu der Teilungsrolle oder dem Teilungsobjekt im ersten Konto für ein zweites Konto. Das Verfahren enthält weiterhin ein Empfangen einer Aufforderung vom zweiten Konto, auf Daten oder Dienste des ersten Kontos zuzugreifen, und ein Bereitstellen einer Reaktion bzw. Antwort zu dem zweiten Konto basierend auf den Daten oder Diensten des ersten Kontos.According to one embodiment, a computer-implemented method includes creating a sharing object in a first account that includes a sharing role. The method includes associating one or more access rights with the sharing role, the one or more access rights indicating which objects are accessible in the first account based on the sharing object. The method includes granting cross-account access rights to the sharing role or object in the first account for a second account. The method further includes receiving a request from the second account to access data or services of the first account and providing a response to the second account based on the data or services of the first account.

Gemäß einer Ausführungsform enthält ein mandantenfähiges Datenbanksystem eine Komponente für kontenübergreifende Zugriffsrechte, eine Alis-Komponente und eine Zugriffskomponente. Die Komponente für kontenübergreifende Zugriffsrechte ist konfiguriert, um zu bestimmen, dass kontenübergreifende Zugriffsrechte auf eine oder mehrere geteilte Ressourcen einem Zielkonto durch ein Teilerkonto gewährt worden sind. Die Alias-Komponente ist konfiguriert, um im Zielkonto ein Alias-Objekt entsprechend einer geteilten Ressource von der einen oder den mehreren geteilten Ressourcen im Teilerkonto zu erzeugen. Die Zugriffskomponente ist konfiguriert, um zuzulassen, dass das Zielkonto unter Verwendung einer zu dem Alias-Objekt gerichteten Aufforderung auf die geteilte Ressource zugreift.According to one embodiment, a multi-tenant database system contains a component for cross-account access rights, an ALIS component and an access component. The cross-account access component is configured to determine that cross-account access to one or more shared resources has been granted to a target account by a sharing account. The alias component is configured to create an alias object in the target account corresponding to a shared resource from the one or more shared resources in the sharing account. The access component is configured to allow the target account to access the shared resource using a request directed to the alias object.

Gemäß einer weiteren Ausführungsform enthält ein Verfahren zum Bereitstellen eines Zugriffs auf geteilte Daten in einer mandantenfähigen Datenbank ein Bestimmen, dass ein erstes Konto einem zweiten Konto einen Zugriff auf ein Datenbankobjekt des ersten Kontos gewährt hat. Das Verfahren enthält ein Empfangen einer Aufforderung vom zweiten Konto, auf das Datenobjekt entsprechend dem ersten Konto zuzugreifen. Das Verfahren enthält ein Verarbeiten der Aufforderung unter Verwendung einer virtuellen universellen Datenbank bzw. eines virtuellen Lagers entsprechend dem ersten Konto. Das virtuelle Lager enthält eine Gruppe von einem oder mehreren Computer- bzw. Rechenknoten, die konfiguriert sind, um auf Daten in einer Speicherschicht entsprechend dem ersten Konto zuzugreifen, um eine Reaktion bzw. Antwort auf die Aufforderung zu erzeugen.According to a further embodiment, a method for providing access to shared data in a multi-tenant database includes determining that a first account has granted a second account access to a database object of the first account. The method includes receiving a request from the second account to access the data object corresponding to the first account. The method includes processing the request using a virtual universal database or virtual warehouse corresponding to the first account. The virtual warehouse includes a group of one or more computing nodes configured to access data in a storage tier corresponding to the first account to generate a response to the prompt.

Hierin offenbarte Ausführungsformen stellen Technologie zur Verfügung, die zum Teilen von Daten zwischen unterschiedlichen Kundenkonten in einer Online-Datenbank und/oder einem Online-Datenlager verwendet werden kann. Bei einer Ausführungsform wird ein Teilen von Daten unter Verwendung von kontenübergreifenden Rollengewährungen ermöglicht, die zulassen, dass Anwender in einem Kundenkonto auf Daten in einem anderen Kundenkonto ohne die Notwendigkeit, Daten zu kopieren, auf eine gesteuerte bzw. kontrollierte und sofortige Weise zugreifen. Zum Beispiel können die geteilten Daten innerhalb des teilenden Kontos bleiben, während zugelassen wird, dass ein fremdes Konto Anfragen oder andere Prozesse innerhalb ihrer Rechte (z.B. Lesen, Schreiben, etc.) an dem Konto durchführt.Embodiments disclosed herein provide technology that can be used to share data between different customer accounts in an online database and / or an online data warehouse. In one embodiment, data sharing is enabled using cross-account role grants that allow users in one customer account to access data in another customer account in a controlled and immediate manner without the need to copy data. For example, the shared data can remain within the sharing account while a foreign account is allowed to perform queries or other processes within its rights (e.g. read, write, etc.) on the account.

Hierin offenbarte Ausführungsformen können für eine Vielfalt von Anwendungen verwendet werden. Bei einer Ausführungsform kann ein Datenbankbesitzer eine Abtastdatengruppe mit neuen Kundenkonten für Tutorien bzw. Anleitungen und/oder eine Einführung teilen. Bei einer Ausführungsform können Demodatengruppen von einem Konto mit Demokonten zum Demonstrieren bzw. Vorführen eines Datenlagers oder eines anderen Dienstes zu potentiellen Kunden geteilt werden. Bei einer Ausführungsform können durch einen Datenbank-Provider einer einen Host gesammelte Nutzungsdaten auf einfache Weise mit Kundenkonten geteilt werden. Bei einer Ausführungsform können öffentlich verfügbare Datengruppen von einem zentralen Konto mit Kundenkonten geteilt werden, so dass Kundenkonten die Daten selbst nicht zu sich nehmen müssen. Bei einer Ausführungsform wird zugelassen, dass Kunden Daten mit anderen Kunden für einen einfacheren Zugriff auf geteilte Ressourcen ohne die Notwendigkeit teilen, die Daten physikalisch zu kopieren oder zu übertragen. Bei einer Ausführungsform wird zugelassen, dass Kunden Daten zur Untersuchung von Unterstützungs- bzw. Hilfsangelegenheiten auf einfache Weise mit einem Administrator teilen. Gemäß einer Ausführungsform können Kunden oder andere Kontenhalter/-besitzer Information über ihre Daten auf einem Marktplatz für einen Kauf/eine Teilnahme auflisten. Zum Beispiel stellen einige Ausführungsformen einen Marktplatz zur Verfügung, um Datengruppen zwischen Kundenkonten einer mandantenfähigen Datenbank oder eines Datenlagers zu kaufen und verkaufen.Embodiments disclosed herein can be used for a variety of applications. In one embodiment, a database owner can share a scan data group with new customer accounts for tutorials and / or an introduction. In one embodiment, demo data groups can be shared by an account with demo accounts for demonstrating a data warehouse or other service to potential customers. In one embodiment, usage data collected by a database provider of a host can be easily shared with customer accounts. In one embodiment, groups of publicly available data from a central account can be shared with customer accounts so that customer accounts can use the Do not have to take in data yourself. In one embodiment, customers are allowed to share data with other customers for easier access to shared resources without the need to physically copy or transfer the data. In one embodiment, customers are allowed to easily share data with an administrator to investigate support issues. According to one embodiment, customers or other account holders / owners can list information about their data in a marketplace for purchase / participation. For example, some embodiments provide a marketplace to buy and sell sets of data between customer accounts of a multi-tenant database or data warehouse.

Eine detaillierte Beschreibung von Systemen und Verfahren gemäß Ausführungsformen der vorliegenden Offenbarung wird nachstehend zur Verfügung gestellt. Während mehrere Ausführungsformen beschrieben werden, sollte es verstanden werden, dass diese Offenbarung nicht auf irgendeine Ausführungsform beschränkt ist, sondern stattdessen zahlreiche Alternativen, Modifikationen und Äquivalente umfasst. Zusätzlich können, während in der folgenden Beschreibung zahlreiche spezifische Details dargelegt sind, um ein vollständiges Verstehen der hierin offenbarten Ausführungsformen zur Verfügung zu stellen, einige Ausführungsformen ohne einige oder alle dieser Details praktiziert werden. Darüber hinaus ist der Klarheit halber bestimmtes technisches Material, das im zugehörigen Stand der Technik bekannt ist, nicht detailliert beschrieben worden, um ein unnötiges Verdunkeln der Offenbarung zu vermeiden.A detailed description of systems and methods in accordance with embodiments of the present disclosure is provided below. While several embodiments are described, it should be understood that this disclosure is not limited to any one embodiment, but instead encompasses numerous alternatives, modifications, and equivalents. In addition, while numerous specific details are set forth in the following description in order to provide a thorough understanding of the embodiments disclosed herein, some embodiments may be practiced without some or all of these details. Furthermore, for the sake of clarity, certain technical material known in the related art has not been described in detail in order to avoid unnecessarily obscuring the disclosure.

2 ist ein schematisches Diagramm eines Systems 200 zum Bereitstellen von Daten oder Diensten einer Datenbank und zum Zugreifen darauf. Das System 200 enthält ein Datenbanksystem 202, einen oder mehrere Server 204 und ein Client-Computersystem 206. Das Datenbanksystem 202, der eine oder die mehreren Server 204 und/oder das Client-Computersystem 206 können durch ein Netzwerk 208, wie beispielsweise das Internet, miteinander kommunizieren. Zum Beispiel kann oder können der eine oder die mehreren Server 204 und/oder das Client-Computersystem 206 über das Netzwerk 208 auf das Datenbanksystem 202 zugreifen, um eine Datenbank anzufragen und/oder Daten von einer Datenbank zu empfangen. Die Daten von der Datenbank können durch den einen oder die mehreren Server 204 oder das Client-Computersystem 206 für irgendeinen Typ von Computeranwendung verwendet werden. Bei einer Ausführungsform ist das Datenbanksystem 202 ein mandantenfähiges Datenbanksystem, das ein Host für Daten für eine Vielzahl von unterschiedlichen Konten ist. 2 Figure 3 is a schematic diagram of a system 200 to provide data or services in a database and to access them. The system 200 contains a database system 202 , one or more servers 204 and a client computer system 206 . The database system 202 , the one or more servers 204 and / or the client computer system 206 can through a network 208 such as the Internet, communicate with each other. For example, the one or more servers may or may not 204 and / or the client computer system 206 over the network 208 on the database system 202 access to query a database and / or to receive data from a database. The data from the database can be used by the one or more servers 204 or the client computer system 206 be used for any type of computer application. In one embodiment, the database system is 202 a multi-tenant database system that hosts data for a variety of different accounts.

Das Datenbanksystem 202 enthält eine Teilungskomponente 210 und einen Speicher 212. Der Speicher 212 kann Speichermedien zum Speichern von Daten enthalten. Zum Beispiel kann der Speicher 212 eine oder mehrere Speichervorrichtungen zum Speichern von Datenbanktabellen, Schemen, Verschlüsselungsschlüsseln, Datendateien oder irgendwelchen anderen Daten enthalten. Die Teilungskomponente 210 kann Hardware und/oder Software zum Ermöglichen des kontenübergreifenden Teilens von Daten oder Diensten enthalten. Zum Beispiel kann die Teilungskomponente 210 von entfernten Vorrichtungen empfangene Anfragen/Anweisungen verarbeiten, um auf geteilte Daten zuzugreifen oder Daten zu teilen. Die Anfragen/Anweisungen können von den Servern 204 oder dem Client-Computersystem 206 empfangen werden. Bei einer Ausführungsform ist die Teilungskomponente 210 konfiguriert, um ein Teilen von Daten zwischen Konten ohne ein Erzeugen von Duplikat-Kopien von Tabellen, Daten oder ähnlichem außerhalb des teilenden Kontos zuzulassen. Zum Beispiel kann die Teilungskomponente zulassen, dass einem teilenden Konto zugeteilte Computerressourcen irgendwelche durch ein fremdes Konto bereitgestellte Anfragen oder Anweisungen durchführen.The database system 202 contains a dividing component 210 and a memory 212 . The memory 212 may contain storage media for storing data. For example, the memory 212 contain one or more storage devices for storing database tables, schemes, encryption keys, data files, or any other data. The dividing component 210 may contain hardware and / or software to enable cross-account sharing of data or services. For example, the dividing component 210 process requests / instructions received from remote devices to access or share data. The requests / instructions can be sent by the servers 204 or the client computer system 206 be received. In one embodiment, the partition component is 210 configured to allow sharing of data between accounts without creating duplicate copies of tables, data, or the like outside of the sharing account. For example, the sharing component may allow computer resources allocated to a sharing account to perform any queries or instructions provided by a foreign account.

Bei einer Ausführungsform können Speicher- und Computerressourcen für ein Datenbanksystem 100 logisch und/oder physikalisch getrennt sein. Bei einer Ausführungsform ist ein Speicher eine gemeinsame, geteilte Ressource quer über alle Konten. Computerressourcen können unabhängig, pro Konto, als virtuelle Lager eingerichtet sein. Bei einer Ausführungsform ist ein virtuelles Lager eine Gruppe von Computerknoten, die auf Daten in einer Speicherschicht zugreifen und ein Anfrageergebnis berechnen. Ein Trennen der Computerknoten oder -ressourcen vom Speicher lässt ein Skalieren von jeder Schicht unabhängig zu. Ein Trennen von Speichern und Berechnen lässt auch zu, dass geteilte Daten durch unterschiedliche Konten unabhängig verarbeitet werden können, ohne dass die Berechnung in einem Konto die Berechnung in anderen Konten beeinflusst. Das bedeutet, dass es bei wenigstens einigen Ausführungsformen keinen Zugangskonflikt unter Computerressourcen gibt, wenn Anfragen an geteilten Daten laufen bzw. in Betrieb sind.In one embodiment, memory and computer resources for a database system 100 be logically and / or physically separated. In one embodiment, a store is a common, shared resource across all accounts. Computer resources can be set up independently, per account, as virtual warehouses. In one embodiment, a virtual warehouse is a group of computer nodes that access data in a storage tier and compute a query result. Separating the compute nodes or resources from storage allows each tier to scale independently. Separating storage and calculation also allows shared data to be processed independently by different accounts without the calculation in one account affecting the calculation in other accounts. That is, in at least some embodiments there is no access contention among computer resources when shared data requests are in progress.

3 ist ein schematisches Blockdiagramm einer mandantenfähigen Datenbank 300, das eine Trennung von Speicher- und Computerressourcen darstellt. Zum Beispiel kann die mandantenfähige Datenbank 300 ein Datenlager sein, wo eine Vielzahl von unterschiedlichen Konten (A1, A2, A3 bis An) gehosted sind. In 3 hat das Konto A1 drei virtuelle Lager laufend bzw. in Betrieb, hat das Konto A2 ein virtuelles Lager laufend bzw. in Betrieb und hat das Konto A3 kein virtuelles Lager laufend bzw. in Betrieb. Bei einer Ausführungsform haben alle dieser virtuellen Lager einen Zugriff auf die Speicherschicht, die von den Computerknoten der virtuellen Lager getrennt ist. Bei einer Ausführungsform können die virtuellen Lager basierend auf einer aktuellen Arbeitslast für ein Konto dynamisch zur Verfügung gestellt oder entfernt werden. 3 Figure 3 is a schematic block diagram of a multi-tenant database 300 , which represents a separation of memory and computer resources. For example, the multi-tenant database 300 be a data warehouse where a multitude of different accounts ( A1 , A2 , A3 until An) are hosted. In 3 has the account A1 The account has three virtual warehouses running or in operation A2 a virtual warehouse running or in operation and has the account A3 no virtual warehouse running or in operation. In one embodiment, all of these have virtual warehouse provides access to the storage layer that is separate from the computer nodes of the virtual warehouse. In one embodiment, the virtual warehouses can be dynamically made available or removed for an account based on a current workload.

Bei einer Ausführungsform verwendet ein Datenbanksystem 300 Objekthierarchien in Konten. Zum Beispiel kann jedes Kundenkonto Objekthierarchien enthalten. Objekthierarchien sind oft in Datenbanken verwurzelt. Zum Beispiel können Datenbanken Schemen enthalten und Schemen können wiederum Objekte, wie beispielsweise Tabellen, Ansichten, Sequenzen, Dateiformate und Funktionen, enthalten. Jedes dieser Objekte dient einem speziellen Zweck: Tabellen speichern relationale oder semistrukturierte Daten; Ansichten definieren logische Abstraktionen über die gespeicherten Daten; Sequenzen stellen Mittel zu Verfügung, um immer größer werdende Zahlen zu erzeugen; Dateiformate definieren Wege, um aufgenommene Daten zu parsen bzw. zu zerlegen; und Funktionen halten anwenderdefinierte Ausführungsprozeduren.In one embodiment, uses a database system 300 Object hierarchies in accounts. For example, each customer account can contain object hierarchies. Object hierarchies are often rooted in databases. For example, databases can contain schemes and schemes in turn can contain objects such as tables, views, sequences, file formats and functions. Each of these objects has a specific purpose: tables store relational or semi-structured data; Views define logical abstractions about the stored data; Sequences provide a means to generate ever increasing numbers; File formats define ways to parse or break down recorded data; and functions hold user-defined execution procedures.

4 ist ein schematisches Blockdiagramm, das Objekthierarchien innerhalb von Kundenkonten darstellt. Spezifisch können Konten Hierarchien von Objekten enthalten, auf die in einer Datenbank Bezug genommen werden kann. Zum Beispiel enthält das Kundenkonto A1 zwei Datenbankenobjekte D1 und D2. Das Datenbankobjekt D1 enthält eine Schemaobjekt S1, das wiederum ein Tabellenobjekt T1 und ein Ansichtsobjekt V1 enthält. Das Datenbankobjekt D2 enthält ein Schemaobjekt S2, das ein Funktionsobjekt F2, ein Sequenzobjekt Q2 und ein Tabellenobjekt T2 enthält. Das Kundenkonto A2 enthält ein Datenbankobjekt D3 mit einem Schemaobjekt S3 und einem Tabellenobjekt T3. Die Objekthierarchien können steuern bzw. kontrollieren, wie auf Objekte, Daten, Funktionen oder andere Information oder Dienste eines Kontos oder Datenbanksystems zugegriffen oder Bezug genommen wird. 4th Figure 4 is a schematic block diagram illustrating object hierarchies within customer accounts. Specifically, accounts can contain hierarchies of objects that can be referenced in a database. For example, the customer account contains A1 two database objects D1 and D2 . The database object D1 contains a schema object S1 which in turn is a table object T1 and a view object V1 contains. The database object D2 contains a schema object S2 that is a function object F2 , a sequence object Q2 and a table object T2 contains. The customer account A2 contains a database object D3 with a schema object S3 and a table object T3 . The object hierarchies can control or control how objects, data, functions or other information or services of an account or database system are accessed or referenced.

Bei einer Ausführungsform implementiert ein Datenbanksystem eine rollenbasierte Zugriffssteuerung, um einen Zugriff auf Objekte in Kundenkonten zu regeln. Allgemein besteht eine rollenbasierte Zugriffssteuerung aus zwei Grundprinzipien: Rollen und Gewährungen. Bei einer Ausführungsform sind Rollen spezielle Objekte in einem Kundenkonto, die Anwendern zugeordnet sind. Gewährungen zwischen Rollen und Datenbankobjekten definieren, welche Privilegien eine Rolle an diesen Objekten hat. Zum Beispiel kann eine Rolle, die eine Nutzungsgewährung an einer Datenbank hat, diese Datenbank „sehen“, wenn der Befehl „Datenbanken zeigen“ ausgeführt wird; eine Rolle, die eine Auswahlgewährung bzw. -erlaubnis an einer Tabelle hat, kann aus dieser Tabelle lesen, aber nicht zu dieser Tabelle schreiben. Die Rolle würde eine Modifizierungsgewährung an der Tabelle haben müssen, um zu ihr schreiben zu können.In one embodiment, a database system implements role-based access control to regulate access to objects in customer accounts. In general, role-based access control consists of two basic principles: roles and grants. In one embodiment, roles are special objects in a customer account that are assigned to users. Grants between roles and database objects define which privileges a role has on these objects. For example, a role that has a grant to use a database can "see" that database when the "Show Databases" command is executed; a role that has a selection grant or permission to a table can read from this table, but cannot write to this table. The role would have to have a modification grant to the table in order to write to it.

5 ist ein schematisches Blockdiagramm, das einen rollenbasierten Zugriff auf Objekte in Kundenkonten darstellt. Ein Kundenkonto A1 enthält eine Rolle R1, die Gewährungen bzw. Erlaubnisse zu allen Objekten in der Objekthierarchie hat. Unter Annahme, dass diese Gewährungen Nutzungsgewährungen zwischen R1 und D1, D2, S1, S2 und Auswahlgewährungen zwischen R1 und T1, V1, F2, Q2, T2 sind, kann ein Anwender mit aktivierter Rolle R1 innerhalb der Kontos A1 alle Objekte sehen und Daten von allen Tabellen, Ansichten und Sequenzen lesen und kann die Funktion F2 ausführen. Ein Anwenderkonto A2 enthält eine Rolle R3, die Gewährungen zu allen Objekten in der Objekthierarchie hat. Unter Annahme, dass diese Gewährungen Nutzungsgewährungen zwischen R3 und D3, S3 und Auswahlgewährungen zwischen R3 und T3 sind, kann ein Anwender mit aktivierter Rolle R3 innerhalb des Kontos A2 alle Objekte sehen und Daten von allen Tabellen, Ansichten und Sequenzen lesen. 5 Figure 3 is a schematic block diagram illustrating role-based access to objects in customer accounts. A customer account A1 contains a role R1 that has grants or permissions to all objects in the object hierarchy. Assuming that these grants are grants of use between R1 and D1 , D2 , S1 , S2 and selection grants between R1 and T1 , V1 , F2 , Q2 , T2 can be a user with an activated role R1 within the account A1 see all objects and read data from all tables, views and sequences and can use the function F2 To run. A user account A2 contains a role R3 that has grants to all objects in the object hierarchy. Assuming that these grants are grants of use between R3 and D3 , S3 and selection grants between R3 and T3 can be a user with an activated role R3 within the account A2 see all objects and read data from all tables, views and sequences.

6 stellt eine Nutzungsgewährung zwischen Rollen dar. Mit einer rollenbasierten Zugriffssteuerung ist es auch möglich, eine Nutzung von einer Rolle zu einer anderen Rolle zu gewähren. Eine Rolle, die eine Nutzungsgewährung zu einer anderen Rolle hat, „erbt bzw. übernimmt“ alle Zugriffsprivilegien der anderen Rolle. Zum Beispiel hat eine Rolle R2 eine Nutzungsgewährung an der Rolle R1. Ein Anwender (z.B. mit entsprechenden Autorisierungsdetails) mit aktivierter Rolle R2 kann alle Objekte sehen und von ihnen lesen, weil die Rolle R2 alle Gewährungen von der Rolle R1 übernimmt. 6th represents a usage grant between roles. With a role-based access control it is also possible to grant usage from one role to another. A role that has been granted a use for another role "inherits" or takes over "all access privileges of the other role. For example has a role R2 a grant of use of the role R1 . A user (e.g. with corresponding authorization details) with an activated role R2 can see all objects and read from them because the role R2 all grants from the role R1 takes over.

Gemäß einer Ausführungsform werden Nutzungsgewährungen quer über unterschiedliche Konten gewährt. Auf ein Konto, das Daten teilt, kann hierin als ein „teilendes Konto“ Bezug genommen sein, und auf ein Konto, mit dem die Daten geteilt werden, kann hierin als ein „Zielkonto“ Bezug genommen sein. Bei einer Ausführungsform lassen hierin offenbarte Ausführungsformen eine sofortige, kopierfreie, leicht steuerbare kontenübergreifende Teilung von Daten zu. Bei einer Ausführungsform kann, um Daten mit einem anderen Konto zu teilen, ein teilendes Konto eine Teilungsobjekt erzeugen. Innerhalb des Teilungsobjekts kann eine Rolle erzeugt werden, und ein Anwender des teilenden Kontos kann anzeigen, dass Zugriffsrechte oder Gewährungen zu der Rolle und/oder fremden (oder Ziel-)Konten verfügbar sind, die gewährte Rechte unter der Rolle sein werden. Ein Zielkonto kann dann dazu fähig sein, Teilungsobjekte oder Rollen in einem anderen Konto zu identifizieren, zu welchem dem Zielkonto Rechte oder ein Zugriff gewährt worden sind oder ist. Bei einer Ausführungsform können Teilungsobjekte in einem teilenden Konto bzw. Teilerkonto in das Zielkonto unter Verwendung von Alias-Objekten und kontenübergreifenden Rollengewährungen importiert werden.According to one embodiment, usage grants are granted across different accounts. An account that shares data may be referred to herein as a “sharing account” and an account with which the data is shared may be referred to herein as a “target account”. In one embodiment, embodiments disclosed herein allow for instant, copy-free, easily controllable cross-account sharing of data. In one embodiment, in order to share data with another account, a sharing account can create a sharing object. A role can be created within the sharing object and a user of the sharing account can indicate that access rights or grants are available to the role and / or foreign (or target) accounts that will be granted rights under the role. A target account may then be able to identify sharing objects or roles in another account to which the target account has been or has been granted rights or access. In one embodiment, dividing objects in a dividing Account or partial account can be imported into the target account using alias objects and cross-account role assignments.

Bei einer Ausführungsform wird ein Teilen von Daten durch das Konto initiiert, dass die zu teilenden Daten besitzt. Zum Beispiel erzeugt das Teilerkonto einen neuen Typ von Objekt, nämlich das Teilungsobjekt. Das Teilungsobjekt hat einen eindeutigen Namen, um innerhalb der Teilerkontos identifiziert zu werden. Zum Beispiel kann der Name innerhalb eines Kontos eindeutig sein müssen, aber nicht notwendigerweise quer über alle Konten hinweg. Teilungsobjekte können durch Bezugnahme auf sie über ihren Namen im Teilerkonto erzeugt, modifiziert und gelöscht werden.In one embodiment, data sharing is initiated by the account that owns the data to be shared. For example, the splitter account creates a new type of object, namely the splitter object. The division object has a unique name in order to be identified within the divider accounts. For example, the name may need to be unique within an account, but not necessarily across all accounts. Split objects can be created, modified and deleted by referring to them by name in the splitter account.

Bei einer Ausführungsform enthält jedes Teilungsobjekt eine einzelne Rolle. Gewährungen zwischen dieser Rolle und Objekten definieren, welche Objekte gerade geteilt werden und mit welchen Privilegien diese Objekte geteilt werden. Die Rolle und Gewährungen können ähnlich irgendeinem anderen Rollen- und Gewährungssystem bei der Implementierung einer rollenbasierten Zugriffssteuerung sein. Durch Modifizieren der Gruppe von Gewährungen, die an die Rolle in einem Teilungsobjekt angebracht sind, können mehr Objekte geteilt werden (durch Hinzufügen von Gewährungen zu der Rolle), können weniger Objekte geteilt werden (durch Aufheben von Gewährungen von der Rolle) oder können Objekte mit anderen Privilegien geteilt werden (durch Ändern des Typs einer Gewährung, zum Beispiel um einen Schreibzugriff auf ein geteiltes Tabellenobjekt zuzulassen, das zuvor nur zu lesen war).In one embodiment, each partition object contains a single role. Grants between this role and objects define which objects are currently being shared and with which privileges these objects are shared. The role and grants can be similar to any other role and grant system in implementing role-based access control. By modifying the set of grants attached to the role in a sharing object, more objects can be shared (by adding grants to the role), fewer objects can be shared (by removing grants from the role), or objects can be shared with other privileges (by changing the type of grant, for example to allow write access to a shared table object that was previously read-only).

Bei einer Ausführungsform enthält ein Teilungsobjekt auch eine Liste von Referenzen zu anderen Kundenkonten. Nur denjenigen Konten, die im Teilungsobjekt spezifisch sind, kann erlaubt werden, dieses Teilungsobjekt nachzuschauen, darauf zuzugreifen und von diesem zu importieren. Durch Modifizieren der Liste von Referenzen von anderen Kundenkonten kann veranlasst werden, dass das Teilungsobjekt für mehrere Konten zugreifbar wird oder es auf weniger Konten beschränkt wird.In one embodiment, a sharing object also contains a list of references to other customer accounts. Only those accounts that are specific to the division object can be allowed to look up, access and import from this division object. By modifying the list of references from other customer accounts, the shared object can be made accessible to several accounts or it is restricted to fewer accounts.

7 ist ein schematisches Blockdiagramm, das ein Teilungsobjekt SH1 darstellt. Ein Kundenkonto A1 enthält das Teilungsobjekt SH1. Das Teilungsobjekt SH1 hat einen eindeutigen Namen „SH1“ im Kundenkonto A1. Das Teilungsobjekt SH1 enthält eine Rolle R4 mit Gewährungen zu der Datenbank D2, dem Schema S2 und der Tabelle T2. Die Gewährung den der Datenbank D2 und dem Schema S2 können Nutzungsgewährungen sein und die Gewährung an der Tabelle T2 kann eine Auswahlgewährung sein. In diesem Fall würde die Tabelle T2 in dem Schema S2 in der Datenbank D2 nur lesend geteilt sein. Das Teilungsobjekt SH1 enthält eine Liste von Referenzen zu anderen Kundenkonten, einschließlich dem Konto A2. 7th Figure 13 is a schematic block diagram showing a partition object SH1 represents. A customer account A1 contains the division object SH1 . The division object SH1 has a unique name "SH1" in the customer account A1 . The division object SH1 contains a role R4 with grants to the database D2 , the scheme S2 and the table T2. Granting the database D2 and the scheme S2 can be usage grants and the grant at table T2 can be a selection grant. In this case, table T2 would be in schema S2 in the database D2 be divided only for reading. The division object SH1 contains a list of references to other customer accounts, including the account A2 .

Nachdem ein Teilungsobjekt erzeugt ist, kann das Teilungsobjekt importiert oder auf dieses Bezug genommen werden durch ein im Teilungsobjekt aufgelistetes Zielkonto. Zum Beispiel ist ein Importieren eines Teilungsobjekts von einem Teilerkonto von anderen Kundenkonten möglich. Ein Zielkonto kann einen Befehl laufen lassen, um alle verfügbaren Teilungsobjekte zum Importieren aufzulisten. Nur wenn ein Teilungsobjekt mit Referenzen erzeugt wurde, die das Zielkonto enthielten, kann das Zielkonto das Teilungsobjekt auflisten und es darauffolgend importieren. Bei einer Ausführungsform werden Referenzen zu einem Teilungsobjekt in einem anderen Konto immer durch einen Kontonamen qualifiziert. Zum Beispiel würde das Zielkonto A2 auf Teilung SH1 im Teilerkonto A1 mit dem beispielhaften qualifizierten Namen „A1.SH1“ Bezug nehmen.After a division object is created, the division object can be imported or referenced through a target account listed in the division object. For example, it is possible to import a sharing object from a sharing account from other customer accounts. A target account can run a command to list all of the shared objects available for import. Only if a division object was created with references that contained the target account can the target account list the division object and then import it. In one embodiment, references to a sharing object in another account are always qualified by an account name. For example, the target account would be A2 division SH1 in the share account A1 Reference with the exemplary qualified name "A1.SH1".

Bei einer Ausführungsform kann ein Prozess oder ein Importieren eines Teilungsobjekts folgendes enthalten: Erzeugen eines Alias-Objekts im Zielkonto; Verknüpfen des Alias-Objekts mit dem obersten geteilten Objekts in dem Teilerkonto in der Objekthierarchie; Gewähren einer Rolle in den Zielkonto-Nutzungsprivilegien zu dem Alias-Objekt; und Gewähren der Zielkonto-Rollennutzungsprivilegien zu der im Teilungsobjekt enthaltenen Rolle.In one embodiment, a process or importing a sharing object may include: creating an alias object in the target account; Associating the alias object with the top shared object in the splitter account in the object hierarchy; Granting the alias object a role in the target account usage privileges; and granting the target account role use privileges to the role contained in the sharing object.

Bei einer Ausführungsform erzeugt eine Zielkonto, das das Teilungsobjekt oder Daten importiert, ein Alias-Objekt. Ein Alias-Objekt ist ähnlich einem normalen Objekt in einem Kundenkonto. Ein Alias-Objekt hat seinen eigenen eindeutigen Namen, mit dem es identifiziert wird. Ein Alias-Objekt kann mit dem obersten Objekt in jeder Objekthierarchie verknüpft werden, die geteilt wird. Wenn mehrere Objekthierarchien geteilt werden, können mehrere Alias-Objekte im Zielkonto erzeugt werden. Wann immer ein Alias-Objekt erzeugt wird (z.B. Lesen vom Alias-Objekt, Schreiben zum Alias-Objekt), wird das Alias-Objekt intern durch das normale Objekt im Teilerkonto ersetzt, mit dem es verknüpft. Auf diese Weise sind Alias-Objekte lediglich Proxy-Objekte von normalen Objekten und nicht Duplikat-Objekte. Somit beeinflussen die Operationen beim Lesen von oder beim Schreiben zu einem Alias-Objekt das Original-Objekt, zu dem das Alias-Objekt verknüpft. Ähnlich normalen Objekten wird, wenn ein Alias-Objekt erzeugt wird, es der aktivierten Rolle des Anwenders gewährt.In one embodiment, a target account that imports the sharing object or data creates an alias object. An alias object is similar to a normal object in a customer account. An alias object has its own unique name that is used to identify it. An alias object can be linked to the topmost object in any object hierarchy that is split. If multiple object hierarchies are shared, multiple alias objects can be created in the target account. Whenever an alias object is created (e.g. reading from the alias object, writing to the alias object), the alias object is internally replaced by the normal object in the sharing account with which it is linked. In this way, alias objects are only proxy objects of normal objects and not duplicate objects. Thus the operations when reading from or writing to an alias object affect the original object to which the alias object is linked. Similar to normal objects, when an alias object is created, it is granted the activated role of the user.

Zusätzlich zu dem Alias-Objekt wird eine Gewährung zwischen einer Rolle im Zielkonto und der im Teilungsobjekt enthaltenen Rolle erzeugt. Dies ist eine Nutzungsgewährung von Rolle zu Rolle quer über Kundenkonten hinweg. Eine rollenbasierte Zugriffssteuerung lässt nun zu, dass ein Anwender im Zielkonto auf Objekte im Teilerkonto zugreift.In addition to the alias object, a grant is created between a role in the target account and the role contained in the split object. This is a role-to-role granting of use across customer accounts. A role-based access control now allows a user in the target account to access objects in the divider account.

8 ist ein schematisches Blockdiagramm, dass logische Gewährungen und Verbindungen bzw. Verknüpfungen zwischen unterschiedlichen Konten darstellt. Eine Datenbank-Alias-Objekt D5 wird in einem Konto A2 erzeugt. Das Datenbank-Alias D5 nimmt Bezug auf die Datenbank D2 über eine Verbindung L1. Eine Rolle R3 hat eine Nutzungsgewährung G1 an der Datenbank D5. Die Rolle R5 hat eine zweite Nutzungsgewährung G2 zu einer Rolle R4 in Kundenkonto A1. Die Gewährung G2 ist eine kontenübergreifende Gewährung zwischen den Konten A1 und A2. Bei einer Ausführungsform lässt eine rollenbasierte Zugriffssteuerung zu, dass ein Anwender im Konto A2 mit aktivierter Rolle R3 auf Daten im Konto A1 zugreift. Wenn zum Beispiel ein Anwender im Konto A2 Daten in der Tabelle T2 zu lesen wünscht, lässt die rollenbasierte Zugriffssteuerung dies zu, weil die Rolle R3 eine Nutzungsgewährung der Rolle R4 hat und die Rolle R4 wiederum eine Auswahlgewährung an der Tabelle T2 hat. Anhand einer Darstellung kann ein Anwender mit aktivierter Rolle R3 durch Laufenlassen einer Anfrage oder Auswahl, die zu „D5.S2.T2“ gerichtet ist, auf T2 zugreifen. 8th Fig. 13 is a schematic block diagram showing logical grants and links between different accounts. A database alias object D5 is in one account A2 generated. The database alias D5 refers to the database D2 over a connection L1 . A role R3 has a grant of use G1 at the database D5 . The role R5 has a second grant of use G2 to a role R4 in customer account A1 . The guarantee G2 is a cross-account grant between accounts A1 and A2 . In one embodiment, role-based access control allows a user in the account A2 with activated role R3 on data in the account A1 accesses. For example, if a user is in the account A2 Wants to read data in table T2, the role-based access control allows this because the role R3 a grant of use of the role R4 has and the role R4 again has a selection grant on table T2. A user with an activated role R3 by running a query or selection directed to "D5.S2.T2" T2 access.

Ein Verwenden von Objekt-Aliassen und kontenübergreifenden Gewährungen von einer Rolle im Zielkonto zu einer Rolle im Teilerkonto lässt zu, dass Anwender im Zielkonto auf Information im Teilerkonto zugreifen. Auf diese Weise kann ein Datenbanksystem ein Teilen von Daten zwischen unterschiedlichen Kundenkonten auf eine sofortige, kopierfreie, einfach steuerbare Weise ermöglichen. Dieses Teilen kann sofortig sein, weil Alias-Objekte und kontenübergreifende Gewährungen in Millisekunden erzeugt werden können. Das Teilen kann kopierfrei sein, weil bei dem Prozess keine Daten dupliziert werden müssen. Zum Beispiel können alle Anfragen, oder Auswahlen, direkt zu dem geteilten Objekt im Teilerkonto gemacht werden können, ohne ein Duplikat im Zielkonto zu erzeugen. Das Teilen ist auch einfach zu steuern, weil es einfach zu verwendende Techniken einer rollenbasierten Zugriffssteuerung verwendet. Zusätzlich gibt es bei Ausführungsformen mit getrennter Speicherung und Berechnung keinen Zugangskonflikt bzw. Wettstreit unter Computerressourcen, wenn Anfragen an geteilten Daten ausgeführt werden. Somit können unterschiedliche virtuelle Lager in unterschiedlichen Kundenkonten geteilte Daten individuell verarbeiten. Zum Beispiel kann ein erstes virtuelles Lager für ein erstes Konto eine Datenbankanfrage oder -anweisung unter Verwendung von Daten verarbeiten, die durch ein Teilerkonto geteilt sind, und ein zweites virtuelles Lager für ein zweites Konto, oder ein Teilerkonto, kann eine Datenbankanfrage oder -anweisung unter Verwendung der geteilten Daten des Teilerkontos verarbeiten.Using object aliases and cross-account grants from a role in the target account to a role in the divider account allows users in the target account to access information in the divider account. In this way, a database system can enable data to be shared between different customer accounts in an instant, copy-free, easily controllable manner. This sharing can be instantaneous because aliases and cross-account grants can be created in milliseconds. The sharing can be copy-free because there is no need to duplicate data in the process. For example, all inquiries, or selections, can be made directly to the shared item in the sharing account without creating a duplicate in the target account. Sharing is also easy to control because it uses easy-to-use techniques of role-based access control. Additionally, in embodiments with separate storage and computation, there is no access contention or competition among computer resources when executing requests on shared data. This means that different virtual warehouses in different customer accounts can individually process shared data. For example, a first virtual warehouse for a first account can process a database query or instruction using data shared by a divider account, and a second virtual warehouse for a second account, or a divider account, can process a database query or instruction at Process the use of the shared data of the shareholder account.

9 ist ein schematisches Blockdiagramm einer Teilungskomponente 210. Die Teilungskomponente 210 enthält eine Komponente für kontenübergreifende Rechte 902, eine Alias-Komponente 904, eine Aufforderungskomponente 906, eine Zugriffskomponente 908 und eine Verarbeitungskomponente 910. Die Komponenten 902-910 sind nur anhand eines Beispiels angegeben und es kann sein, dass nicht alle bei allen Ausführungsformen enthalten sind. Zum Beispiel kann jede der Komponenten 902-910 in einer separaten Vorrichtung oder einem separaten System enthalten sein oder kann als Teil davon implementiert sein. 9 Figure 3 is a schematic block diagram of a partition component 210 . The dividing component 210 contains a component for cross-account rights 902 , an alias component 904 , a prompt component 906 , an access component 908 and a processing component 910 . The components 902-910 are given by way of example only, and not all are included in all embodiments. For example, any of the components 902-910 included in, or implemented as part of, a separate device or system.

Die Komponente für kontenübergreifende Rechte 902 ist konfiguriert, um Rechte oder Gewährungen zwischen Konten zu erzeugen und zu managen. Die Komponente für kontenübergreifende Rechte 902 kann ein Teilungsobjekt in einem Teilerkonto erzeugen. Zum Beispiel kann ein Anwender des Teilerkontos eine Eingabe zur Verfügung stellen, die anzeigt, dass eine oder mehrere Ressourcen mit einem anderen Konto geteilt werden sollte oder sollten. Bei einer Ausführungsform kann der Anwender eine Option auswählen, um ein neues Teilungsobjekt zu erzeugen, so dass Ressourcen mit fremden Konten geteilt werden können. In Reaktion auf die Anwendereingabe kann die Komponente für kontenübergreifende Rechte 902 eine Teilungsobjekt in Teilerkonto erzeugen. Das Teilungsobjekt kann eine Rolle enthalten, zu der Zugriffsrechte zu Ressourcen zum Teilen mit einem fremden Konto gewährt werden können. Das fremde Konto kann ein Kundenkonto oder ein anderes Konto, das getrennt vom Teilerkonto ist, enthalten. Zum Beispiel kann das fremde Konto ein anderes Konto sein, das auf einem mandantenfähigen Datenbanksystem gehosted ist.The component for cross-account rights 902 is configured to create and manage rights or grants between accounts. The component for cross-account rights 902 can create a division object in a divider account. For example, a user of the sharing account can provide input indicating that one or more resources should or should be shared with another account. In one embodiment, the user can select an option to create a new sharing object so that resources can be shared with foreign accounts. In response to user input, the component for cross-account rights 902 Create a division object in a divider account. The sharing object can contain a role to which access rights to resources for sharing with a foreign account can be granted. The external account can contain a customer account or another account that is separate from the split account. For example, the foreign account can be another account that is hosted on a multi-tenant database system.

Auf eine Erzeugung hin können dem Teilungsobjekt Rechte zu einer oder mehreren Ressourcen innerhalb des Teilerkontos gewährt werden. Die Ressourcen können eine Datenbank, ein Schema, eine Tabelle, eine Sequenz oder eine Funktion des Teilerkontos enthalten. Zum Beispiel kann das Teilungsobjekt eine Rolle (z.B. Teilungsrolle) enthalten, die gewährtes Recht ist, ein Datenspeicherobjekt, wie beispielsweise eine Datenbank, zu lesen, auszuwählen, anzufragen oder zu modifizieren. Dem Teilungsobjekt, oder der Teilungsrolle im Teilungsobjekt, können Rechte ähnlich denjenigen gewährt werden, wie Rechte anderen Rollen unter Verwendung einer rollenbasierten Zugriffssteuerung gewährt werden können. Ein Anwender kann dazu fähig sein, auf ein Konto zuzugreifen und der Teilungsrolle Rechte zu gewähren, so dass die Teilungsrolle auf Ressourcen zugreifen kann, für die gemeint wird, dass sie mit fremden Konten geteilt werden. Bei einer Ausführungsform kann das Teilungsobjekt eine Liste von Objekten enthalten, und eine Zugriffsebene, für die die Teilungsrolle Rechte hat.Upon creation, the sharing object can be granted rights to one or more resources within the sharing account. The resources can contain a database, a schema, a table, a sequence or a function of the divider account. For example, the sharing object may include a role (e.g., sharing role) that is granted right to read, select, query, or modify a data storage object such as a database. The partition object, or the partition role in the partition object, can be granted rights similar to how rights can be granted to other roles using role-based access control. A user may be able to access an account and grant rights to the sharing role, so that the sharing role can access resources that are believed to be shared with foreign accounts. In one embodiment, the sharing object may contain a list of objects and an access level to which the sharing role has rights.

Das Teilungsobjekt kann auch spezifischen fremden Konten verfügbar gemacht oder mit diesen verbunden bzw. verknüpft werden. Zum Beispiel kann das Teilungsobjekt eine Liste von Konten speichern, die Rechte zu der Teilungsrolle oder dem Teilungsobjekt im Teilerkonto haben. Ein Anwender mit dem Teilerkonto kann Konten zu der Liste von Konten hinzufügen oder davon entfernen. Zum Beispiel kann der Anwender dazu fähig sein, die Liste zu modifizieren, um zu steuern, welche Konten auf über das Teilungsobjekt geteilte Objekte zugreifen können. Im Teilungsobjekt aufgelisteten oder identifizierten fremden Konten kann ein Zugriff auf Ressourcen mit Zugriffsrechten gegeben werden, die einer Teilungsrolle des Teilungsobjekts gewährt sind. Bei einer Ausführungsform kann ein spezifisches Konto eine Suche durchführen, um Teilungsobjekte oder Teilerkonten zu identifizieren, die mit dem spezifischen Konto geteilt worden sind. Eine Liste von verfügbaren Teilungsobjekten kann durch einen Anwender des Zielkontos oder spezifischen Kontos angeschaut werden.The sharing object can also be made available to or with specific foreign accounts these are connected or linked. For example, the sharing object can store a list of accounts that have rights to the sharing role or the sharing object in the sharing account. A user with the sharing account can add or remove accounts from the list of accounts. For example, the user may be able to modify the list to control which accounts can access objects shared through the sharing object. Foreign accounts listed or identified in the division object can be given access to resources with access rights that are granted to a division role of the division object. In one embodiment, a specific account may search to identify sharing objects or sharing accounts that have been shared with the specific account. A list of available sharing objects can be viewed by a user of the target account or specific account.

Die Alias-Komponente 904 ist konfiguriert, um ein Alias für Daten oder ein Datenobjekt zu erzeugen, die oder das durch ein separates Konto geteilt sind oder ist. Zum Beispiel kann die Alias-Komponente in einem Zielkonto ein Alias-Objekt entsprechend einer geteilten Ressource erzeugen, die durch ein Teilerkonto geteilt ist. Bei einer Ausführungsform wird das Alias-Objekt in Reaktion darauf erzeugt, dass ein Zielkonto eine geteilte Ressource akzeptiert oder versucht, zum ersten Mal auf eine geteilte Ressource zuzugreifen. Das Alias-Objekt kann als ein Alias für ein Datenobjekt für die höchste Objekthierarchie agieren, die durch das Teilerkonto geteilt wird (siehe z.B. 8, wo D5 ein Alias für D2 ist). Die Alias-Komponente 904 kann auch eine Verbindung bzw. Verknüpfung zwischen dem Alias-Objekt und einem geteilten Objekt erzeugen (siehe z.B. 8, wo L1 die Verbindung zwischen D5 und D2 ist). Die Verbindung kann in der Form eines Identifizierers oder Namens des Original- oder „realen“ Objekts erzeugt und/oder gespeichert werden. Zum Beispiel kann die Verbindung L1 in 8 einen Identifizierer für D2 enthalten, was in dem Alias-Objekt D5 gespeichert ist, das einen eindeutigen systemweiten Namen, wie beispielsweise „A1.D2“, enthält.The alias component 904 is configured to create an alias for data or a data object that is or is shared by a separate account. For example, the alias component in a target account can create an alias object corresponding to a shared resource that is shared by a sharing account. In one embodiment, the alias object is created in response to a target account accepting a shared resource or attempting to access a shared resource for the first time. The alias object can act as an alias for a data object for the highest object hierarchy that is shared by the divider account (see e.g. 8th , Where D5 an alias for D2 is). The alias component 904 can also create a connection or link between the alias object and a shared object (see e.g. 8th where L1 is the connection between D5 and D2 is). The connection can be created and / or stored in the form of an identifier or name of the original or "real" object. For example, the connection L1 in 8th an identifier for D2 contain what's in the alias object D5 that contains a unique system-wide name such as "A1.D2".

Die Alias-Komponente 904 kann auch einer Rolle im Zielkonto (dem Konto, mit dem das Teilerkonto Daten oder Ressourcen geteilt hat) Zugriffsrechte zum Alias-Objekt gewähren (siehe z.B. G1 der 8). Zusätzlich kann die Alias-Komponente 904 auch die Rolle im Zielkonto zu einer Teilungsrolle im Teilungsobjekt des Teilerkontos gewähren (siehe z.B. G2 der 8). Mit dem erzeugten Alias-Objekt, einer Verbindung zwischen dem Alias-Objekt und einem Objekt im Teilerkonto und Gewährungen zu einer Rolle im Zielkonto kann das Zielkonto frei sein, um Anfragen, Anweisungen laufenzulassen oder geteilte Daten oder Ressourcen im Teilerkonto zu „sehen“.The alias component 904 can also grant a role in the target account (the account with which the sharing account has shared data or resources) access rights to the alias object (see e.g. G1 of 8th ). In addition, the alias component 904 also grant the role in the target account to a division role in the division object of the divider account (see e.g. G2 of 8th ). With the generated alias object, a connection between the alias object and an object in the divider account and grants to a role in the target account, the target account can be free to run requests, instructions or to "see" shared data or resources in the divider account.

Die Aufforderungskomponente 906 ist konfiguriert, um eine Aufforderung von einem Konto zu empfangen, auf eine geteilte Ressource in einem anderen Konto zuzugreifen. Die Aufforderung kann eine Datenbankanfrage, eine Auswahlanweisung oder ähnliches enthalten, um auf eine Ressource zuzugreifen. Bei einer Ausführungsform enthält die Aufforderung eine Aufforderung, die zu einem Alias-Objekt des auffordernden Kontos gerichtet ist. Die Aufforderungskomponente 906 kann eine Ressource identifizieren, mit der das Alias-Objekt verbunden ist, wie beispielsweise eine Datenbank oder Tabelle in einem Teilerkonto. Die Aufforderungskomponente 906 kann das verbundene Objekt basierend auf einem Identifizierer des Alias-Objekts identifizieren.The prompt component 906 is configured to receive a request from one account to access a shared resource in another account. The request can contain a database query, a selection instruction or the like in order to access a resource. In one embodiment, the solicitation includes a solicitation directed to an alias of the soliciting account. The prompt component 906 can identify a resource to which the alias object is associated, such as a database or table in a splitter account. The prompt component 906 can identify the linked object based on an identifier of the alias object.

Die Zugriffskomponente 908 ist konfiguriert, um zu bestimmen, ob ein Konto ein Zugriff auf eine geteilte Ressource eines anderen Kontos hat. Wenn zum Beispiel ein erstes Konto zu einem Zugriff auf eine Ressource eines anderen, zweiten Kontos auffordert, kann die Zugriffskomponente 908 bestimmen, ob das zweite Konto einen Zugriff auf das erste Konto gewährt hat. Die Zugriffskomponente 908 kann bestimmen, ob das auffordernde Konto einen Zugriff hat, durch Bestimmen, ob ein Teilungsobjekt das auffordernde Konto identifiziert. Zum Beispiel kann die Zugriffskomponente 908 prüfen, ob das auffordernde Konto in einer Liste von Konten vorhanden ist, die durch ein Teilungsobjekt gespeichert ist. Die Zugriffskomponente 908 kann auch prüfen, ob das Teilungsobjekt, das das auffordernde Konto identifiziert, Zugriffsrechte (z.B. Gewährungen) zu der Zieldatenressource im Teilerkonto hat.The access component 908 is configured to determine whether an account has access to a shared resource from another account. For example, if a first account requests access to a resource of another, second account, the access component 908 determine whether the second account has granted access to the first account. The access component 908 can determine whether the soliciting account has access by determining whether a sharing object identifies the soliciting account. For example, the access component 908 check that the soliciting account is on a list of accounts stored by a sharing object. The access component 908 can also check whether the sharing object that identifies the requesting account has access rights (e.g. grants) to the target data resource in the sharing account.

Bei einer Ausführungsform kann die Zugriffskomponente 908 auf das Vorhandensein einer Gewährung von einer Teilungsrolle in einem Teilerkonto zu einer auffordernden Rolle im auffordernden Konto prüfen. Die Zugriffskomponente 908 kann prüfen, ob eine Verbindung existiert zwischen einem Alias-Objekt, zu dem eine Datenbankaufforderung oder -anweisung gerichtet wurde, oder eine Gewährung existiert zwischen einer auffordernden Rolle und dem Alias-Objekt. Zum Beispiel kann die Zugriffskomponente 908 auf die Existenz oder das Vorhandensein von einem oder mehreren von L1, G1 und G2 prüfen, die in 8 dargestellt sind. Weiterhin kann die Zugriffskomponente 908 auf eine Gewährung zwischen einer Rolle in einem Teilungsobjekt zu einem Objekt (wie beispielsweise einer Tabelle oder Datenbank) der Teilerkontos prüfen. Zum Beispiel kann die Zugriffskomponente 908 auf die Existenz einer Gewährung zwischen der Rolle R4 und der Datenbank D2 in 8 prüfen. Wenn die Zugriffskomponente 908 bestimmt, dass das auffordernde Konto einen Zugriff auf die geteilte Ressource hat, kann die Aufforderung durch die Teilungskomponente 210 oder eine Verarbeitungskomponente 910 erfüllt werden. Wenn die Zugriffskomponente 908 bestimmt, dass das auffordernde Konto keine Rechte zu den aufgeforderten Daten oder dem aufgeforderten Objekt hat, wird die Aufforderung abgelehnt werden.In one embodiment, the access component 908 check for the presence of a grant from a splitting role in a splitting account to a soliciting role in the soliciting account. The access component 908 can check whether a connection exists between an alias object to which a database request or statement has been directed, or a grant exists between a requesting role and the alias object. For example, the access component 908 check for the existence or presence of one or more of L1, G1, and G2 included in 8th are shown. Furthermore, the access component 908 Check for a grant between a role in a division object to an object (such as a table or database) of the divider account. For example, the access component 908 on the existence of a grant between the role R4 and the database D2 in 8th check. If the access component 908 determines that the soliciting account has access to the shared resource, the solicitation can by the division component 210 or a processing component 910 to be met. If the access component 908 determines that the requesting account has no rights to the requested data or the requested object, the request will be denied.

Die Verarbeitungskomponente 910 ist konfiguriert, um Datenbank-Aufforderungen, Anfragen oder Anweisungen zu verarbeiten. Die Verarbeitungskomponente 910 kann eine Reaktion auf eine Aufforderung von einem Konto verarbeiten und bereitstellen, auf Daten oder Dienste in einem anderen Konto zuzugreifen oder diese zu verwenden. Bei einer Ausführungsform stellt die Verarbeitungskomponente 910 eine Reaktion auf eine Aufforderung durch Verarbeiten der Aufforderung unter Verwendung von Original-Daten in einem Teilerkonto bereit, das unterschiedlich vom auffordernden Konto ist. Zum Beispiel kann die Aufforderung in Richtung zu einer Datenbank oder einer Tabelle, die in einem ersten Konto oder dafür gespeichert ist, gerichtet sein, und die Verarbeitungskomponente 910 kann die Aufforderung unter Verwendung der Datenbank oder Tabelle des ersten Kontos verarbeiten und eine Reaktion auf ein aufforderndes, zweites Konto zurückbringen.The processing component 910 is configured to process database requests, queries, or instructions. The processing component 910 can process and provide a response to a request from one account to access or use data or services in another account. In one embodiment, the processing component provides 910 provides a response to a request by processing the request using original data in a sharing account different from the requesting account. For example, the request can be directed towards a database or table stored in or for a first account, and the processing component 910 can process the request using the database or table of the first account and return a response to a requesting second account.

Bei einer ersten Ausführungsform führt die Verarbeitungskomponente 910 eine Verarbeitung von geteilten Daten ohne ein Erzeugen einer Duplikat-Tabelle oder einer anderen Datenquelle im auffordernden Konto durch. Allgemein müssen Daten zuerst in ein Konto aufgenommen werden, das wünscht, diese Daten zu verarbeiten oder Operationen gegenüber diesen Daten durchzuführen. Die Verarbeitungskomponente 910 kann Verarbeitungszeit, eine Verzögerung und/oder Speicherressourcen sparen, indem zugelassen ist, dass ein Zielkonto auf geteilte Ressourcen in einem Teilerkonto ohne Erzeugen einer Kopie einer Datenressource im Zielkonto zugreift.In a first embodiment, the processing component performs 910 processing shared data without creating a duplicate table or other data source in the requesting account. In general, data must first be entered into an account that wishes to process that data or perform operations on that data. The processing component 910 may save processing time, delay, and / or memory resources by allowing a target account to access shared resources in a sharing account without creating a copy of a data resource in the target account.

Die Verarbeitungskomponente 910 kann eine Verarbeitung derselben Daten unter Verwendung unterschiedlicher Verarbeitungsressourcen für unterschiedliche Konten durchführen. Zum Beispiel kann ein erstes virtuelles Lager für ein erstes Konto eine Datenbank-Anfrage oder Anweisung unter Verwendung von Daten verarbeiten, die durch ein Teilerkonto geteilt werden, und ein zweites virtuelles Lager für ein zweites Konto, oder das Teilerkonto, kann eine Datenbank-Anfrage oder Anweisung unter Verwendung der geteilten Daten des Teilerkontos verarbeiten. Ein Verwenden getrennter Verarbeitungsressourcen, um dieselben Daten zu verarbeiten, kann einen Wettstreit bzw. Zugangskonflikt für Verarbeitungsressourcen zwischen Konten verhindern. Die Verarbeitungsressourcen können dynamisch zur Verfügung gestellte Verarbeitungsressourcen enthalten. Bei einer Ausführungsform wird eine Verarbeitung von geteilten Daten unter Verwendung eines virtuellen Lagers für das auffordernde Konto durchgeführt, selbst wenn die Daten in einem Speicher für ein anderes Konto angeordnet sein können.The processing component 910 can process the same data using different processing resources for different accounts. For example, a first virtual warehouse for a first account can process a database query or instruction using data shared by a sharing account, and a second virtual warehouse for a second account, or the sharing account, can be a database query or Process instruction using the shared data of the splitter account. Using separate processing resources to process the same data can prevent contention for processing resources between accounts. The processing resources can contain processing resources made available dynamically. In one embodiment, processing of shared data is performed using a virtual warehouse for the requesting account, even though the data may be located in memory for another account.

10 ist ein schematisches Ablaufplandiagramm, das ein beispielhaftes Verfahren 1000 zum Teilen von Datenbankdaten oder -ressourcen darstellt. Das Verfahren 1000 kann durch ein Datenbanksystem durchgeführt werden, wie beispielsweise durch eine Teilungskomponente 210 wie in 1 oder 9 oder durch ein Datenbanksystem wie in 1, 2 oder 3. 10 Figure 3 is a schematic flow chart diagram illustrating an exemplary method 1000 for sharing database data or resources. The procedure 1000 can be performed by a database system, such as a sharing component 210 as in 1 or 9 or through a database system as in 1 , 2 or 3 .

Das Verfahren 1000 beginnt und eine Komponente für kontenübergreifende Rechte 902 erzeugt bei 1002 ein Teilungsobjekt in einem ersten Konto, das eine Teilungsrolle umfasst. Die Komponente für kontenübergreifende Rechte 902 assoziiert bei 1004 ein oder mehrere Zugriffsrechte mit der Teilungsrolle, wobei das eine oder die mehreren Zugriffsrechte anzeigen, welche Objekte im ersten Konto zugreifbar sind, basierend auf dem Teilungsobjekt. Die Komponente für kontenübergreifende Rechte 902 gewährt bei 1006 einem zweiten Konto kontenübergreifende Zugriffsrechte zu der Teilungsrolle oder dem Teilungsobjekt im ersten Konto. Eine Aufforderungskomponente 906 empfängt bei 1008 eine Aufforderung vom zweiten Konto, auf Daten oder Dienste des ersten Kontos zuzugreifen. Eine Verarbeitungskomponente 910 stellt bei 1010 basierend auf den Daten oder Diensten des ersten Kontos eine Reaktion zum zweiten Konto bereit.The procedure 1000 begins and a component for cross-account rights 902 generated at 1002 a sharing object in a first account that includes a sharing role. The component for cross-account rights 902 associated with 1004 one or more access rights with the sharing role, the one or more access rights indicating which objects in the first account are accessible based on the sharing object. The component for cross-account rights 902 granted at 1006 a second account cross-account access rights to the sharing role or the sharing object in the first account. A prompt component 906 receives at 1008 a request from the second account to access data or services of the first account. A processing component 910 provides 1010 based on the data or services of the first account ready a reaction to the second account.

11 ist ein Blockdiagramm, das eine beispielhafte Computervorrichtung 1100 darstellt. Bei einigen Ausführungsformen wird die Computervorrichtung 1100 verwendet, um ein oder mehrere der Systeme und Komponenten zu implementieren, die hierin diskutiert sind. Weiterhin kann die Computervorrichtung 1100 mit irgendeinem der Systeme und/oder irgendeiner der Komponenten interagieren, die hierin beschrieben sind. Demgemäß kann die Computervorrichtung 1100 verwendet werden, um verschiedene Prozeduren und Aufgaben durchzuführen, wie beispielsweise diejenigen, die hierin diskutiert sind. Die Computervorrichtung 1100 kann als ein Server, ein Client oder irgendeine andere Computereinheit fungieren. Die Computervorrichtung 1100 kann irgendeine einer weiten Vielfalt von Computervorrichtungen sein, wie beispielsweise ein Desktopcomputer, ein Notebookcomputer, ein Servercomputer, ein in der Hand gehaltener Computer bzw. Handheld-Computer, ein Tablet und ähnliches. 11 Figure 4 is a block diagram illustrating an exemplary computing device 1100 represents. In some embodiments, the computing device 1100 used to implement one or more of the systems and components discussed herein. Furthermore, the computer device 1100 interact with any of the systems and / or any of the components described herein. Accordingly, the computing device 1100 can be used to perform various procedures and tasks such as those discussed herein. The computing device 1100 can act as a server, a client, or any other computing device. The computing device 1100 can be any of a wide variety of computing devices such as a desktop computer, a notebook computer, a server computer, a handheld computer, a tablet, and the like.

Die Computervorrichtung 1100 enthält einen oder mehrere Prozessoren 1102, eine oder mehrere Speichervorrichtungen 1104, eine oder mehrere Schnittstellen 1106, eine oder mehrere Massenspeichervorrichtungen 1108 und eine oder mehrere Eingabe/Ausgabe-(I/O-)Vorrichtungen 1110, von welchen alle mit einem Bus 1112 gekoppelt sind. Der Prozessor (die Prozessoren) 1102 enthält (enthalten) eine oder mehrere Prozessoren oder Steuerungen, die Anweisungen ausführen, die in der Speichervorrichtung (den Speichervorrichtungen) 1104 und/oder der Massenspeichervorrichtung (den Massenspeichervorrichtungen) 1108 gespeichert sind. Der Prozessor (die Prozessoren) 1102 kann (können) auch verschiedene Typen von computerlesbaren Medien enthalten, wie beispielsweise einen Cachespeicher.The computing device 1100 contains one or more processors 1102 , one or more storage devices 1104 , one or more interfaces 1106 , one or more mass storage devices 1108 and one or more Input / output (I / O) devices 1110 , all of which take a bus 1112 are coupled. The processor (s) 1102 contains one or more processors or controllers that execute instructions contained in the storage device (s) 1104 and / or the mass storage device (s) 1108 are stored. The processor (s) 1102 may also contain various types of computer readable media, such as a cache memory.

Die Speichervorrichtung (die Speichervorrichtungen) 1104 enthält (enthalten) verschiedene computerlesbare Medien, wie beispielsweise einen flüchtigen Speicher (z.B. Direktzugriffsspeicher (RAM)) und/oder einen nichtflüchtigen Speicher (z.B. einen Nurlesespeicher (ROM)). Die Speichervorrichtung(en) 1104 kann (können) auch einen wiederbeschreibbaren ROM enthalten, wie beispielsweise einen Flash-Speicher.The storage device (s) 1104 contains (contain) various computer-readable media such as volatile memory (e.g. random access memory (RAM)) and / or non-volatile memory (e.g. read-only memory (ROM)). The storage device (s) 1104 may also contain a rewritable ROM, such as flash memory.

Die Massenspeichervorrichtung(en) 1108 enthält (enthalten) verschiedene computerlesbare Medien, wie beispielsweise Magnetbänder, Magnetplatten, optische Platten, einen Festkörperspeicher (z.B. einen Flash-Speicher) und so weiter. Verschiedene Laufwerke können auch in der Massenspeichervorrichtung (den Massenspeichervorrichtungen) 1108 enthalten sein, um ein Lesen von den verschiedenen computerlesbaren Medien und/oder ein Schreiben zu diesen zu ermöglichen. Die Massenspeichervorrichtung(en) 1108 enthält (enthalten) entfernbare Medien und/oder nicht entfernbare Medien.The mass storage device (s) 1108 contains (contain) various computer-readable media, such as magnetic tapes, magnetic disks, optical disks, solid-state storage (e.g., flash memory), and so on. Different drives can also be used in the mass storage device (s). 1108 be included to enable reading and / or writing to the various computer readable media. The mass storage device (s) 1108 contains (contains) removable media and / or non-removable media.

Die I/O-Vorrichtung(en) 1110 enthält (enthalten) verschiedene Vorrichtungen, die zulassen, dass Daten und/oder andere Information zu der Computervorrichtung 1100 eingegeben oder daraus wiedergewonnen bzw. ausgelesen werden oder wird. Die I/O-Vorrichtung(en) 1110 enthält (enthalten) als Beispiel Cursorsteuervorrichtungen, Tastaturen, Keypads bzw. kleine Tastaturen bzw. Folientastaturen, Mikrofone, Monitore oder andere Anzeigevorrichtungen, Lautsprecher, Drucker, Netzwerkschnittstellenkarten, Modems, eine Optik oder andere Bilderfassungsvorrichtungen und ähnliches.The I / O device (s) 1110 contains (contain) various devices that allow data and / or other information to be transferred to the computing device 1100 entered or retrieved from or read out. The I / O device (s) 1110 includes, for example, cursor control devices, keyboards, keypads, small keyboards, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, optics or other image capture devices, and the like.

Die Schnittstelle(n) 1106 enthält (enthalten) verschiedene Schnittstellen, die zulassen, dass die Computervorrichtung 1100 mit anderen Systemen, Vorrichtungen oder Computerumgebungen interagiert. Die Schnittstelle(n) 1106 enthält (enthalten) als Beispiel irgendeine Anzahl von unterschiedlichen Netzwerkschnittstellen, wie beispielsweise Schnittstellen zu lokalen Netzen (LANs), Weitverkehrsnetzen (WANs), drahtlosen Netzen und dem Internet.The interface (s) 1106 contains (contain) various interfaces that allow the computing device 1100 interacts with other systems, devices, or computer environments. The interface (s) 1106 includes, for example, any number of different network interfaces, such as interfaces to local area networks (LANs), wide area networks (WANs), wireless networks, and the Internet.

Der Bus 1112 lässt zu, dass der Prozessor (die Prozessoren) 1102, die Speichervorrichtung(en) 1104, die Schnittstelle(n) 1106, die Massenspeichervorrichtung(en) 1108 und die I/O-Vorrichtung(en) 1110 miteinander sowie mit anderen Vorrichtungen oder Komponenten, die mit dem Bus 1112 gekoppelt sind, kommunizieren. Der Bus 1112 stellt einen oder mehrere von einigen Typen von Strukturen dar, wie beispielsweise einen Systembus, einen PCI-Bus, einen IEEE 1394-Bus, einen USB-Bus und so weiter.The bus 1112 allows the processor (s) 1102 , the storage device (s) 1104 , the interface (s) 1106 , the mass storage device (s) 1108 and the I / O device (s) 1110 with each other as well as with other devices or components that make up the bus 1112 are coupled, communicate. The bus 1112 represents one or more of several types of structures such as a system bus, a PCI bus, an IEEE 1394 bus, a USB bus, and so on.

Zu Darstellungszwecken sind Programme und andere ausführbare Programmkomponenten hierin als diskrete Blöcke gezeigt, obwohl es verstanden wird, dass solche Programme und Komponenten zu verschiedenen Zeiten in unterschiedlichen Speicherkomponenten der Computervorrichtung 1100 sitzen können, und durch den Prozessor (die Prozessoren) 1102 ausgeführt werden. Alternativ können die hierin beschriebenen Systeme und Prozeduren in Hardware oder einer Kombination aus Hardware, Software und/oder Firmware implementiert sein. Beispielsweise kann eine oder können mehrere anwendungsspezifische integrierte Schaltungen (ASICs) programmiert sein, um eines oder mehrere der Systeme und der Prozeduren auszuführen, die hierin beschrieben sind. Wie es hierin verwendet ist, sollen die Ausdrücke „Modul“ oder „Komponente“ die Implementierungsvorrichtung zum Erreichen eines Prozesses fördern, wie beispielsweise durch Hardware oder eine Kombination aus Hardware, Software und/oder Firmware, zu den Zwecken eines Durchführens von allen oder Teilen von Operationen, die hierin offenbart sind.For purposes of illustration, programs and other executable program components are shown herein as discrete blocks, although it is understood that such programs and components reside in different memory components of the computing device at different times 1100 can sit, and through the processor (s) 1102 are executed. Alternatively, the systems and procedures described herein can be implemented in hardware or a combination of hardware, software, and / or firmware. For example, one or more application specific integrated circuits (ASICs) can be programmed to carry out one or more of the systems and procedures described herein. As used herein, the terms “module” or “component” are intended to promote the implementation device to accomplish a process, such as through hardware or a combination of hardware, software and / or firmware, for the purposes of performing all or part of Operations disclosed herein.

BeispieleExamples

Die folgenden Beispiele gehören zu weiteren Ausführungsformen.The following examples pertain to further embodiments.

Beispiel 1 ist ein Verfahren für computerlesbare Speichermedien, die Anweisungen speichern, die dann, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, veranlassen, dass die Prozessoren ein Teilungsobjekt in einem ersten Konto, das eine Teilungsrolle umfasst, erzeugen. Die Anweisungen veranlassen, dass der eine oder die mehreren Prozessoren ein oder mehrere Zugriffsrechte mit der Teilungsrolle assoziiert oder assoziieren, wobei das eine oder die mehreren Zugriffsrechte anzeigen, welche Objekte im ersten Konto zugreifbar sind, basierend auf dem Teilungsobjekt. Die Anweisungen veranlassen, dass der eine oder die mehreren Prozessoren einem zweiten Konto kontenübergreifende Zugriffsrechte zu der Teilungsrolle oder dem Teilungsobjekt im ersten Konto gewährt oder gewähren. Die Anweisungen veranlassen, dass der eine oder die mehreren Prozessoren vom zweiten Konto eine Aufforderung empfängt oder empfangen, auf Daten oder Dienste des ersten Kontos zuzugreifen. Die Anweisungen veranlassen, dass der eine oder die mehreren Prozessoren basierend auf den Daten oder Diensten des ersten Kontos eine Reaktion zu dem zweiten Konto bereitstellt oder bereitstellen.Example 1 is a method for computer readable storage media that stores instructions that, when executed by one or more processors, cause the processors to create a sharing object in a first account that includes a sharing role. The instructions cause the one or more processors to associate or associate one or more access rights with the sharing role, the one or more access rights indicating which objects are accessible in the first account based on the sharing object. The instructions cause the one or more processors to grant a second account cross-account access rights to the sharing role or object in the first account. The instructions cause the one or more processors to receive or receive a request from the second account to access data or services of the first account. The instructions cause the one or more processors to provide or provide a response to the second account based on the data or services of the first account.

Bei einem Beispiel 2 enthält oder enthalten das eine oder die mehreren Objekte im Beispiel 1 eines oder mehreres von einem Datenbankobjekt, einem Schema, einer Tabelle, einer Sequenz oder einer Funktion.In example 2, the one or more objects in example 1 contain or contain one or more of a database object, a schema, a table, a sequence or a function.

Bei einem Beispiel 3 veranlassen die Anweisungen bei einem der Beispiele 1-2 weiterhin, dass der eine oder die mehreren Prozessoren das eine oder die mehreren Zugriffsrechte mit der Teilungsrolle durch Speichern einer Liste von Objekten, für die die Teilungsrolle Rechte hat, assoziiert oder assoziieren.In Example 3, the instructions in any of Examples 1-2 further cause the one or more processors to associate or associate the one or more access rights with the sharing role by storing a list of objects to which the sharing role has rights.

Bei einem Beispiel 4 veranlassen die Anweisungen bei einem der Beispiele 1-3, dass der eine oder die mehreren Prozessoren das eine oder die mehreren Zugriffrechte durch Speichern einer Anzeige des zweiten Kontos in einer Liste von Konten, die Rechte zu der Teilungsrolle oder dem Teilungsobjekt im ersten Konto haben, gewährt oder gewähren.In Example 4, the instructions in any of Examples 1-3 cause the one or more processors to obtain the one or more access rights by storing an indication of the second account in a list of accounts that have rights to the sharing role or object in the first account have granted or granted.

Bei einem Beispiel 5 veranlassen die Anweisungen bei einem der Beispiele 1-4, dass der eine oder die mehreren Prozessoren die Aufforderung durch Empfangen einer Aufforderung, die zu einem Alias-Objekt im zweiten Konto gerichtet ist, empfängt oder empfangen.In Example 5, the instructions in any of Examples 1-4 cause the one or more processors to receive or receive the request by receiving a request directed to an alias object in the second account.

Bei einem Beispiel 6 veranlassen die Anweisungen bei einem der Beispiele 1-5, dass der eine oder die mehreren Prozessoren die Reaktion durch Verarbeiten der Aufforderung unter Verwendung eines virtuellen Lagers des zweiten Kontos bereitstellt oder bereitstellen.In example 6, in any of examples 1-5, the instructions cause the one or more processors to provide or provide the response by processing the request using a virtual warehouse of the second account.

Bei einem Beispiel 7 veranlassen die Anweisungen bei einem der Beispiele 1-6, dass der eine oder die mehreren Prozessoren die Reaktion durch Verarbeiten der Aufforderung ohne Erzeugen einer Duplikat-Tabelle oder einer anderen Datenquelle im zweiten Konto bereitstellt oder bereitstellen.In Example 7, the instructions in any of Examples 1-6 cause the one or more processors to provide or provide the response by processing the request without creating a duplicate table or other data source in the second account.

Bei einem Beispiel 8 veranlassen die Anweisungen bei einem der Beispiele 1-7, dass der eine oder die mehreren Prozessoren bestimmt oder bestimmen, dass das zweite Konto Zugriffsrechte zu den aufgeforderten Daten oder Diensten es ersten Kontos hat.In example 8, the instructions in any of examples 1-7 cause the one or more processors to determine or determine that the second account has access rights to the requested data or services of the first account.

Bei einem Beispiel 9 veranlassen die Anweisungen bei einem der Beispiele 1-8, dass der eine oder die mehreren Prozessoren bestimmt oder bestimmen, dass das zweite Konto Zugriffsrechte hat, durch Bestimmen, dass eine Gewährung von dem Teilungsobjekt oder der Teilungsrolle zum ersten Konto existiert.In Example 9, the instructions in any of Examples 1-8 cause the one or more processors to determine or determine that the second account has access rights by determining that a grant exists from the sharing object or role to the first account.

Bei einem Beispiel 10 veranlassen die Anweisungen bei einem der Beispiele 8-9, dass der eine oder die mehreren Prozessoren bestimmt oder bestimmen, dass das zweite Konto Zugriffsrechte hat, durch Bestimmen, das eine Verbindung zwischen einem Alias-Objekt im zweiten Konto zu den Daten oder Diensten des ersten Kontos existiert.In Example 10, the instructions in any of Examples 8-9 cause the one or more processors to determine or determine that the second account has access rights by determining which one connection between an alias object in the second account to the data or services of the first account exists.

Beispiel 11 ist ein mandantenfähiges Datenbanksystem, das eine Komponente für kontenübergreifende Rechte, eine Alias-Komponente und eine Zugriffskomponente enthält. Die Komponente für kontenübergreifende Rechte ist konfiguriert, um zu bestimmen, das kontenübergreifende Zugriffsrechte zu einer oder mehreren geteilten Ressourcen zu einem Zielkonto durch ein Teilerkonto gewährt worden sind. Die Alias-Komponente ist konfiguriert, um im Zielkonto ein Alias-Objekt entsprechend einer geteilten Ressource der einen oder mehreren Ressourcen im Teilerkonto zu erzeugen. Die Zugriffskomponente ist konfiguriert, um zuzulassen, dass das Zielkonto auf die geteilte Ressource unter Verwendung einer Aufforderung zugreift, die zum Alias-Objekt gerichtet ist.Example 11 is a multi-tenant database system that contains a component for cross-account rights, an alias component and an access component. The component for cross-account rights is configured to determine that cross-account access rights to one or more shared resources to a target account have been granted by a sharing account. The alias component is configured to generate an alias object in the target account in accordance with a shared resource of the one or more resources in the sharing account. The access component is configured to allow the target account to access the shared resource using a prompt directed to the alias object.

Bei einem Beispiel 12 ist die Alias-Komponente wie beim Beispiel 11 konfiguriert, um das Alias-Objekt im Zielkonto mit der geteilten Ressource im Teilerkonto zu verbinden.In an example 12, the alias component is configured as in example 11 to link the alias object in the target account to the shared resource in the sharing account.

Bei einem Beispiel 13 ist die Alias-Komponente wie bei einem der Beispiele 11-12 weiterhin konfiguriert, um zu einer Rolle im Zielkonto Zugriffsrechte zu einem Alias-Objekt zu gewähren.In an example 13 the alias component is further configured as in one of the examples 11-12 to grant access rights to an alias object for a role in the target account.

Bei einem Beispiel 14 enthält oder enthalten die eine oder mehreren geteilten Ressourcen wie bei einem der Beispiele 11-13 eines oder mehreres von einem Datenbankobjekt, einem Schema, einer Tabelle, einer Sequenz oder einer Funktion des Teilerkontos.In example 14, as in any of examples 11-13, the one or more shared resources include or contain one or more of a database object, schema, table, sequence, or function of the sharing account.

Bei einem Beispiel 15 ist die Komponente für kontenübergreifende Rechte wie bei einem der Beispiele 11-14 konfiguriert, um zu bestimmen, dass kontenübergreifende Rechte gewährt worden sind, basierend auf einer Liste von Konten, die Rechte zu einer Teilungsrolle oder einem Teilungsobjekt im Teilerkonto haben.In example 15, as in examples 11-14, the cross-account rights component is configured to determine that cross-account rights have been granted based on a list of accounts that have rights to a sharing role or object in the sharing account.

Bei einem Beispiel 16 ist die Zugriffskomponente wie bei einem der Beispiele 11-15 konfiguriert, um zuzulassen, dass das Zielkonto auf die geteilten Ressourcen in Reaktion auf ein Bestimmen zugreift, dass kontenübergreifende Zugriffsrechte gewährt worden sind, basierend auf der Existenz einer Gewährung von einem Teilungsobjekt oder einer Teilungsrolle im Teilerkonto zum Zielkonto.In example 16, as in any of examples 11-15, the access component is configured to allow the target account to access the shared resources in response to determining that cross-account access rights have been granted based on the existence of one Granting of a division object or a division role in the divider account to the target account.

Bei einem Beispiel 17 ist die Zugriffskomponente wie bei einem der Beispiele 11-15 konfiguriert, um zuzulassen, dass das Zielkonto auf die geteilten Ressourcen in Reaktion auf ein Bestimmen zugreift, dass kontenübergreifende Zugriffsrechte gewährt worden sind, basierend auf einer Verbindung, die zwischen einem Alias-Objekt im Zielkonto existiert, zu den Daten oder Diensten des Teilerkontos.In example 17, as in any of examples 11-15, the access component is configured to allow the target account to access the shared resources in response to a determination that cross-account access rights have been granted based on a connection established between an alias -Object exists in the target account for the data or services of the divider account.

Bei einem Beispiel 18 umfasst das System wie bei einem der Beispiele 11-16 weiterhin eine Verarbeitungskomponente, die konfiguriert ist, um die geteilten Ressourcen im Teilerkonto ohne ein Erzeugen einer Kopie einer Datenressource im Zielkonto zu verarbeiten.In example 18, as in any of examples 11-16, the system further includes a processing component configured to process the shared resources in the sharing account without creating a copy of a data resource in the target account.

Bei einem Beispiel 19 enthält das System wie bei einem der Beispiele 11-16 weiterhin eine Verarbeitungskomponente, die konfiguriert ist, um die Reaktion unter Verwendung eines virtuellen Lagers des zweiten Kontos bereitzustellen.In Example 19, as in any of Examples 11-16, the system further includes a processing component configured to provide the response using a virtual warehouse of the second account.

Bei einem Beispiel 20 ist die Verarbeitungskomponente wie bei einem der Beispiele 18-18 konfiguriert, um eine Reaktion auf eine Aufforderung durch Verarbeiten der Aufforderung unter Verwendung von Original-Daten im Teilerkonto bereitzustellen.In an example 20, the processing component is configured as in any of examples 18-18 to provide a response to a request by processing the request using original data in the sharing account.

Beispiel 21 ist ein Verfahren zum Bereitstellen eines Zugriffs auf geteilte Daten in einer mandantenfähigen Datenbank. Das Verfahren enthält ein Bestimmen, dass ein erstes Konto einem zweiten Konto einen Zugriff auf ein Datenbankobjekt des ersten Kontos gewährt hat. Das Verfahren enthält ein Empfangen einer Aufforderung vom zweiten Konto, auf das Datenobjekt entsprechend dem ersten Konto zuzugreifen. Das Verfahren enthält ein Verarbeiten der Aufforderung unter Verwendung eines virtuellen Lagers entsprechend dem zweiten Konto, wobei das virtuelle Lager eine Gruppe von einem oder mehreren Computerknoten umfasst, die konfiguriert sind, um auf Daten in einer Speicherschicht entsprechend dem ersten Konto zuzugreifen, um eine Reaktion auf die Aufforderung zu erzeugen.Example 21 is a method for providing access to shared data in a multi-tenant database. The method includes determining that a first account has granted a second account access to a database object of the first account. The method includes receiving a request from the second account to access the data object corresponding to the first account. The method includes processing the request using a virtual warehouse corresponding to the second account, the virtual warehouse comprising a group of one or more computer nodes configured to access data in a storage tier corresponding to the first account to respond to to generate the request.

Bei einem Beispiel 22 enthält ein Bestimmen, dass das erste Konto einem zweiten Konto einen Zugriff gewährt hat, wie beim Beispiel 21, ein Bestimmen, dass das erste Konto auflistet, dass das zweite Konto Rechte zu einem Teilungsobjekt oder einer Teilungsrolle im ersten Konto hat, wobei das Teilungsobjekt oder die Teilungsrolle Zugriffsrechte zum Datenbankobjekt des ersten Kontos hat.In example 22, determining that the first account has granted access to a second account, as in example 21, includes determining that the first account lists that the second account has rights to a sharing object or role in the first account, wherein the sharing object or the sharing role has access rights to the database object of the first account.

Bei einem Beispiel 23 enthält ein Empfangen der Aufforderung wie bei einem der Beispiele 21-22 ein Empfangen einer Aufforderung, die in Richtung zu einem Alias-Objekt im zweiten Konto gerichtet ist, wobei das Alias-Objekt mit dem Datenbankobjekt verbunden ist.In example 23, as in any of Examples 21-22, receiving the request includes receiving a request directed toward an alias object in the second account, the alias object associated with the database object.

Bei einem Beispiel 24 enthält ein Bereitstellen der Reaktion wie bei einem der Beispiele 21-23 ein Verarbeiten der Aufforderung unter Verwendung von Daten in einem Datenobjekt des ersten Kontos.In example 24, providing the response as in any of Examples 21-23 includes processing the request using data in a data object of the first account.

Beispiel 25 ist eine Vorrichtung, die Mittel enthält, um ein Verfahren durchzuführen oder eine Vorrichtung oder ein System zu realisieren, wie bei einem der Beispiele 1-20.Example 25 is an apparatus that contains means for performing a method or realizing an apparatus or system, as in any of Examples 1-20.

Beispiel 26 ist ein maschinenlesbarer Speicher, der maschinenlesbare Anweisungen enthält, die dann, wenn sie ausgeführt werden, ein Verfahren implementieren oder eine Vorrichtung realisieren von einem der Beispiele 11-25.Example 26 is machine-readable memory that contains machine-readable instructions that, when executed, implement a method or implement an apparatus of any of Examples 11-25.

Verschiedene Techniken oder bestimmte Aspekte oder Teilbereiche davon können die Form eines Programmcodes (d.h. Anweisungen) annehmen, der in konkreten Medien verkörpert ist, wie beispielsweise Floppydisks, CD-ROMs, Festplattenlaufwerken, einem nichtflüchtigen computerlesbaren Speichermedium oder irgendeinem anderen maschinenlesbaren Speichermedium, wobei dann, wenn der Programmcode in eine Maschine geladen und durch diese ausgeführt wird, wie beispielsweise einen Computer, die Maschine eine Vorrichtung zum Ausführen der verschiedenen Techniken wird. Im Fall einer Programmcodeausführung auf programmierbaren Computern kann die Computervorrichtung einen Prozessor, ein Speichermedium, das durch den Prozessor lesbar ist (der einen flüchtigen und nichtflüchtigen Speicher und/oder Speicherelemente enthält), wenigstens eine Eingabevorrichtung und wenigstens eine Ausgabevorrichtung enthalten. Der flüchtige und der nichtflüchtige Speicher und/oder die Speicherelemente können ein RAM, ein EPROM, ein Speicherstück, ein optisches Laufwerk, ein magnetisches Festplattenlaufwerk oder ein anderes Medium zum Speichern elektronischer Daten sein. Ein oder mehrere Programme, die die verschiedenen Techniken implementieren oder verwenden, die hierin beschrieben sind, können eine Anwendungsprogrammierschnittstelle (API), wiederverwendbare Steuerungen und ähnliches verwenden. Solche Programme können in einer verfahrensmäßigen, funktionellen, objektorientierten Programmiersprache auf hoher Ebene implementiert sein, um mit einem Computersystem zu kommunizieren. Jedoch kann (können) das Programm (die Programme) in Assembler- oder Maschinensprache implementiert sein, wenn es erwünscht ist. In jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein und mit Hardwareimplementierungen kombiniert sein.Various techniques or certain aspects or portions thereof may take the form of program code (i.e. instructions) embodied in particular media such as floppy disks, CD-ROMs, hard disk drives, a non-transitory computer-readable storage medium, or any other machine-readable storage medium, where, if the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for executing the various techniques. In the case of program code execution on programmable computers, the computer device may include a processor, a storage medium readable by the processor (which contains volatile and non-volatile memory and / or storage elements), at least one input device and at least one output device. The volatile and non-volatile memory and / or the storage elements can be a RAM, an EPROM, a memory stick, an optical drive, a magnetic hard disk drive or another medium for storing electronic data. One or more programs that implement or use the various techniques described herein may use an application programming interface (API), reusable controls, and the like. Such programs can be implemented in a procedural, functional, object-oriented, high-level programming language to communicate with a computer system. However, the program (s) can be implemented in assembly or machine language if desired. In either case, the language can be a compiled or interpreted language and combined with hardware implementations.

Es sollte verstanden werden, dass viele der in dieser Beschreibung beschriebenen funktionellen Einheiten als eine oder mehrere Komponenten oder Module implementiert sein können, die Ausdrücke sind, die verwendet werden, um ihre Implementierungsunabhängigkeit spezieller hervorzuheben. Beispielsweise kann eine Komponente oder ein Modul als eine Hardwareschaltung implementiert sein, die kundenspezifische Schaltungen sehr hoher Integration (VLSI) oder Gate-Arrays, Standard-Halbleiter, wie beispielsweise Logikchips, Transistoren oder andere diskrete Komponenten umfasst. Eine Komponente kann auch in programmierbaren Hardwarevorrichtungen, wie beispielsweise feldprogrammierbaren Gate-Arrays, programmierbarer Array-Logik, programmierbaren Logikvorrichtungen oder ähnlichem implementiert sein.It should be understood that many of the functional units described in this specification can be implemented as one or more components or modules, which are terms used to more specifically emphasize their implementation independence. For example, a component or module can be implemented as a hardware circuit that includes custom very high integration (VLSI) circuits or gate arrays, standard semiconductors such as logic chips, transistors, or other discrete components. A component can also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices, or the like.

Komponenten können auch in Software zur Ausführung durch verschiedene Typen von Prozessoren implementiert sein. Eine identifizierte Komponente eines ausführbaren Codes kann beispielsweise einen oder mehrere physikalische oder logische Blöcke von Computeranweisungen umfassen, die beispielsweise als ein Objekt, eine Prozedur oder eine Funktion organisiert sein können. Nichtsdestoweniger müssen die ausführbaren einer identifizierten Komponente nicht physikalisch zusammen angeordnet sein, sondern können getrennte Anweisungen umfassen, die an unterschiedlichen Standorten gespeichert sind, die dann, wenn sie logisch miteinander verbunden werden, die Komponente umfassen und den angegebenen Zweck für die Komponente erreichen.Components can also be implemented in software for execution by various types of processors. An identified component of executable code can, for example, comprise one or more physical or logical blocks of computer instructions, which can be organized, for example, as an object, a procedure or a function. Nonetheless, the executables of an identified component need not be physically co-located, but may include separate instructions stored in different locations which, when logically linked together, comprise the component and achieve the stated purpose for the component.

Tatsächlich kann eine Komponente eines ausführbaren Codes eine einzelne Anweisung oder viele Anweisungen sein und kann sogar über mehrere unterschiedliche Codesegmente, unter unterschiedlichen Programmen und quer über mehrere Speichervorrichtungen verteilt sein. Gleichermaßen können Operationsdaten hierin innerhalb von Komponenten identifiziert und dargestellt sein und können in irgendeiner geeigneten Form verkörpert und innerhalb von irgendeinem geeigneten Typ einer Datenstruktur organisiert sein. Die Operationsdaten können als eine einzelne Datengruppe gesammelt werden oder können über unterschiedliche Standorte, einschließlich über unterschiedliche Speichervorrichtungen, verteilt sein und können wenigstens teilweise lediglich als elektronische Signale auf einem System oder Netzwerk existieren. Die Komponenten können passiv oder aktiv sein, einschließlich Agenten, die betreibbar sind, um erwünschte Funktionen durchzuführen.Indeed, a component of executable code can be a single instruction or multiple instructions and can even be distributed over several different code segments, under different programs, and across several storage devices. Likewise, operational data may be identified and represented herein within components and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data can be collected as a single data group or can be distributed over different locations, including over different storage devices, and can exist at least in part only as electronic signals on a system or network. The components can be passive or active, including agents that are operable to perform desired functions.

Eine Bezugnahme in dieser gesamten Beschreibung auf „ein Beispiel“ bedeutet, dass ein besonderes Merkmal, eine besondere Struktur oder eine besondere Eigenschaft, welche in Verbindung mit dem Beispiel beschrieben ist, in wenigstens einer Ausführungsform der vorliegenden Offenbarung enthalten ist. Somit sind Erscheinungen der Phrase „bei einem Beispiel“ an verschiedenen Stellen in dieser gesamten Beschreibung nicht notwendigerweise alle bezugnehmend auf dieselbe Ausführungsform.Reference throughout this specification to “an example” means that a particular feature, structure, or characteristic described in connection with the example is included in at least one embodiment of the present disclosure. Thus, appearances of the phrase “in one example” in various places throughout this specification are not necessarily all referring to the same embodiment.

Wie sie hierin verwendet sind, kann eine Vielzahl von Elementen, strukturellen Elementen, Kompositionselementen und/oder Materialien der Annehmlichkeit halber in einer gemeinsamen Liste präsentiert werden. Jedoch sollten diese Listen ausgelegt werden, als ob jedes Element der Liste individuell als separates und einzigartiges Element identifiziert ist. Somit sollte kein individuelles Element einer solchen Liste als tatsächlich äquivalent für irgendein anderes Element derselben Liste einzig basierend auf seiner Präsentation in einer gemeinsamen Gruppe ohne Anzeichen für das Gegenteil ausgelegt werden. Zusätzlich kann auf verschiedene Ausführungsformen und Beispiele der vorliegenden Offenbarung hierin zusammen mit Alternativen für die verschiedenen Komponenten davon Bezug genommen werden. Es wird verstanden, dass solche Ausführungsformen, Beispiele und Alternativen nicht als tatsächliche Äquivalente füreinander auszulegen sind, sondern als separate und autonome Darstellungen der vorliegenden Offenbarung anzusehen sind.As used herein, a plurality of elements, structural elements, compositional elements, and / or materials may be presented in a common list for convenience. However, these lists should be construed as if each element of the list is individually identified as a separate and unique element. Thus, no individual element of such a list should be construed as being actually equivalent to any other element of the same list solely based on its presentation in a common group with no evidence to the contrary. Additionally, various embodiments and examples of the present disclosure may be referred to herein along with alternatives for the various components thereof. It is understood that such embodiments, examples, and alternatives are not to be construed as actual equivalents for one another, but are to be viewed as separate and autonomous representations of the present disclosure.

Obwohl das Vorangehende in einigem Detail zu Zwecken der Klarheit beschrieben worden ist, wird es offensichtlich werden, dass bestimmte Änderungen und Modifikationen durchgeführt werden können, ohne von den Prinzipien davon abzuweichen. Es sollte bemerkt werden, dass es viele alternative Arten zum Implementieren von sowohl den Prozessen als auch den Vorrichtungen gibt, die hierin beschrieben sind. Demgemäß sind die vorliegenden Ausführungsformen als illustrativ und nicht als beschränkend anzusehen.Although the foregoing has been described in some detail for purposes of clarity, it will be apparent that certain changes and modifications can be made without departing from the principles thereof. It should be noted that there are many alternative ways of implementing both the processes and the devices described herein. Accordingly, the present embodiments are to be viewed in an illustrative rather than a restrictive sense.

Fachleute auf dem Gebiet werden erkennen, dass viele Änderungen an den Details der oben beschriebenen Ausführungsformen durchgeführt werden können, ohne von den zugrundeliegenden Prinzipien der Offenbarung abzuweichen. Der Schutzbereich der vorliegenden Offenbarung soll daher nur durch die folgenden Ansprüche bestimmt sein.Those skilled in the art will recognize that many changes can be made in the details of the embodiments described above without departing from the underlying principles of the disclosure. The scope of protection of the present disclosure is therefore intended to be determined only by the following claims.

Ein Computerprogramm zum Teilen von Daten in einer mandantenfähigen Datenbank führt Operation aus umfassend ein Erzeugen eines Teilungsobjekts in einem ersten Konto, das eine Teilungsrolle umfasst. Die Operationen umfassen ein Assoziieren von einem oder mehreren Zugriffsrechten mit der Teilungsrolle, wobei das eine oder die mehreren Zugriffsrechte anzeigt oder anzeigen, welche Objekte im ersten Konto zugreifbar sind, basierend auf dem Teilungsobjekt. Die Operationen umfassen ein Gewähren, zum zweiten Konto, von kontenübergreifenden Zugriffsrechten zu der teilungsrolle oder dem Teilungsobjekt im ersten Konto. Die Operationen umfassen ein Empfangen einer Aufforderung vom zweiten Konto, auf Daten oder Dienste des ersten Kontos zuzugreifen. Die Operationen umfassen weiterhin ein Bereitstellen einer Reaktion zum zweiten Konto basierend auf den Daten oder Diensten des ersten Kontos.A computer program for sharing data in a multi-tenant database performs an operation comprising creating a sharing object in a first account that includes a sharing role. The operations include associating one or more access rights with the sharing role, the one or more access rights indicating or indicating which objects in the first account are accessible based on the sharing object. The operations include granting, to the second account, cross-account access rights to the sharing role or object in the first account. The operations include receiving a request from the second account to access data or services of the first account. The operations further include providing a response to the second account based on the data or services of the first account.

Claims (35)

System umfassend: Mittel zum Bestimmen, dass ein erstes Konto einer mandantenfähigen Datenbank einem zweiten Konto einer mandantenfähigen Datenbank Zugriffsrechte eines Teilungsobjekts in dem ersten Account gewährt, wobei das Teilungsobjekt Zugriffsrechte auf ein Datenbankobjekt des ersten Kontos gewährt und wobei Zugriff auf das Datenbankobjekt des ersten Kontos durch das zweite Konto auf den Zugriffsrechten des Teilungsobjekts basiert; Mittel zum Erzeugen eines Alias-Objekts, das auf das Datenbankobjekt des ersten Kontos Bezug nimmt und als Proxy des Datenbankobjekts dient; Mittel zum Verknüpfen des Alias-Objekts mit dem Datenbankobjekt; und Mittel zum Gewähren der Zugriffsrechte des zweiten Kontos auf das Alias-Objekt, so dass das zweite Konto mit den Zugriffsrechten des Teilungsobjekts und über das Alias-Objekt auf das Datenbankobjekt zugreift, ohne das Datenbankobjekt zu kopieren.System comprehensive: Means for determining that a first multi-tenant database account grants a second multi-tenant database account access rights to a shared object in the first account, the shared object grants access rights to a database object of the first account, and the second account having access to the database object of the first account based on the access rights of the shared object; Means for generating an alias object which refers to the database object of the first account and serves as a proxy for the database object; Means for linking the alias object to the database object; and Means for granting the access rights of the second account to the alias object, so that the second account accesses the database object with the access rights of the sharing object and via the alias object without copying the database object. System nach Anspruch 1, umfassend ferner Mittel zum Empfangen einer Aufforderung von dem zweiten Konto, auf das Datenbankobjekt zuzugreifen, wobei die Aufforderung von dem zweiten Konto an das Alias-Objekt gerichtet ist.System according to Claim 1 further comprising means for receiving a request from the second account to access the database object, the request from the second account being directed to the alias object. System nach Anspruch 2 umfassend ferner Mittel zur Verarbeitung der Aufforderung von dem zweiten Konto unter Verwendung eines virtuellen Lagers, das dem zweiten Konto entspricht, wobei das virtuelle Lager eine Gruppe von einem oder mehreren Rechenknoten umfasst, die zum Zugriff auf Daten in einer Speicherschicht konfiguriert sind, die dem ersten Konto entspricht, um eine Reaktion auf die Aufforderung zu erzeugen.System according to Claim 2 further comprising means for processing the request from the second account using a virtual warehouse corresponding to the second account, the virtual warehouse comprising a group of one or more computing nodes configured to access data in a storage tier corresponding to the first Account corresponds to generate a response to the prompt. Ein nicht-transitorisches computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, die dann, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu veranlassen: zu bestimmen, dass ein erstes Konto einer mandantenfähigen Datenbank einem zweiten Konto der mandantenfähigen Datenbank Zugriffsrechte eines Teilungsobjekts in dem ersten Konto gewährt, wobei das Teilungsobjekt Zugriffsrechte auf ein Datenbankobjekt des ersten Kontos hat und wobei der Zugriff auf das Datenbankobjekt des ersten Kontos durch das zweite Konto auf den Zugriffsrechten des Teilungsobjekts basiert; durch den einen oder mehrere Prozessoren ein Alias-Objekt zu erzeugen, das auf das Datenbankobjekt des ersten Kontos Bezug nimmt und als ein Proxy des Datenbankobjekts dient; das Alias-Objekt mit dem Datenbankobjekt zu verknüpfen; und dem zweiten Konto Zugriffsrechte auf das Alias-Objekt gewähren, so dass das zweite Konto mit den Zugriffsrechten des Teilungsobjekts und über das Alias-Objekt auf das Datenbankobjekt zugreift, ohne das Datenbankobjekt zu kopieren.A non-transitory computer-readable storage medium that stores instructions that, when executed by one or more processors, cause the one or more processors to: determine that a first account of a multi-tenant database grants a second account of the multi-tenant database access rights of a shared object in the first account, the shared object having access rights to a database object of the first account and wherein the second account has access to the database object of the first account based on the access rights of the shared object; generate, by the one or more processors, an alias object that references the database object of the first account and serves as a proxy of the database object; link the alias object to the database object; and grant the second account access rights to the alias object, so that the second account with the access rights of the sharing object and via the alias object accesses the database object without copying the database object. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei das Datenbankobjekt Datenbankdaten umfasst, die mit dem ersten Konto der mandantenfähigen Datenbank assoziiert sind.Non-transitory computer readable storage media according to Claim 4 wherein the database object comprises database data associated with the first account of the multi-tenant database. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei zum Bestimmen, dass das erste Konto dem zweiten Konto Zugriffsrechte auf das Teilungsobjekt gewährt, der eine oder die mehreren Prozessoren auf eine Liste von Objekten Bezug nehmen sollen, die angibt, für welche Datenbankobjekte das zweite Konto Zugriffsrechte hat.Non-transitory computer readable storage media according to Claim 4 wherein for determining that the first account grants the second account access rights to the sharing object that one or more processors are to refer to a list of objects indicating which database objects the second account has access rights to. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei der eine oder die mehreren Prozessoren ferner eine Liste von Konten speichern sollen, die Zugriffsrechte auf das Datenbankobjekt des ersten Kontos haben.Non-transitory computer readable storage media according to Claim 4 wherein the one or more processors are further to store a list of accounts that have access rights to the database object of the first account. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, eine Aufforderung vom zweiten Konto zum Zugriff auf das Datenbankobjekt zu erhalten, wobei die Aufforderung an das Alias-Objekt gerichtet ist.Non-transitory computer readable storage media according to Claim 4 wherein the one or more processors are further operative to receive a request from the second account to access the database object, the request being directed to the alias object. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 8, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, die Aufforderung von dem zweiten Konto unter Verwendung eines virtuellen Lagers entsprechend dem zweiten Konto zu verarbeiten, wobei das virtuelle Lager eine Gruppe von einem oder mehreren Rechenknoten umfasst, die zum Zugriff auf Daten in einer Speicherschicht entsprechend dem ersten Konto konfiguriert sind, um eine Reaktion auf die Aufforderung zu erzeugen.Non-transitory computer readable storage media according to Claim 8 wherein the one or more processors further serve to process the request from the second account using a virtual warehouse corresponding to the second account, the virtual warehouse comprising a group of one or more computing nodes that are used to access data in a Storage tier configured according to the first account to generate a response to the prompt. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, das Alias-Objekt in einer Speicherschicht der mandantenfähigen Datenbank zu speichern, die mit dem zweiten Konto assoziiert ist.Non-transitory computer readable storage media according to Claim 4 wherein the one or more processors further serve to store the alias object in a storage tier of the multi-tenant database associated with the second account. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei das Datenbankobjekt eine Datengruppe ist und das erste Konto mehreren anderen Konten Zugriffsrechte auf das Datenbankobjekt gewährt, so dass die mehreren anderen Konten die Datengruppe lesen können, ohne die Datengruppe aufzunehmen oder zu kopieren.Non-transitory computer readable storage media according to Claim 4 wherein the database object is a data group and the first account grants multiple other accounts access rights to the database object so that the multiple other accounts can read the data group without recording or copying the data group. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei der eine oder die mehreren Prozessoren weiterhin dazu dienen, eine von dem zweiten Konto erhaltene Anfrage auszuführen, die auf Daten gerichtet ist, die in dem Datenbankobjekt des ersten Kontos gespeichert sind, indem sie das Datenbankobjekt mittels des Alias-Objekts lesen.Non-transitory computer readable storage media according to Claim 4 wherein the one or more processors further serve to execute a request received from the second account directed to data stored in the database object of the first account by reading the database object using the alias object. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei das Datenbankobjekt des ersten Kontos nur ein Teilbereich der Daten ist, die mit dem ersten Konto assoziiert sind, und wobei das erste Konto dem zweiten Konto keine Zugriffsrechte auf alle Daten gewährt, die mit dem ersten Konto assoziiert sind.Non-transitory computer readable storage media according to Claim 4 wherein the database object of the first account is only a portion of the data associated with the first account, and wherein the first account does not grant the second account access rights to any data associated with the first account. Ein System, umfassend: Geteilte Speicherressourcen zum Speichern von Datenbankdaten, wobei das System ein mandantenfähiges Datenbanksystem ist und die geteilten Speicherressourcen durch eine Vielzahl von Konten des mandantenfähigen Datenbanksystems zugreifbar sind; und einen oder mehrere Prozessoren zum: Bestimmen, dass ein erstes Konto des mandantenfähigen Datenbanksystems einem zweiten Konto des mandantenfähigen Datenbanksystems Zugriffsrechte auf ein Teilungsobjekt in dem ersten Konto gewährt, wobei das Teilungsobjekt Zugriffsrechte auf ein Datenbankobjekt des ersten Kontos hat und wobei Zugriffe auf das Datenbankobjekt des ersten Kontos durch das zweite Konto auf den Zugriffsrechten des Teilungsobjekts basieren; Erzeugen eines Alias-Objekts, das auf das Datenbankobjekt des ersten Kontos Bezug nimmt und als ein Proxy des Datenbankobjekts dient; Verknüpfen des Alias-Objekts mit dem Datenbankobjekt; und Gewährung der Zugriffsrechte des zweiten Kontos auf das Alias-Objekt, so dass das zweite Konto mit den Zugriffsrechten des Teilungsobjekt und über das Alias-Objekt auf das Datenbankobjekt zugreift, ohne das Datenbankobjekt zu kopieren.A system comprising: Shared memory resources for storing database data, the system being a multi-tenant database system and the shared memory resources being accessible by a plurality of accounts of the multi-tenant database system; and one or more processors for: Determine that a first account of the multi-tenant database system grants a second account of the multi-tenant database system access rights to a shared object in the first account, the shared object having access rights to a database object of the first account and access to the database object of the first account by the second account based on the access rights of the shared object; Creating an alias object that references the database object of the first account and serves as a proxy of the database object; Linking the alias object to the database object; and Granting the access rights of the second account to the alias object, so that the second account accesses the database object with the access rights of the sharing object and via the alias object without copying the database object. System nach Anspruch 14, wobei zur Bestimmung, dass das erste Konto dem zweiten Konto Zugriffsrechte gewährt, der eine oder die mehreren Prozessoren Bezug auf eine Liste von Objekten nehmen sollen, die angibt, für welche Datenbankobjekte das zweite Konto Zugriffsrechte hat.System according to Claim 14 wherein to determine that the first account grants the second account access rights that one or more processors should refer to a list of objects indicating which database objects the second account has access rights to. System nach Anspruch 14, wobei eine Vielzahl von virtuellen Lagern über die Vielzahl von Konten verteilt ist und wobei die geteilten Speicherressourcen und die Vielzahl von virtuellen Lagern getrennt und unabhängig skalierbar sind.System according to Claim 14 wherein a plurality of virtual warehouses are distributed across the plurality of accounts, and wherein the shared storage resources and the plurality of virtual warehouses are separately and independently scalable. System nach Anspruch 14, wobei das Datenbankobjekt Datenbankdaten umfasst, die mit dem ersten Konto des mandantenfähigen Datenbanksystems assoziiert sind.System according to Claim 14 wherein the database object comprises database data associated with the first account of the multi-tenant database system. System nach Anspruch 16, wobei mehrere virtuelle Lager der Vielzahl von virtuellen Lagern über die geteilten Speicherressourcen gleichzeitig auf das Datenbankobjekt zugreifen können.System according to Claim 16 wherein a plurality of virtual warehouses of the plurality of virtual warehouses can simultaneously access the database object via the shared storage resources. System nach Anspruch 14, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, einen Hinweis darauf zu speichern, dass das erste Konto dem zweiten Konto Zugriffsrechte auf das Datenbankobjekt in einer Liste von Teilungsobjekten gewährt, wobei die Liste der Teilungsobjekte angibt, welche Konten Zugriffsrechte auf welche Freigabeobjekte haben, die mit dem ersten Konto assoziiert sind.System according to Claim 14 wherein the one or more processors further serve to store an indication that the first account grants the second account access rights to the database object in a list of sharing objects, the list of sharing objects indicating which accounts have access rights to which sharing objects associated with the first account. System nach Anspruch 14, wobei das Datenbankobjekt des ersten Kontos nur ein Teilbereich der Daten ist, die mit dem ersten Konto assoziiert sind, und wobei das erste Konto dem zweiten Konto nicht für alle Daten, die mit dem ersten Konto assoziiert sind, Zugriffsrechte gewährt.System according to Claim 14 wherein the database object of the first account is only a subset of the data associated with the first account, and wherein the first account does not grant the second account access to all data associated with the first account. System nach Anspruch 16, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, eine Anfrage von dem zweiten Konto zu erhalten, die auf Daten gerichtet ist, die in dem Datenbankobjekt des ersten Kontos gespeichert sind.System according to Claim 16 wherein the one or more processors are further operative to receive a request from the second account directed to data stored in the database object of the first account. System nach Anspruch 21, wobei die Vielzahl der virtuellen Lager ein virtuelles Lager umfasst, das dem zweiten Konto zugeordnet ist, wobei das virtuelle Lager, das dem zweiten Konto zugeordnet ist, so konfiguriert ist, dass es die Abfrage durch Lesen des Datenbankobjekts mittels des Alias-Objekts ausführt.System according to Claim 21 wherein the plurality of virtual warehouses includes a virtual warehouse associated with the second account, the virtual warehouse associated with the second account configured to perform the query by reading the database object using the alias object. System nach Anspruch 14, wobei der eine oder die mehreren Prozessoren ferner dazu dienen, das Alias-Objekt in einer Speicherschicht der geteilten Speicherressourcen zu speichern, die mit dem zweiten Konto assoziiert ist.System according to Claim 14 wherein the one or more processors further serve to store the alias object in a storage tier of shared storage resources associated with the second account. Ein Computerprogramm, das Anweisungen umfasst, die dann, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren Operationen ausführen, die Folgendes umfassen: Bestimmen, dass ein erstes Konto einer mandantenfähigen Datenbank einem zweiten Konto der mandantenfähigen Datenbank Zugriffsrechte eines Teilungsobjekts in dem ersten Konto gewährt, wobei das Teilungsobjekt Zugriffsrechte auf ein Datenbankobjekt des ersten Kontos hat und wobei der Zugriff auf das Datenbankobjekt des ersten Kontos durch das zweite Konto auf den Zugriffsrechten des Teilungsobjekts basiert; Erzeugen, durch einen oder mehrere Prozessoren, eines Alias-Objekts, das auf das Datenbankobjekt des ersten Kontos Bezug nimmt und als ein Proxy des Datenbankobjekts dient; Verknüpfung des Alias-Objekts mit dem Datenbankobjekt; und Gewährung der Zugriffsrechte des zweiten Kontos auf das Alias-Objekt, so dass das zweite Konto mit den Zugriffsrechten des Freigabeobjekts und über das Alias-Objekt auf das Datenbankobjekt zugreift, ohne das Datenbankobjekt zu kopieren.A computer program comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: determining that a first multi-tenant database account is associated with a second multi-tenant database Database access rights of a Granting the sharing object in the first account, the sharing object having access rights to a database object of the first account and wherein the access to the database object of the first account by the second account is based on the access rights of the sharing object; Creating, by one or more processors, an alias object that references the database object of the first account and serves as a proxy of the database object; Linking the Alias object to the database object; and granting the access rights of the second account to the alias object, so that the second account accesses the database object with the access rights of the release object and via the alias object without copying the database object. Computerprogramm nach Anspruch 24, wobei die Operationen ferner das Empfangen einer Aufforderung des zweiten Kontos zum Zugriff auf das Datenbankobjekt umfassen, wobei die Aufforderung des zweiten Kontos an das Alias-Objekt gerichtet ist.Computer program after Claim 24 wherein the operations further include receiving a request from the second account to access the database object, wherein the request from the second account is directed to the alias object. Computerprogramm nach Anspruch 25, wobei die Operationen ferner das Verarbeiten der Aufforderung des zweiten Kontos unter Verwendung eines virtuellen Lagers umfassen, das dem zweiten Konto entspricht, wobei das virtuelle Lager eine Gruppe von einem oder mehreren Rechenknoten umfasst, die so konfiguriert sind, dass sie auf Daten in einer Speicherschicht zugreifen, die dem ersten Konto entspricht, um eine Reaktion auf die Aufforderung zu erzeugen.Computer program after Claim 25 wherein the operations further include processing the request of the second account using a virtual warehouse that corresponds to the second account, the virtual warehouse comprising a group of one or more compute nodes configured to access data in a storage tier that corresponds to the first account to generate a response to the prompt. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei das Datenbankobjekt Datenbank-Metadaten umfasst.Non-transitory computer readable storage media according to Claim 4 wherein the database object comprises database metadata. Nicht-transitorische computerlesbare Speichermedien nach Anspruch 4, wobei das Datenbankobjekt eines oder mehrere eines Schemas, einer Tabelle, einer Sequenz oder einer Funktion umfasst.Non-transitory computer readable storage media according to Claim 4 , wherein the database object comprises one or more of a schema, a table, a sequence or a function. System nach Anspruch 14, wobei das Datenbankobjekt Datenbank-Metadaten umfasst.System according to Claim 14 wherein the database object comprises database metadata. System nach Anspruch 14, wobei das Datenbankobjekt eines oder mehrere eines Schemas, einer Tabelle, einer Sequenz oder einer Funktion umfasst.System according to Claim 14 , wherein the database object comprises one or more of a schema, a table, a sequence or a function. Computerprogramm nach Anspruch 24, wobei die Operationen ferner das Speichern eines Hinweises, dass das erste Konto dem zweiten Konto Zugriffsrechte auf das Datenbankobjekt gewährt, in einer Liste von Teilungsobjekten umfassen, wobei die Liste der Teilungsobjekte anzeigt, welche Konten Zugriffsrechte auf welche Teilungsobjekte haben, die mit dem ersten Konto verbunden sind.Computer program after Claim 24 wherein the operations further comprise storing an indication that the first account grants the second account access rights to the database object in a list of division objects, the list of division objects indicating which accounts have access rights to which division objects associated with the first account are connected. Computerprogramm nach Anspruch 24, wobei das Datenbankobjekt eine Datengruppe ist und das erste Konto mehreren anderen Konten der mandantenfähigen Datenbank Zugriffsrechte auf das Datenbankobjekt gewährt, so dass die mehreren anderen Konten die Datengruppe lesen können, ohne die Datengruppe aufzunehmen oder zu kopieren, wobei ein oder mehrere virtuelle Lager, die den mehreren anderen Konten entsprechen, verwendet werden.Computer program after Claim 24 , wherein the database object is a data group and the first account grants several other accounts of the multi-tenant database access rights to the database object so that the several other accounts can read the data group without recording or copying the data group, whereby one or more virtual warehouses, the that correspond to several other accounts. Computerprogramm nach Anspruch 32, wobei die geteilten Speicherressourcen und das eine oder die mehreren virtuellen Lager getrennt und unabhängig voneinander skalierbar sind.Computer program after Claim 32 , wherein the shared storage resources and the one or more virtual warehouses are separate and independently scalable. Computerprogramm nach Anspruch 24, wobei das Datenbankobjekt des ersten Kontos nur ein Teilbereich der Daten ist, die mit dem ersten Konto verbunden sind, und wobei das erste Konto dem zweiten Konto nicht die Zugriffsrechte auf alle Daten gewährt, die mit dem ersten Konto verbunden sind.Computer program after Claim 24 wherein the database object of the first account is only a subset of the data associated with the first account, and wherein the first account does not grant the second account access rights to all data associated with the first account. Computerprogramm nach Anspruch 24, wobei das Datenbankobjekt Datenbankdaten umfasst, die mit dem ersten Konto der mandantenfähigen Datenbank verbunden sind.Computer program after Claim 24 wherein the database object comprises database data associated with the first account of the multi-tenant database.
DE202018006529.3U 2017-01-10 2018-01-10 Common use or sharing of data in a multi-tenant database system Active DE202018006529U1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/402,906 2017-01-10
US15/402,906 US10592681B2 (en) 2017-01-10 2017-01-10 Data sharing in a multi-tenant database system

Publications (1)

Publication Number Publication Date
DE202018006529U1 true DE202018006529U1 (en) 2021-01-14

Family

ID=62783605

Family Applications (3)

Application Number Title Priority Date Filing Date
DE202018006529.3U Active DE202018006529U1 (en) 2017-01-10 2018-01-10 Common use or sharing of data in a multi-tenant database system
DE202018006346.0U Active DE202018006346U1 (en) 2017-01-10 2018-01-10 Share or share data in a multi-tenant database system
DE202018006561.7U Active DE202018006561U1 (en) 2017-01-10 2018-01-10 Common use or sharing of data in a multi-tenant database system

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE202018006346.0U Active DE202018006346U1 (en) 2017-01-10 2018-01-10 Share or share data in a multi-tenant database system
DE202018006561.7U Active DE202018006561U1 (en) 2017-01-10 2018-01-10 Common use or sharing of data in a multi-tenant database system

Country Status (9)

Country Link
US (13) US10592681B2 (en)
EP (1) EP3568777B1 (en)
JP (1) JP6918120B2 (en)
KR (1) KR102332965B1 (en)
CN (1) CN110192189B (en)
AU (1) AU2018208613B9 (en)
CA (1) CA3049654C (en)
DE (3) DE202018006529U1 (en)
WO (1) WO2018132478A1 (en)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592681B2 (en) * 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US11048815B2 (en) 2018-08-06 2021-06-29 Snowflake Inc. Secure data sharing in a multi-tenant database system
US11238174B2 (en) * 2019-01-31 2022-02-01 Salesforce.Com, Inc. Systems and methods of database encryption in a multitenant database management system
EP3928243A1 (en) 2019-03-19 2021-12-29 Sigma Computing, Inc. Enabling editable tables on a cloud-based data warehouse
CN114710329B (en) * 2019-04-30 2024-03-01 创新先进技术有限公司 Method and apparatus for managing access to accounts in a blockchain system
US10977268B2 (en) 2019-05-31 2021-04-13 Snowflake Inc. Data exchange
US11113278B2 (en) * 2019-05-31 2021-09-07 Snowflake Inc. Data sharing and materialized views in multiple tenant database systems
US11265328B2 (en) 2019-09-12 2022-03-01 Snowflake Inc. Private data exchange metrics sharing
US11334604B2 (en) * 2019-09-12 2022-05-17 Snowflake Inc. Private data exchange
US11503037B2 (en) * 2019-11-04 2022-11-15 Microsoft Technology Licensing, Llc Nested access privilege check for multi-tenant organizations
US10867063B1 (en) * 2019-11-27 2020-12-15 Snowflake Inc. Dynamic shared data object masking
US11372995B2 (en) * 2020-01-17 2022-06-28 Snowflake Inc. Container-centric access control on database objects
US10999355B1 (en) 2020-01-28 2021-05-04 Snowflake Inc. System and method for global data sharing
CN111597156B (en) * 2020-05-13 2023-05-23 中国民航信息网络股份有限公司 Civil aviation data processing method and device, electronic equipment and storage medium
US10949402B1 (en) * 2020-05-26 2021-03-16 Snowflake Inc. Share replication between remote deployments
US10997121B1 (en) * 2020-07-17 2021-05-04 Snowflake Inc. Attachable-and-detachable database sessions
US11397826B2 (en) 2020-10-29 2022-07-26 Snowflake Inc. Row-level security
US11818174B1 (en) 2020-11-25 2023-11-14 Amazon Technologies, Inc. Contextual policy weighting for permissions searching
US11777991B2 (en) 2020-11-30 2023-10-03 Amazon Technologies, Inc. Forecast-based permissions recommendations
CN112580104B (en) * 2020-12-30 2024-03-19 北京达佳互联信息技术有限公司 Authority management method, device, electronic equipment and storage medium
US11799643B2 (en) 2021-01-19 2023-10-24 Bank Of America Corporation Collaborative architecture for secure data sharing
US11783325B1 (en) * 2021-03-26 2023-10-10 Amazon Technologies, Inc. Removal probability-based weighting for resource access
US11803621B1 (en) 2021-03-31 2023-10-31 Amazon Technologies, Inc. Permissions searching by scenario
US11138340B1 (en) 2021-04-30 2021-10-05 Snowflake Inc. Multiple cloud and region data clean rooms
CN113486312B (en) * 2021-05-08 2023-08-18 北京易成时代科技有限公司 Access control design method based on mode
CN113420306A (en) * 2021-06-16 2021-09-21 深圳国泰安教育技术有限公司 Resource sharing method and device, computing equipment and computer readable storage medium
US11347886B1 (en) * 2021-06-30 2022-05-31 Snowflake Inc. Secure multi-party encrypted identifier data sharing
WO2023027879A1 (en) * 2021-08-26 2023-03-02 Snowflake Inc. Fine-grained access control via database roles
US11366920B1 (en) 2021-08-26 2022-06-21 Snowflake Inc. Fine-grained access control via database roles
US11934543B1 (en) 2022-11-17 2024-03-19 Snowflake Inc. Transient object references

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732100B1 (en) 2000-03-31 2004-05-04 Siebel Systems, Inc. Database access method and system for user role defined access
US7783665B1 (en) * 2002-03-27 2010-08-24 Parallels Holdings, Ltd. Effective file-sharing among virtual environments
US7162469B2 (en) * 2002-07-20 2007-01-09 Microsoft Corporation Querying an object for properties
US7136873B2 (en) * 2002-07-20 2006-11-14 Microsoft Corporation Dynamic filtering in a database system
US7921299B1 (en) * 2003-12-05 2011-04-05 Microsoft Corporation Partner sandboxing in a shared multi-tenant billing system
US7546297B2 (en) * 2005-03-14 2009-06-09 Microsoft Corporation Storage application programming interface
US7689593B2 (en) * 2005-12-30 2010-03-30 Sap Ag Systems and methods for accessing a shared space in a provider-tenant environment
US7933925B2 (en) * 2006-06-01 2011-04-26 International Business Machines Corporation System and method for role based analysis and access control
US7827407B2 (en) * 2006-06-29 2010-11-02 Microsoft Corporation Scoped federations
US8577835B2 (en) 2007-06-28 2013-11-05 Salesforce.Com, Inc. Method and system for sharing data between subscribers of a multi-tenant database service
US9166954B2 (en) * 2008-02-29 2015-10-20 Adobe Systems Incorporated Document-authorized access to a shared workspace
US8478782B1 (en) * 2008-05-08 2013-07-02 Salesforce.Com, Inc. System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service
US8312013B1 (en) * 2008-05-08 2012-11-13 Salesforce.Com, Inc. On-demand service system, method and computer program product for linking a custom share row cause to a sharing record associated with a custom object
US20090282045A1 (en) * 2008-05-09 2009-11-12 Business Objects, S.A. Apparatus and method for accessing data in a multi-tenant database according to a trust hierarchy
JP5181139B2 (en) * 2008-06-30 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション Computer program, shared object control apparatus, and shared object control method
CN101620609B (en) * 2008-06-30 2012-03-21 国际商业机器公司 Multi-tenant data storage and access method and device
US8407205B2 (en) * 2008-09-11 2013-03-26 Salesforce.Com, Inc. Automating sharing data between users of a multi-tenant database service
US8805861B2 (en) * 2008-12-09 2014-08-12 Google Inc. Methods and systems to train models to extract and integrate information from data sources
WO2011056613A2 (en) * 2009-10-26 2011-05-12 Lionbridge Technologies, Inc. Methods and systems for providing anonymous and traceable external access to internal linguistic assets
EP2545675A4 (en) * 2010-03-09 2017-06-21 KL Data Security Pty Ltd Method and system for sharing encrypted content
US8452726B2 (en) * 2010-06-04 2013-05-28 Salesforce.Com, Inc. Sharing information between tenants of a multi-tenant database
US9256716B2 (en) * 2010-09-22 2016-02-09 Nec Corporation Access authority generation device
US8607146B2 (en) * 2010-09-30 2013-12-10 Google Inc. Composition of customized presentations associated with a social media application
US20130290707A1 (en) * 2011-02-07 2013-10-31 Carpadium Consulting Pty. Ltd. Information distribution system
US8869244B1 (en) * 2011-05-03 2014-10-21 Symantec Corporation Techniques for providing role-based access control using dynamic shared accounts
US20150149980A1 (en) * 2013-09-11 2015-05-28 Tongling Yucheng Software Technology Co., Ltd. Service model-oriented software operation platform and operation method thereof
US20130024910A1 (en) * 2011-07-22 2013-01-24 Salesforce.Com, Inc. Computer implemented methods and apparatus for integrating a social network information feed with a network communications application
US9495393B2 (en) * 2011-07-27 2016-11-15 EMC IP Holding Company, LLC System and method for reviewing role definitions
US9411671B1 (en) * 2012-04-17 2016-08-09 Facebook, Inc. Storage and privacy service
US20140280492A1 (en) 2013-03-15 2014-09-18 Grant Chieh-Hsiang Yang Method and System for Distributing Data among a Multi-Tenant service with a Shared Userbase
US9058494B2 (en) * 2013-03-15 2015-06-16 Intel Corporation Method, apparatus, system, and computer readable medium to provide secure operation
US9043458B2 (en) * 2013-03-19 2015-05-26 Cognizant Technology Solutions India Pvt. Ltd. Framework for facilitating implementation of multi-tenant SaaS architecture
US20190005261A1 (en) * 2013-04-01 2019-01-03 International Business Machines Corporation Secure shared vault with encrypted private indices
US20150020151A1 (en) * 2013-07-09 2015-01-15 Contentraven, Llc Systems and methods for trusted sharing
US9892177B2 (en) * 2013-07-11 2018-02-13 Salesforce.Com, Inc. Systems and methods for interacting with external content objects
US11163898B2 (en) * 2013-09-11 2021-11-02 Mimecast Services Ltd. Sharing artifacts in permission-protected archives
CN103607469B (en) * 2013-11-28 2017-05-17 东莞中国科学院云计算产业技术创新与育成中心 Data sharing method of cloud platform for achieving distributed isomerous data sharing
CN105917309B (en) * 2014-01-20 2020-02-07 惠普发展公司,有限责任合伙企业 Determining permissions of a first tenant with respect to a second tenant
US9576039B2 (en) 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
AU2015207842B2 (en) * 2014-07-29 2020-07-02 Samsung Electronics Co., Ltd. Method and apparatus for sharing data
US9723090B2 (en) * 2014-09-30 2017-08-01 Anthony Tan Digital certification analyzer temporary external secured storage system tools
US20160110555A1 (en) * 2014-10-21 2016-04-21 Institute For Information Industry Resource sharing apparatus, method, and non-transitory computer readable storage medium thereof
EP3040845A1 (en) * 2015-01-05 2016-07-06 Iguazio Systems Ltd. Service oriented data management and architecture
US10044723B1 (en) * 2015-06-30 2018-08-07 EMC IP Holding Company LLC Principal/user operation in the context of a tenant infrastructure
US9774586B1 (en) * 2015-08-31 2017-09-26 EMC IP Holding Company LLC Dynamic authorization of users in a multi-tenant environment using tenant authorization profiles
US10826844B2 (en) * 2015-09-30 2020-11-03 Amazon Technologies, Inc. Transmission of tags and policies with data objects
CN105610949B (en) * 2015-12-30 2020-04-07 腾讯科技(深圳)有限公司 Resource data use permission sharing method, device and system
US10140434B2 (en) * 2016-05-03 2018-11-27 Microsoft Technology Licensing, Llc Group-based external sharing of electronic data
US10372934B2 (en) * 2016-07-21 2019-08-06 Salesforce.Com, Inc. Access controlled queries against user data in a datastore
US10474323B2 (en) * 2016-10-25 2019-11-12 Microsoft Technology Licensing Llc Organizational external sharing of electronic data
US10547621B2 (en) * 2016-11-28 2020-01-28 Microsift Technology Licensing, Llc Persistent mutable sharing of electronic content
US10592681B2 (en) * 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US11188670B2 (en) * 2019-03-28 2021-11-30 Snowflake Inc. Secure data joins in a multiple tenant database system
US11349848B2 (en) * 2020-06-30 2022-05-31 Microsoft Technology Licensing, Llc Experience for sharing computer resources and modifying access control rules using mentions

Also Published As

Publication number Publication date
US20200257817A1 (en) 2020-08-13
US20210312070A1 (en) 2021-10-07
AU2018208613A1 (en) 2019-08-01
JP2020504395A (en) 2020-02-06
US11288393B2 (en) 2022-03-29
US20220222365A1 (en) 2022-07-14
US10817616B2 (en) 2020-10-27
US10592681B2 (en) 2020-03-17
WO2018132478A1 (en) 2018-07-19
KR20190117517A (en) 2019-10-16
US11727136B2 (en) 2023-08-15
CN110192189A (en) 2019-08-30
EP3568777A1 (en) 2019-11-20
AU2018208613B2 (en) 2020-07-02
AU2018208613B9 (en) 2020-11-26
US11210415B2 (en) 2021-12-28
US11036879B2 (en) 2021-06-15
US20200394325A1 (en) 2020-12-17
US20200167497A1 (en) 2020-05-28
JP6918120B2 (en) 2021-08-11
US11763020B2 (en) 2023-09-19
EP3568777B1 (en) 2022-09-14
US20180196955A1 (en) 2018-07-12
DE202018006346U1 (en) 2020-02-03
US10878120B1 (en) 2020-12-29
US20210103672A1 (en) 2021-04-08
CN110192189B (en) 2023-11-14
US10642993B1 (en) 2020-05-05
CA3049654A1 (en) 2018-07-19
US11048814B2 (en) 2021-06-29
CA3049654C (en) 2021-11-23
US20210303719A1 (en) 2021-09-30
US20230334166A1 (en) 2023-10-19
US11295030B2 (en) 2022-04-05
DE202018006561U1 (en) 2021-02-10
US20220083682A1 (en) 2022-03-17
KR102332965B1 (en) 2021-11-29
US20200394324A1 (en) 2020-12-17
US20220207169A1 (en) 2022-06-30
EP3568777A4 (en) 2020-07-22
US11386220B2 (en) 2022-07-12
US20210019439A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
DE202018006529U1 (en) Common use or sharing of data in a multi-tenant database system
DE202020005687U1 (en) Data sharing and data sharing and materialized views in databases
DE102013222384B4 (en) Context-based security screening for access to data
DE202020005680U1 (en) Queries on external tables in database systems
DE202020005715U1 (en) Dynamic masking of shared data objects
DE202015009777U1 (en) Transparent discovery of a semi-structured data scheme
DE202012013432U1 (en) Storing data on storage nodes
DE202021004036U1 (en) Data Clean Room
DE112012006412T5 (en) Distributed data search system, distributed data search method, and management computer
DE112021001425T5 (en) SECURE DATA REPLICATION IN DISTRIBUTED DATA STORAGE ENVIRONMENTS
DE102023210076A1 (en) METHOD AND SYSTEM FOR CREATING INCREMENTAL APPROXIMATION BACKUPS OF CLOUD DATA WITH LIMITED ACCESS
DE112022000886T5 (en) DATA PROCESSING SYSTEM WITH MANIPULATION OF LOGICAL DATA RECORD GROUPS

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: SNOWFLAKE INC., BOZEMAN, US

Free format text: FORMER OWNER: SNOWFLAKE INC., SAN MATEO, CA, US

R151 Utility model maintained after payment of second maintenance fee after six years