DE202020005715U1 - Dynamische Maskierung geteilter Datenobjekte - Google Patents

Dynamische Maskierung geteilter Datenobjekte Download PDF

Info

Publication number
DE202020005715U1
DE202020005715U1 DE202020005715.0U DE202020005715U DE202020005715U1 DE 202020005715 U1 DE202020005715 U1 DE 202020005715U1 DE 202020005715 U DE202020005715 U DE 202020005715U DE 202020005715 U1 DE202020005715 U1 DE 202020005715U1
Authority
DE
Germany
Prior art keywords
database
data
split
database object
masking
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
DE202020005715.0U
Other languages
English (en)
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 DE202020005715U1 publication Critical patent/DE202020005715U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • 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
    • 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/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification

Abstract

Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren Operationen durchführt oder durchführen, wobei die Operationen folgendes umfassen:
Identifizieren, an einem Netzstandort, eines durch eine erste Clientvorrichtung eines ersten Endbenutzers des Netzstandorts erzeugten Datenbankobjekts;
Empfangen, von der ersten Clientvorrichtung, einer Teilungsmaskierungsstrategie zum Modifizieren von Daten im Datenbankobjekt, wobei die Teilungsmaskierungsstrategie einen Benutzerrollentyp spezifiziert, um eine oder mehrere vorkonfigurierte Maskierungsoperationen an dem Datenbankobjekt zu initiieren;
Erzeugen einer Netzwerkverbindung für einen Zugriff auf das Datenbankobjekt durch einen zweiten Endbenutzer des Netzstandorts;
Empfangen, von einer zweiten Clientvorrichtung des zweiten Endnutzers, einer Anforderung auf die Datenbankdaten zuzugreifen, unter Verwendung der Netzwerkverbindung;
in Reaktion auf die Anforderung von der zweiten Clientvorrichtung Bestimmen, dass eine Endbenutzerrolle des zweiten Endbenutzers mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt;
in Reaktion auf die Endbenutzerrolle, die mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt, Anwenden von der einen oder den mehreren vorkonfigurierten Maskierungsoperationen auf das Datenbankobjekt, um ein maskiertes Datenbankobjekt zu erzeugen; und
Veranlassen, durch die zweite Clientvorrichtung des zweiten Endbenutzers, einer Präsentation von Ergebnisdaten aus dem maskierten Datenbankobjekt.

Description

  • QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNG
  • Diese Anmeldung beansprucht die Priorität der US-Patentanmeldung mit der seriellen Nr. 16/698,142 , eingereicht am 27. November 2019, deren Inhalte hierdurch in ihrer Gesamtheit enthalten sind.
  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich allgemein auf spezielle Maschinen, die Datenbanken managen, und Verbesserungen an solchen Varianten, und auf die Technologien, durch welche solche speziellen Maschinen im Vergleich mit anderen speziellen Maschinen zum Transformieren von Daten in Datenbankdaten verbessert werden. Um als Gebrauchsmuster geschützt und Gegenstand davon zu sein, gibt es gemäß den Erfordernissen des Gebrauchsmustergesetzes nur Vorrichtungen, wie sie in den beigefügten Ansprüchen definiert sind, aber keine Verfahren. In einem Fall, in welchem in der Beschreibung Bezug auf Verfahren genommen wird, dienen diese Bezugnahmen lediglich dazu, die Vorrichtung oder die Vorrichtungen darzustellen, für welche mit den enthaltenen Ansprüchen Schutz gesucht wird.
  • HINTERGRUND
  • Daten können zu einer Datenbank hochgeladen werden und ein Zugriff auf die Datenbankdaten kann von einem Datenbankadministrator gemanagt werden. In letzter Zeit haben Cloud-Datenbankdienste aufgrund der Bequemlichkeit, mit der neue Datenbankinstanzen zum Speichern von Daten erstellt werden können, an Popularität gewonnen. Während die neuen Cloud-Datenbankdienste zulassen, dass Datenbanken einfach erstellt werden, schaffen die Cloud-Datenbankdienste neue Probleme in Bezug auf Datenschutz. Zum Beispiel kann es schwierig sein, für spezifische Individuen einen Zugriff auf spezifische Daten innerhalb einer gegebenen Datenbank auf eine Weise zu schaffen, die sowohl sicher als auch skalierbar ist, während die Datenmenge zunimmt.
  • Figurenliste
  • Verschiedene der beigefügten Zeichnungen stellen lediglich beispielhafte Ausführungsformen der vorliegenden Offenbarung dar und sollten nicht als ihren Schutzumfang beschränkend angesehen werden.
    • 1 stellt eine beispielhafte Rechen- bzw. Computingumgebung, in der ein netzwerkbasiertes Data-Warehouse-System eine dynamische Maskierung geteilter Datenbankobjekte implementieren kann, gemäß einigen beispielhaften Ausführungsformen dar.
    • 2 ist ein Blockdiagramm, das Komponenten eines Computing-Servicemanagers gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 3 ist ein Blockdiagramm, das Komponenten einer Ausführungsplattform gemäß einigen beispielhaften Ausführungsformen darstellt.
    • 4A-4C zeigen beispielhafte Datenarchitekturen zum gemeinsamen Nutzen bzw. Teilen von Datenbankobjekten unter Verwendung eines Systems gemäß einigen beispielhaften Ausführungsformen.
    • 5 zeigt eine beispielhafte Datenbankarchitektur zum gemeinsamen Nutzen bzw. Teilen von Daten zwischen Entitäten bzw. Einheiten unter Verwendung eines Systems gemäß einigen beispielhaften Ausführungsformen.
    • 6 zeigt beispielhafte Datenbankobjekte gemäß einigen beispielhaften Ausführungsformen.
    • 7A-7E zeigen beispielhafte Benutzerschnittstellen zum dynamischen Maskieren von gemeinsam genutzten bzw. geteilten Daten gemäß einigen beispielhaften Ausführungsformen.
    • 8 zeigt eine beispielhafte Datenarchitektur zum dynamischen Maskieren von gemeinsam genutzten bzw. geteilten Datenobjekten gemäß einigen beispielhaften Ausführungsformen.
    • 9 zeigt eine beispielhafte Strategiedatenarchitektur gemäß einigen beispielhaften Ausführungsformen.
    • 10 ist ein Flussdiagramm eines Verfahrens zum Konfigurieren einer Teilungsmaskenstrategie mit dem Ressourcenelement gemäß einigen beispielhaften Ausführungsformen.
    • 11 ist ein Flussdiagramm eines Verfahrens zum Interagieren mit den dynamisch maskierten Daten gemäß einigen beispielhaften Ausführungsformen.
    • 12 ist ein Flussdiagramm eines Verfahrens zum dynamischen Maskieren eines gemeinsam genutzten bzw. geteilten Datenbankobjekts gemäß einigen beispielhaften Ausführungsformen.
    • 13 stellt eine diagrammmäßige bzw. schematische Darstellung einer Maschine in der Form eines Computersystems, innerhalb von welchem eine Gruppe bzw. ein Satz von Anweisungen ausgeführt werden kann, um zu veranlassen, dass die Maschine irgendeine oder irgendwelche mehrere der hierin diskutierten Methoden durchführt, gemäß einigen Ausführungsformen der vorliegenden Offenbarung dar.
  • DETAILLIERTE BESCHREIBUNG
  • Die Beschreibung, die folgt, enthält Systeme, Verfahren, Techniken, Anweisungssequenzen und Computing-Maschinen-Programmprodukte, die illustrative Ausführungsformen der Offenbarung verkörpern. In der folgenden Beschreibung werden zu Erklärungszwecken zahlreiche spezifische Details dargelegt, um ein Verstehen verschiedener Ausführungsformen des erfinderischen Gegenstands bereitzustellen. Es wird jedoch für Fachleute offensichtlich sein, dass Ausführungsformen des erfinderischen Gegenstands ohne diese spezifischen Details ausgeführt werden können. Im Allgemeinen werden wohlbekannte Anweisungsinstanzen, Protokolle, Strukturen und Techniken nicht unbedingt im Detail gezeigt.
  • Wie es diskutiert ist, kann es schwierig sein, einen Zugriff auf Daten und einen Teilen bzw. gemeinsames Nutzen von ihnen auf sichere Weise zu erstellen, die skalierbar sind, wenn die Datenmenge zunimmt. Zu diesem Zweck kann eine gemeinsam genutzte bzw. geteilte Datenbankplattform ein dynamisches Maskieren an Daten implementieren, die von Benutzern gemeinsam genutzt werden, wobei spezifische Daten basierend auf vorkonfigurierten Funktionen, die mit Benutzerrollen assoziiert sind, maskiert, transformiert oder anderweitig modifiziert werden. Die gemeinsam genutzte Datenbankplattform kann das Maskieren zur Laufzeit in Reaktion darauf dynamisch implementieren, dass Benutzer einen Zugriff auf ein Datenbankobjekt anfordern, das mit einer oder mehreren Maskierungsstrategien bzw. -richtlinien assoziiert ist.
  • 1 stellt eine beispielhafte gemeinsam genutzte bzw. geteilte Datenverarbeitungsplattform 100, in der ein netzwerkbasiertes Data-Warehouse-System 102 ein dynamisches Maskieren von gemeinsam genutzten Datenobjekten implementiert, gemäß einigen Ausführungsformen der vorliegenden Offenbarung dar. Um zu vermeiden, dass der erfinderische Gegenstand mit unnötigem Detail verdeckt wird, wurden verschiedene funktionelle Komponenten, die nicht passend dafür sind, ein Verstehen des erfinderischen Gegenstands zu vermitteln, aus den Figuren weggelassen worden. Ein Fachmann wird jedoch ohne weiteres erkennen, dass verschiedene zusätzliche funktionelle Komponenten als Teil der gemeinsam genutzten bzw. geteilten Datenverarbeitungsplattform 100 enthalten sein können, um zusätzliche Funktionalität zu ermöglichen, die hierin nicht spezifisch beschrieben ist.
  • Wie es gezeigt ist, umfasst die gemeinsam genutzte Datenverarbeitungsplattform 100 das netzwerkbasierte Data-Warehouse-System 102, eine Cloud-Computing-Speicherplattform 104 (z.B. eine Speicherplattform, einen AWS®-Dienst wie S3, Microsoft Azure® oder Google Cloud Services®) und eine entfernte Computingvorrichtung 106. Das netzwerkbasierte Data-Warehouse-System 102 ist ein netzwerkbasiertes System, das zum Speichern von und Zugreifen auf Daten (z.B. internes Speichern von Daten, Zugreifen auf externe entfernt angeordnete Daten) auf eine integrierte Weise verwendet wird, und für ein Berichten und eine Analyse der integrierten Daten aus der einen oder den mehreren ungleichartigen Quellen (z.B. der Cloud-Computing-Speicherplattform 104). Die Cloud-Computing-Speicherplattform 104 umfasst eine Vielzahl von Computing-Maschinen und stellt dem netzwerkbasierten Data-Warehouse-System 102 On-Demand-Computersystemressourcen wie Datenspeicherung und Computing- bzw. Rechenleistung zur Verfügung.
  • Die entfernte Computervorrichtung 106 (z.B. eine Benutzervorrichtung wie ein Laptop-Computer) umfasst eine oder mehrere Computing-Maschinen (z.B. eine Benutzervorrichtung wie einen Laptop-Computer), die eine entfernte Softwarekomponente 108 (z.B. einen Cloud-Dienst, auf den vom Browser zugegriffen wird) ausführen, um Benutzern des netzwerkbasierten Data-Warehouse-Systems 102 zusätzliche Funktionalität bereitzustellen. Die entfernte Softwarekomponente 108 umfasst einen Satz maschinenlesbarer Anweisungen (z.B. einen Code), die dann, wenn sie durch die entfernte Computingvorrichtung 106 ausgeführt werden, veranlassen, dass die entfernte Computingvorrichtung 106 eine bestimmte Funktionalität bereitstellt. Die entfernte Softwarekomponente 108 kann an Eingabedaten arbeiten und erzeugt Ergebnisdaten basierend auf einem Verarbeiten, einem Analysieren oder einem anderweitigen Transformieren der Eingabedaten. Als Beispiel kann die entfernte Softwarekomponente 108 ein Datenanbieter oder ein Datenverbraucher sein, der dynamisch maskierte geteilte Datenobjekte verarbeitet, wie es nachstehend in weiterem Detail diskutiert wird.
  • Das netzwerkbasierte Data-Warehouse-System 102 umfasst ein Zugriffsmanagementsystem 110, einen Computing-Service-Manager 112, eine Ausführungsplattform 114 und eine Datenbank 116. Das Zugriffsmanagementsystem 110 ermöglicht administrativen Benutzern, einen Zugriff auf Ressourcen und Dienste zu managen, die durch das netzwerkbasierte Data-Warehouse-System 102 bereitgestellt werden. Administrative Benutzer können Benutzer, Rollen und Gruppen erstellen und managen und Berechtigungen verwenden, um einen Zugriff auf Ressourcen und Dienste zuzulassen oder zu verweigern. Das Zugriffsmanagementsystem 110 kann Teilungsdaten speichern, die einen geteilten Zugriff auf die Speicherressourcen der Cloud-Computing-Speicherplattform 104 für verschiedene Benutzer des netzwerkbasierten Data-Warehouse-Systems 102 sicher managen, wie es nachstehend in weiterem Detail diskutiert wird.
  • Der Computing-Service-Manager 112 koordiniert und managt Operationen des netzwerkbasierten Data-Warehouse-Systems 102. Der Computing-Service-Manager 112 führt auch eine Abfrageoptimierung und -kompilierung durch und ein Managen von Clustern von Computing-Diensten, die Computerressourcen (z.B. virtuelle Lager, virtuelle Maschinen, EC2-Cluster) bereitstellen. Der Computing-Service-Manager 112 kann irgendeine Anzahl von Clientkonten unterstützen, wie beispielsweise Endbenutzer, die Datenspeicherungs- und -wiedergewinnungsanforderungen bereitstellen, Systemadministratoren, die die hierin beschriebenen Systeme und Verfahren managen, und andere Komponenten/Vorrichtungen, die mit Computing-Service-Manager 112 interagieren.
  • Der Computing-Service-Manager 112 ist auch mit der Datenbank 116 gekoppelt, die mit der Gesamtheit der durch die gemeinsam genutzte Datenverarbeitungsplattform 100 gespeicherten Daten assoziiert ist. Die Datenbank 116 speichert Daten, die zu verschiedenen Funktionen und Aspekten gehören, die mit dem netzwerkbasierten Data-Warehouse-System 102 und seinen Benutzern assoziiert sind. Zum Beispiel können gemäß einigen beispielhaften Ausführungsformen dynamisch zu maskierende Daten auf der Cloud-Computing-Speicherplattform 104 (z.B. auf S3) gespeichert sein oder es kann auf diese zugegriffen werden, oder sie können auf der Datenbank 116, die lokal zum netzwerkbasierten Data-Warehouse-System 102 ist, gespeichert werden oder es kann dort auf sie zugegriffen werden.
  • Bei einigen Ausführungsformen enthält die Datenbank 116 eine Zusammenfassung von in entfernten Datenspeichersystemen gespeicherten Daten sowie aus einem oder mehreren lokalen Caches verfügbaren Daten. Zusätzlich kann die Datenbank 116 Information diesbezüglich enthalten, wie Daten in den entfernten Datenspeichersystemen und den lokalen Caches organisiert sind. Die Datenbank 116 lässt zu, dass Systeme und Dienste bestimmen, ob auf ein Stück von Daten zugegriffen werden muss, ohne die tatsächlichen Daten aus einer Speichervorrichtung zu laden oder auf diese zuzugreifen. Der Computing-Service-Manager 112 ist weiterhin mit einer Ausführungsplattform 114 gekoppelt, die mehrere Computerressourcen (z.B. virtuelle Lager) bereitstellt, die verschiedene Datenspeicherungs- und Datenabruf- bzw. Datenwiedergewinnungsaufgaben ausführen, wie es nachstehend detaillierter diskutiert wird.
  • Die Ausführungsplattform 114 ist mit mehreren Datenspeichervorrichtungen 124-1 bis 124-n gekoppelt, die Teil einer Cloud-Computing-Speicherplattform 104 sind. Bei einigen Ausführungsformen sind die Datenspeichervorrichtungen 124-1 bis 124-n cloudbasierte Speichervorrichtungen, die an einem oder mehreren geografischen Standorten angeordnet sind. Zum Beispiel können die Datenspeichervorrichtungen 124-1 bis 124-n Teil einer Infrastruktur einer öffentlichen Cloud oder einer Infrastruktur einer privaten Cloud sein. Die Datenspeichervorrichtungen 124-1 bis 124-n können Festplattenlaufwerke (HDDs), Festkörperspeicher (SSDs), Speichercluster, Amazon S3-Speichersysteme oder irgendeine andere Datenspeichertechnologie sein. Zusätzlich kann die Cloud-Computing-Speicherplattform 104 verteilte Dateisysteme (wie beispielsweise Hadoop Distributed File Systems (HDFS)), Objektspeichersysteme und dergleichen enthalten.
  • Die Ausführungsplattform 114 umfasst eine Vielzahl von Computing- bzw. Rechenknoten (z.B. virtuelle Lager). Eine Gruppe von Prozessen auf einem Rechenknoten führt einen durch den Computing-Service-Manager 112 kompilierten Abfrageplan aus. Die Gruppe von Prozessen kann folgendes enthalten: einen ersten Prozess, um den Abfrageplan auszuführen; einen zweiten Prozess, um Mikropartitionsdateien unter Verwendung einer LRU(Least Recently Used (= am längsten nicht verwendet))-Strategie zu überwachen und zu löschen und um einen OOM(Out of Memory (= kein Speicher mehr))-Fehlerminderungsprozess zu implementieren; einen dritten Prozess, der Gesundheitsinformation aus Prozessprotokollen und Statusinformation extrahiert, um sie zum Computing-Service-Manager 112 zurückzusenden; einen vierten Prozess, um eine Kommunikation mit dem Computing-Service-Manager 112 nach einem Systemstart herzustellen; und einen fünften Prozess, um die gesamte Kommunikation mit einem Computercluster für einen gegebenen Job zu handhaben, der vom Computing-Service-Manager 112 bereitgestellt ist, und um Information zu dem Computing-Service-Manager 112 und anderen Computing- bzw. Rechen- bzw. Computerknoten der Ausführungsplattform 114 zurück zu kommunizieren.
  • Die Cloud-Computing-Speicherplattform 104 umfasst auch ein Zugriffsmanagementsystem 118 und einen API-Gateway 120. Wie beim Zugriffsmanagementsystem 110 lässt das Zugriffsmanagementsystem 118 zu, dass Benutzer Benutzer, Rollen und Gruppen erstellen und managen und Berechtigungen verwenden, um einen Zugriff auf Cloud-Dienste und -Ressourcen zuzulassen und zu verweigern. Das Zugriffsmanagementsystem 110 des netzwerkbasierten Data-Warehouse-Systems 102 und das Zugriffsmanagementsystem 118 der Cloud-Computing-Speicherplattform 104 können Information kommunizieren und gemeinsam nutzen bzw. teilen, um ein Zugreifen auf Ressourcen und Dienste und ein Management davon zu ermöglichen, die von Benutzern von sowohl dem netzwerkbasierten Data-Warehouse-System 102 als auch der Cloud-Computing-Speicherplattform 104 gemeinsam genutzt werden. Der API-Gateway 120 handhabt Aufgaben, die an einem Annehmen und einem Verarbeiten gleichzeitiger API-Aufrufe beteiligt sind, einschließlich eines Verkehrsmanagements, einer Autorisierung und einer Zugriffssteuerung bzw. -kontrolle, einer Überwachung und eines API-Versionsmanagements. Der API-Gateway 120 stellt einen HTTP-Proxy-Dienst zum Erstellen, Veröffentlichen, Beibehalten, Sichern und Überwachen von APIs (z.B. REST-APIs) bereit.
  • Bei einigen Ausführungsformen sind Kommunikationsverbindungen zwischen Elementen der gemeinsam genutzten Datenverarbeitungsplattform 100 über ein oder mehrere Datenkommunikationsnetzwerke implementiert. Diese Datenkommunikationsnetzwerke können irgendein Kommunikationsprotokoll und irgendeinen Typ von Kommunikationsmedium verwenden. Bei einigen Ausführungsformen sind die Datenkommunikationsnetzwerke eine Kombination von zwei oder mehr Datenkommunikationsnetzwerken (oder Teilnetzwerken), die miteinander gekoppelt sind. Bei alternativen Ausführungsformen sind diese Kommunikationsverbindungen unter Verwendung von irgendeinem Typ von Kommunikationsmedium und irgendeinem Kommunikationsprotokoll implementiert.
  • Wie es in 1 gezeigt ist, sind die Datenspeichervorrichtungen 124-1 bis 124-N von den mit der Ausführungsplattform 114 assoziierten Computerressourcen entkoppelt. Das bedeutet, dass neue virtuelle Lager in der Ausführungsplattform 114 erstellt und beendet werden können und zusätzliche Datenspeichervorrichtungen auf eine unabhängige Weise auf der Cloud-Computing-Speicherplattform 104 erstellt und beendet werden können. Diese Architektur unterstützt dynamische Änderungen am netzwerkbasierten Data-Warehouse-System 102 basierend auf den sich ändernden Datenspeicherungs-/-abrufanforderungen sowie den sich ändernden Anforderungen der Benutzer und Systeme, die auf die gemeinsam genutzte Datenverarbeitungsplattform 100 zugreifen. Die Unterstützung dynamischer Änderungen lässt zu, dass das netzwerkbasierte Data-Warehouse-System 102 in Reaktion auf sich ändernde Anforderungen an die Systeme und Komponenten innerhalb des netzwerkbasierten Data-Warehouse-Systems 102 schnell skaliert. Die Entkopplung der Computerressourcen von den Datenspeichervorrichtungen unterstützt die Speicherung großer Datenmengen, ohne eine entsprechend große Menge an Computerressourcen zu erfordern. Gleichermaßen unterstützt diese Entkopplung von Ressourcen eine signifikante Erhöhung von zu einem bestimmten Zeitpunkt verwendeten Computerressourcen, ohne eine entsprechende Erhöhung von verfügbaren Datenspeicherressourcen zu erfordern. Zusätzlich ermöglicht die Entkopplung von Ressourcen unterschiedlichen Konten, ein Erstellen zusätzlicher Computerressourcen zu handhaben, um durch andere Benutzer gemeinsam genutzte Daten zu verarbeiten, ohne die Systeme der anderen Benutzer zu beeinflussen bzw. zu beeinträchtigen. Zum Beispiel kann ein Datenanbieter drei Computerressourcen haben und Daten mit einem Datenverbraucher teilen und kann der Datenverbraucher neue Computerressourcen erzeugen, um Abfragen gegen die geteilten bzw. gemeinsam genutzten Daten auszuführen, wobei die neuen Computerressourcen durch den Datenverbraucher gemanagt werden und sich nicht auf die Computerressourcen des Datenanbieters auswirken oder mit ihnen interagieren.
  • Der Computing-Service-Manager 112, die Datenbank 116, die Ausführungsplattform 114, die Cloud-Computing-Speicherplattform 104, und die entfernte Computingvorrichtung 106 sind in 1 als einzelne Komponenten gezeigt. Der Computing-Service-Manager 112, die Datenbank 116, die Ausführungsplattform 114, die Cloud-Computing-Speicherplattform 104 und die entfernte Computing-Umgebung können jedoch jeweils als verteiltes System implementiert sein (z.B. verteilt über mehrere Systeme/Plattformen an mehreren geografischen Standorten), verbunden durch APIs und Zugriffsinformation (z.B. Token, Anmeldedaten). Zusätzlich können der Computing-Service-Manager 112, die Datenbank 116, die Ausführungsplattform 114 und die Cloud-Computing-Speicherplattform 104 jeweils in Abhängigkeit von Änderungen an den empfangenen Anforderungen und den sich ändernden Anforderungen der gemeinsam genutzten Datenverarbeitungsplattform 100 (unabhängig voneinander) nach oben oder nach unten skaliert werden. Somit ist bei den beschriebenen Ausführungsformen das netzwerkbasierte Data-Warehouse-System 102 dynamisch und unterstützt regelmäßige Änderungen, um den aktuellen Datenverarbeitungsanforderungen gerecht zu werden.
  • Während einer typischen Operation verarbeitet das netzwerkbasierte Data-Warehouse-System 102 mehrere durch den Computing-Service-Manager 112 bestimmte Jobs (z.B. Abfragen). Diese Jobs werden durch den Computing-Service-Manager 112 geplant und gemanagt, um zu bestimmen, wann und wie der Job auszuführen ist. Zum Beispiel kann der Computing-Service-Manager 112 den Job in mehrere diskrete Aufgaben bzw. Aufträge aufteilen und bestimmen, welche Daten zum Ausführen von jeder der mehreren Aufgaben erforderlich sind. Der Computing-Service-Manager 112 kann jede der mehreren diskreten Aufgaben einem oder mehreren Knoten der Ausführungsplattform 114 zuordnen, um die Aufgabe zu verarbeiten. Der Computing-Service-Manager 112 kann bestimmen, welche Daten zum Verarbeiten einer Aufgabe nötig sind, und kann weiterhin bestimmen, welche Knoten innerhalb der Ausführungsplattform 114 für eine Verarbeitung der Aufgabe am besten geeignet sind. Es kann sein, dass einige Knoten bereits die für die Verarbeitung der Aufgabe erforderlichen Daten in einem Cache gespeichert bzw. zwischengespeichert haben (da die Knoten kürzlich die Daten von der Cloud-Computing-Speicherplattform 104 für einen früheren Job heruntergeladen haben) und daher ein guter Kandidat für die Verarbeitung der Aufgabe sein können. In der Datenbank 116 gespeicherte Metadaten unterstützen den Computing-Service-Manager 112 bei einem Bestimmen, welche Knoten in der Ausführungsplattform 114 bereits wenigstens einen Teilbereich der für die Verarbeitung der Aufgabe erforderlichen Daten zwischengespeichert haben. Ein oder mehrere Knoten in der Ausführungsplattform 114 verarbeiten die Aufgabe unter Verwendung von Daten, die durch die Knoten zwischengespeichert sind und, wenn es nötig ist, von Daten, die durch die Cloud-Computing-Speicherplattform 104 abgerufen bzw. wiedergewonnen sind. Es ist wünschenswert, so viele Daten wie möglich aus Caches innerhalb der Ausführungsplattform 114 abzurufen, da die Wiedergewinnungs- bzw. Abrufgeschwindigkeit typischerweise viel schneller als ein Wiedergewinnen bzw. Abrufen von Daten aus der Cloud-Computing-Speicherplattform 104 ist.
  • Wie es in 1 gezeigt ist, trennt die gemeinsam genutzte Datenverarbeitungsplattform 100 die Ausführungsplattform 114 von der Cloud-Computing-Speicherplattform 104. Bei dieser Anordnung arbeiten die Verarbeitungsressourcen und Cacheressourcen in der Ausführungsplattform 114 unabhängig von den Datenspeicherressourcen 124-1 bis 124-n in der Cloud-Computing-Speicherplattform 104. Somit sind die Computerressourcen und Cacheressourcen nicht auf spezifische Datenspeicherressourcen 124-1 bis 124-n beschränkt. Stattdessen können alle Computerressourcen und alle Cacheressourcen Daten von irgendeiner der Datenspeicherressourcen in der Cloud-Computing-Speicherplattform 104 abrufen und Daten dorthin speichern.
  • 2 ist ein Blockdiagramm, das Komponenten des Computing-Service-Managers 112 gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Wie es in 2 gezeigt ist, managt ein Anforderungsverarbeitungsdienst 202 empfangene Datenspeicheranforderungen und Datenwiedergewinnungs- bzw. Datenabrufanforderungen (z.B. an Datenbankdaten durchzuführende Jobs). Zum Beispiel kann der Anforderungsverarbeitungsdienst 202 die Daten bestimmen, die zur Verarbeitung einer empfangenen Abfrage (z.B. einer Datenspeicheranforderung oder einer Datenabrufanforderung) nötig sind. Die Daten können in einem Cache innerhalb der Ausführungsplattform 114 oder in einer Datenspeichervorrichtung in der Cloud-Computing-Speicherplattform 104 gespeichert werden. Ein Managementkonsolendienst 204 unterstützt einen Zugriff auf verschiedene Systeme und Prozesse durch Administratoren und andere Systemmanager. Zusätzlich kann der Managementkonsolendienst 204 eine Anforderung empfangen, um einen Job auszuführen und um die Arbeitsauslastung auf dem System zu überwachen.
  • Die Teilungsmaskenmaschine 225 managt ein dynamisches Maskieren von durch die gemeinsam genutzten Datenverarbeitungsplattform 100 für unterschiedliche Benutzer gemanagten Daten basierend auf Rollen und Funktionen, wie es nachstehend in weiterem Detail diskutiert wird.
  • Der Computing-Service-Manager 112 enthält auch einen Job-Compiler 206, einen Job-Optimierer 208 und einen Job-Ausführer 210. Der Job-Compiler 206 parst bzw. zerlegt bzw. analysiert einen Job in mehrere diskrete Aufgaben und erzeugt den Ausführungscode für jede der mehreren diskreten Aufgaben. Der Job-Optimierer 208 bestimmt das beste Verfahren zum Ausführen der mehreren diskreten Aufgaben basierend auf den Daten, die verarbeitet werden müssen. Der Job-Optimierer 208 handhabt auch verschiedene Datenbereinigungsoperationen und andere Datenoptimierungstechniken, um die Geschwindigkeit und Effizienz eines Ausführens des Jobs zu verbessern. Der Job-Ausführer 210 führt den Ausführungscode für aus einer Warteschlange empfangene oder durch den Computing-Service-Manager 112 bestimmte Jobs aus.
  • Ein Job-Planer und -Koordinator 212 sendet empfangene Jobs zu den geeigneten Diensten oder Systemen zur Kompilierung, Optimierung und Entsendung zur Ausführungsplattform 114. Zum Beispiel können Jobs priorisiert und in dieser priorisierten Reihenfolge verarbeitet werden. Bei einer Ausführungsform bestimmt der Job-Planer und -Koordinator 212 eine Priorität für interne Jobs, die vom Computing-Service-Manager 112 geplant sind, mit anderen Jobs „von außen“, wie beispielsweise Benutzerabfragen, die von anderen Systemen in der Datenbank geplant sein können, aber dieselben Verarbeitungsressourcen in der Ausführungsplattform 114 verwenden können. Bei einigen Ausführungsformen identifiziert der Job-Planer und -Koordinator 212 bestimmte Knoten in der Ausführungsplattform 114 oder ordnet sie zu, um bestimmte Aufgaben zu verarbeiten. Ein Manger eines virtuellen Lagers 214 managt die Operation bzw. den Betrieb mehrerer virtueller Lager, die in der Ausführungsplattform 114 implementiert sind. Wie es nachstehend diskutiert wird, enthält jedes virtuelle Lager mehrere Ausführungsknoten, die jeweils einen Cache und einen Prozessor enthalten (z.B. eine virtuelle Maschine, eine Containerausführungsumgebung auf Betriebssystemebene).
  • Zusätzlich enthält der Computing-Service-Manager 112 einen Konfigurations- und Metadaten-Manager 216, der die Information in Bezug auf die in den entfernten Datenspeichervorrichtungen und in den lokalen Caches (d.h. den Caches in der Ausführungsplattform 114) gespeicherten Daten managt. Der Konfigurations- und Metadaten-Manager 216 verwendet die Metadaten, um zu bestimmen, auf welche Datenmikropartitionen zugegriffen werden muss, um Daten für die Verarbeitung einer bestimmten Aufgabe oder eines bestimmten Jobs wiederzugewinnen bzw. abzurufen. Ein Überwachungs- und Arbeitslast-Analysierer 218 beaufsichtigt durch den Computing-Service-Manager 112 durchgeführte Prozesse und managt die Verteilung von Aufgaben (z.B. Arbeitslast) quer über die virtuellen Lager und Ausführungsknoten in der Ausführungsplattform 114. Der Überwachungs- und Arbeitslast-Analysierer 218 verteilt auch Aufgaben neu, wie es nötig ist, basierend auf sich ändernden Arbeitslasten über dem gesamten Data-Warehouse-System 102 und kann weiterhin Aufgaben basierend auf einer Abfragearbeitslast eines Benutzers (z.B. „von extern“) neu verteilen, die auch durch die Ausführungsplattform 114 verarbeitet werden kann. Der Konfigurations- und Metadaten-Manager 216 und der Überwachungs- und Arbeitslast-Analysierer 218 sind mit einer Datenspeichervorrichtung 220 gekoppelt. Die Datenspeichervorrichtung 220 in 2 stellt irgendeine Datenspeichervorrichtung innerhalb des Data-Warehouse-Systems 102 dar. Zum Beispiel kann die Datenspeichervorrichtung 220 Caches in der Ausführungsplattform 114, Speichervorrichtungen in der Cloud-Computing-Speicherplattform 104 oder irgendeine andere Speichervorrichtung darstellen.
  • 3 ist ein Blockdiagramm, das Komponenten der Ausführungsplattform 114 gemäß einigen Ausführungsformen der vorliegenden Offenbarung darstellt. Wie es in 3 gezeigt ist, enthält die Ausführungsplattform 114 mehrere virtuelle Lager, die elastische Cluster von Computing-Instanzen sind, wie beispielsweise virtuelle Maschinen. Beim dargestellten Beispiel enthalten die virtuellen Lager ein virtuelles Lager 1, ein virtuelles Lager 2 und ein virtuelles Lager n. Jedes virtuelle Lager (z.B. ein EC2-Cluster) enthält mehrere Ausführungsknoten (z.B. virtuelle Maschinen), die jeweils einen Datencache und einen Prozessor enthalten. Die virtuellen Lager können mehrere Aufgaben parallel ausführen, indem sie die mehreren Ausführungsknoten verwenden. Wie es hierin diskutiert ist, kann die Ausführungsplattform 114 neue virtuelle Lager hinzufügen und vorhandene virtuelle Lager fallenlassen, und zwar in Echtzeit basierend auf den aktuellen Verarbeitungsanforderungen der Systeme und Benutzer. Diese Flexibilität lässt zu, dass die Ausführungsplattform 114 schnell große Mengen an Computerressourcen nutzt, wenn es nötig ist, ohne dazu gezwungen zu sein, fortgesetzt für diese Computerressourcen zu bezahlen, wenn sie nicht mehr benötigt werden. Alle virtuellen Lager können auf Daten von irgendeiner Datenspeichervorrichtung (z.B. irgendeiner Speichervorrichtung in der Cloud-Computing-Speicherplattform 104) zugreifen.
  • Obwohl jedes in 3 gezeigte virtuelle Lager drei Ausführungsknoten enthält, kann ein bestimmtes virtuelles Lager irgendeine Anzahl von Ausführungsknoten enthalten. Weiterhin ist die Anzahl von Ausführungsknoten in einem virtuellen Lager dynamisch, so dass neue Ausführungsknoten erstellt werden, wenn zusätzlicher Bedarf vorhanden ist, und vorhandene bzw. existierende Ausführungsknoten gelöscht werden, wenn sie nicht mehr benötigt werden (z.B. auf eine Abfrage oder einen Jobabschluss hin).
  • Jedes virtuelle Lager ist in der Lage, auf irgendeine der in 1 gezeigten Datenspeichervorrichtungen 124-1 bis 124-n zuzugreifen. Somit sind die virtuellen Lager nicht notwendigerweise einer spezifischen Datenspeichervorrichtung 124-1 bis 124-n zugeordnet und können stattdessen auf Daten von irgendeiner der Datenspeichervorrichtungen 124-1 bis 124-n innerhalb der Cloud-Computing-Speicherplattform 104 zugreifen. Gleichermaßen kann jeder der in 3 gezeigten Ausführungsknoten auf Daten von irgendeiner der Datenspeichervorrichtungen 124-1 bis 124-n zugreifen. Zum Beispiel kann die Speichervorrichtung 124-1 eines ersten Benutzers (z.B. eines Anbieterkontobenutzers) mit einem Workerknoten in einem virtuellen Lager eines anderen Benutzers (z.B. eines Verbraucherkontobenutzers) geteilt werden, so dass der andere Benutzer eine Datenbank (z.B. eine Nurlese-Datenbank) erstellen und die Daten in der Speichervorrichtung 124-1 direkt verwenden kann, ohne die Daten kopieren zu müssen (z.B. sie zu einer neuen Diskette bzw. Platte zu kopieren, die durch den Verbraucherkontobenutzer gemanagt wird). Bei einigen Ausführungsformen kann ein bestimmtes virtuelles Lager oder ein bestimmter Ausführungsknoten vorübergehend einer spezifischen Datenspeichervorrichtung zugeordnet sein, aber das virtuelle Lager bzw. Warehouse oder der Ausführungsknoten kann später auf Daten von irgendeiner anderen Datenspeichervorrichtung zugreifen.
  • Beim Beispiel von 3 enthält das virtuelle Lager 1 drei Ausführungsknoten 302-1, 302-2 und 302-n. Der Ausführungsknoten 302-1 enthält einen Cache 304-1 und einen Prozessor 306-1. Der Ausführungsknoten 302-2 enthält einen Cache 304-2 und einen Prozessor 306-2. Der Ausführungsknoten 302-n enthält einen Cache 304-n und einen Prozessor 306-n. Jeder Ausführungsknoten 302-1, 302-2 und 302-n ist mit einer Verarbeitung von einer oder mehreren Datenspeicherungs- und/oder Datenabrufaufgaben assoziiert. Zum Beispiel kann ein virtuelles Lager Datenspeicherungs- und Datenabrufaufgaben handhaben, die mit einem internen Dienst assoziiert sind, wie beispielsweise einem Clusterbildungsdienst, einem Auffrischungsdienst für eine materialisierte Ansicht, einem Dateikompaktierungsdienst, einem Speicherprozedurdienst oder einem Datei-Upgradedienst. Bei anderen Implementierungen kann ein bestimmtes virtuelles Lager Datenspeicherungs- und Datenabrufaufgaben handhaben, die mit einem bestimmten Datenspeichersystem oder einer bestimmten Datenkategorie assoziiert sind.
  • Ähnlich wie beim oben diskutierten virtuellen Lager 1 enthält das virtuelle Lager 2 drei Ausführungsknoten 312-1, 312-2 und 312-n. Der Ausführungsknoten 312-1 enthält einen Cache 314-1 und einen Prozessor 316-1. Der Ausführungsknoten 312-2 enthält einen Cache 314-2 und einen Prozessor 316-2. Der Ausführungsknoten 312-n enthält einen Cache 314-n und einen Prozessor 316-n. Zusätzlich enthält das virtuelle Lager 3 drei Ausführungsknoten 322-1, 322-2 und 322-n. Der Ausführungsknoten 322-1 enthält einen Cache 324-1 und einen Prozessor 326-1. Der Ausführungsknoten 322-2 enthält einen Cache 324-2 und einen Prozessor 326-2. Der Ausführungsknoten 322-n enthält einen Cache 324-n und einen Prozessor 326-n.
  • Bei einigen Ausführungsformen sind die in 3 gezeigten Ausführungsknoten zustandslos in Bezug auf die Daten, die die Ausführungsknoten im Cache speichern bzw. zwischenspeichern. Zum Beispiel speichern diese Ausführungsknoten Zustandsinformation über den Ausführungsknoten oder die Daten, die von einem bestimmten Ausführungsknoten zwischengespeichert werden, nicht oder halten sie nicht auf andere Weise. Somit kann im Fall eines Fehlers bzw. Ausfalls eines Ausführungsknotens der fehlerhafte bzw. ausgefallene Knoten transparent durch einen anderen Knoten ersetzt werden. Da es keine Zustandsinformation gibt, die mit dem fehlerhaften Ausführungsknoten assoziiert ist, kann der neue (Ersatz-) Ausführungsknoten den ausgefallenen Knoten auf einfache Weise ersetzen, ohne sich Gedanken über eine Neuerstellung eines bestimmten Zustands machen zu müssen.
  • Obwohl die in 3 gezeigten Ausführungsknoten jeweils einen Datencache und einen Prozessor enthalten, können alternative Ausführungsformen Ausführungsknoten umfassen, die irgendeine Anzahl von Prozessoren und irgendeine Anzahl von Caches enthalten. Zusätzlich können die Caches bezüglich der Größe zwischen den unterschiedlichen Ausführungsknoten variieren. Die in 3 gezeigten Caches speichern im lokalen Ausführungsknoten (z.B. in einer lokalen Platte) Daten, die von einer oder mehreren Datenspeichervorrichtungen in der Cloud-Computing-Speicherplattform 104 wiedergewonnen bzw. abgerufen wurden (z.B. S3-Objekte, auf die durch den gegebenen Knoten kürzlich zugegriffen ist). Bei einigen beispielhaften Ausführungsformen speichert der Cache Dateivorsätze bzw. Datei-Header und einzelne Spalten von Dateien, da eine Abfrage nur Spalten herunterlädt, die für diese Abfrage nötig sind.
  • Um Cache-Treffer zu verbessern und sich überlappende redundante Daten zu vermeiden, die in den Knoten-Caches gespeichert sind, ordnet der Job-Optimierer 208 den Knoten Eingabedateisätze unter Verwendung eines konsistenten Hashing-Schemas zu, um über Tabellendateinamen der Daten, auf die zugegriffen wird (z.B. Daten in der Datenbank 116 oder der Datenbank 122), zu hashen bzw. klein zu schneiden. Nachfolgende oder gleichzeitige Abfragen, die auf dieselbe Tabellendatei zugreifen, werden daher gemäß einigen beispielhaften Ausführungsformen auf demselben Knoten ausgeführt.
  • Wie es diskutiert ist, können sich die Knoten und virtuellen Lager in Reaktion auf Umgebungsbedingungen (z.B. Katastrophenszenarien), Hardware-/Softwareprobleme (z.B. Fehlfunktionen) oder administrative Änderungen (z.B. ein Ändern von einem großen Cluster zu einem kleineren Cluster zur Kostensenkung) dynamisch ändern. Bei einigen beispielhaften Ausführungsformen werden, wenn sich der Satz bzw. die Gruppe von Knoten ändert, keine Daten sofort umstrukturiert. Stattdessen wird die Ersatzpolitik bzw. -strategie für am wenigsten kürzlich verwendet implementiert, um die verlorenen Cacheinhalte über mehrere Jobs hinweg möglicherweise zu ersetzen. Somit reduzieren oder eliminieren die Caches die Engpassprobleme, die bei Plattformen auftreten, die konsistent Daten aus entfernten Speichersystemen abrufen. Anstatt wiederholt auf Daten aus den entfernten Speichervorrichtungen zuzugreifen, greifen die hierin beschriebenen Systeme und Verfahren auf Daten aus den Caches in den Ausführungsknoten zu, was signifikant schneller ist und das oben diskutierte Engpassproblem vermeidet. Bei einigen Ausführungsformen sind die Caches unter Verwendung von Hochgeschwindigkeits-Speichervorrichtungen implementiert, die einen schnellen Zugriff auf die zwischengespeicherten Daten bereitstellen. Jeder Cache kann Daten von irgendeiner der Speichervorrichtungen in der Cloud-Computing-Speicherplattform 104 speichern.
  • Weiterhin können die Cacheressourcen und Computerressourcen zwischen unterschiedlichen Ausführungsknoten variieren. Zum Beispiel kann ein Ausführungsknoten signifikante Computerressourcen und minimale Cacheressourcen enthalten, was den Ausführungsknoten für Aufgaben nützlich macht, die signifikante Computerressourcen erfordern. Ein anderer Ausführungsknoten kann signifikante Cacheressourcen und minimale Computerressourcen enthalten, was diesen Ausführungsknoten für Aufgaben nützlich macht, die das Zwischenspeichern großer Datenmengen erfordern. Ein noch weiterer Ausführungsknoten kann Cacheressourcen enthalten, die schnellere Eingabe-Ausgabe-Operationen bereitstellen, die für Aufgaben nützlich sind, die ein schnelles Scannen großer Datenmengen erfordern. Bei einigen Ausführungsformen implementiert die Ausführungsplattform 114 eine Versatz-Handhabung, um die Arbeit unter den Cacheressourcen und Computerressourcen zu verteilen, die mit einer bestimmten Ausführung assoziiert sind, wobei die Verteilung weiterhin auf den erwarteten Aufgaben basieren kann, die durch die Ausführungsknoten ausgeführt werden sollen. Zum Beispiel kann ein Ausführungsknoten mehreren Verarbeitungsressourcen zugeordnet werden, wenn die durch den Ausführungsknoten durchgeführten Aufgaben prozessorintensiver werden. Gleichermaßen kann ein Ausführungsknoten mehreren Cacheressourcen zugeordnet werden, wenn die durch den Ausführungsknoten durchgeführten Aufgaben eine größere Cachekapazität erfordern. Weiterhin können einige Knoten aufgrund verschiedener Probleme (z.B. Virtualisierungsprobleme, Netzwerk-Overhead) viel langsamer ausführend sein als andere. Bei einigen beispielhaften Ausführungsformen werden die Ungleichgewichte auf der Abtast- bzw. Scan-Ebene unter Verwendung eines Dateidiebstahlschemas behoben. Insbesondere fordert, wann immer ein Knotenprozess ein Scannen seiner Eingabedateien abschließt, er zusätzliche Dateien von anderen Knoten an. Wenn der eine der anderen Knoten eine solche Anforderung empfängt, analysiert der Knoten seinen eigenen Satz (z.B. wie viele Dateien beim Empfang der Anforderung im Eingabedateisatz gelassen sind) und überträgt dann das Eigentumsrecht bzw. den Besitz von einer oder mehreren der verbleibenden Dateien für die Dauer des aktuellen Jobs (z.B. der Abfrage). Der anfordernde Knoten (z.B. der Dateidiebstahlknoten) empfängt dann die Daten (z.B. Header-Daten) und lädt die Dateien von der Cloud-Computing-Speicherplattform 104 (z. B. von der Datenspeichervorrichtung 124-1) herunter und lädt die Dateien nicht vom übertragenden Knoten herunter. Auf diese Weise können zurückbleibende bzw. nacheilende Knoten Dateien über einen Dateidiebstahl auf eine Weise übertragen, die die Belastung an den zurückbleibenden Knoten nicht verschlechtert.
  • Obwohl die virtuellen Lager 1, 2 und n mit derselben Ausführungsplattform 114 assoziiert sind, können die virtuellen Lager unter Verwendung von mehreren Computersystemen an mehreren geografischen Standorten implementiert werden. Zum Beispiel kann das virtuelle Lager 1 durch ein Computersystem an einem ersten geografischen Standort implementiert werden, während die virtuellen Lager 2 und n durch ein anderes Computersystem an einem zweiten geografischen Standort implementiert werden. Bei einigen Ausführungsformen sind diese unterschiedlichen Computersysteme cloudbasierte Computersysteme, die durch ein oder mehrere unterschiedliche Unternehmen unterhalten werden.
  • Zusätzlich ist jedes virtuelle Lager in 3 derart gezeigt, dass es mehrere Ausführungsknoten hat. Die mit jedem virtuellen Lager assoziierten mehreren Ausführungsknoten können unter Verwendung mehrerer Computersysteme an mehreren geografischen Standorten implementiert werden. Zum Beispiel implementiert eine Instanz des virtuellen Lagers 1 die Ausführungsknoten 302-1 und 302-2 auf einer Computerplattform an einem geografischen Standort und implementiert den Ausführungsknoten 302-n auf einer anderen Computerplattform an einem anderen geografischen Standort. Ein Auswählen bestimmter Computersysteme, um einen Ausführungsknoten zu implementieren, kann von verschiedenen Faktoren abhängen, wie beispielsweise dem Ausmaß von Ressourcen, die für einen bestimmten Ausführungsknoten nötig sind (z.B. Verarbeitungsressourcenanforderungen und Cacheanforderungen), den Ressourcen, die bei bestimmten Computersystemen verfügbar sind, Kommunikationsfähigkeiten von Netzwerken innerhalb eines geografischen Standorts oder zwischen geografischen Standorten und welche Computersysteme bereits andere Ausführungsknoten im virtuellen Lager implementieren.
  • Die Ausführungsplattform 114 ist auch fehlertolerant. Wenn zum Beispiel ein virtuelles Lager ausfällt, wird dieses virtuelle Lager schnell durch ein anderes virtuelles Lager an einem anderen geografischen Standort ersetzt.
  • Eine bestimmte Ausführungsplattform 114 kann irgendeine Anzahl von virtuellen Lagern enthalten. Zusätzlich ist die Anzahl von virtuellen Lagern in einer bestimmten Ausführungsplattform dynamisch, so dass neue virtuelle Lager erstellt werden, wenn zusätzliche Verarbeitungs- und/oder Cachespeicherungs- bzw. Zwischenspeicherungs-Ressourcen nötig sind. Gleichermaßen können existierende virtuelle Lager gelöscht werden, wenn die mit dem virtuellen Lager assoziierten Ressourcen nicht mehr nötig sind.
  • Bei einigen Ausführungsformen können die virtuellen Lager an denselben Daten in der Cloud-Computing-Speicherplattform 104 arbeiten, aber jedes virtuelle Lager hat seine eigenen Ausführungsknoten mit unabhängigen Verarbeitungs- und Cachespeicherungs- bzw. Zwischenspeicherungs-Ressourcen. Diese Konfiguration lässt zu, dass Anforderungen an unterschiedlichen virtuellen Lagern unabhängig und ohne Interferenz zwischen den Anforderungen verarbeitet werden. Diese unabhängige Verarbeitung, kombiniert mit der Fähigkeit, virtuelle Lager dynamisch hinzuzufügen und zu entfernen, unterstützt das Hinzufügen neuer Verarbeitungskapazität für neue Benutzer, ohne die von den existierenden Benutzern beobachtete Leistungsfähigkeit zu beeinflussen bzw. zu beeinträchtigen.
  • 4A-4C zeigen beispielhafte Datenarchitekturen zum gemeinsamen Nutzen bzw. Teilen von Datenbankobjekten unter Verwendung des netzwerkbasierten Data-Warehouse-Systems 102 gemäß einigen beispielhaften Ausführungsformen. Wie es diskutiert ist, kann das Zugriffsmanagementsystem 110 Teilungsdaten zum gemeinsamen Nutzen bzw. Teilen von Daten zwischen Speichervorrichtungen (z.B. unterschiedlichen Speichervorrichtungen eines einzelnen Kontos oder Teilen von Daten in einer Speichervorrichtung, die einem ersten Teilerkonto zugeteilt ist, mit einem zweiten Verbraucherkonto). Bei einigen beispielhaften Ausführungsformen implementiert das Zugriffsmanagementsystem 110 eine rollenbasierte Zugriffssteuerung bzw. -kontrolle, um einen Zugriff auf Objekte in Kundenkonten zu steuern. Die rollenbasierte Zugriffssteuerung besteht aus zwei Mechanismen: Rollen und Gewährungen. Bei einer Ausführungsform sind Rollen spezielle Objekte in einem Endbenutzerkonto (z.B. Anbieterkonto, Verbraucherkonto), die Benutzern zugeordnet sind. Gewährungen bzw. Berechtigungen zwischen Rollen und Datenbankobjekten definieren, welche Privilegien eine Rolle an diesen Objekten hat. Zum Beispiel kann eine Rolle, die über eine Benutzungsberechtigung an einer Datenbank verfügt, diese Datenbank „sehen“, wenn sie den Befehl „Datenbanken anzeigen“ ausführt; eine Rolle, die über eine Auswahlberechtigung an einer Tabelle verfügt, kann aus dieser Tabelle lesen, aber nicht zur Tabelle schreiben. Die Rolle müsste über eine Modifizierungsberechtigung an der Tabelle verfügen, um zu ihr schreiben zu können.
  • 4A ist ein schematisches Blockdiagramm, das einen rollenbasierten Zugriff auf Objekte in Kundenkonten einer mehrmandantenfähigen gemeinsam genutzten Datenbankplattform (z.B. der Plattform 120, wie die, auf welche vom System 102 aus zugegriffen wird) darstellt, gemäß einigen beispielhaften Ausführungsformen. Bei den folgenden Beispielen entspricht ein Benutzerkonto „A1“ einem Datenanbieterkonto, das ein virtuelles Lager eines Datenanbieters (z.B. das virtuelle Lager 1 in 3A) managt, und entspricht ein weiteres anderes Benutzerkonto A2 einem Datenverbraucherkonto, das virtuelle Lager eines Datenverbrauchers (z.B. das virtuelle Lager 2 in 3A) initiiert.
  • Wie es dargestellt ist, enthält das A1-Konto eine Rolle R1, die über Berechtigungen zu allen Objekten in der Objekthierarchie verfügt. Unter der Annahme, dass diese Berechtigungen Nutzungsberechtigungen zwischen R1 und Datenbankobjekten D1 und D2, Teilungen S1 und S2 und Auswahlberechtigungen zwischen R1 und einem Tabellenobjekt T1, einem Ansichtsobjekt V1, einem Funktionsobjekt F2, einem Sequenzobjekt Q2, einem Tabellenobjekt T2 sind, kann ein Benutzer mit aktivierter Rolle R1 alle Objekte sehen und Daten aus allen Tabellen, Ansichten und Sequenzen lesen und kann die Funktion F2 innerhalb des Kontos A1 ausführen.
  • Das Konto A2 enthält eine Rolle R3, die über Berechtigungen zu allen Objekten in der Objekthierarchie verfügt. Unter der Annahme, dass diese Berechtigungen Nutzungsberechtigungen zwischen R3 und D3, S3 sind und eine Berechtigung zwischen R3 und T3 auswählen, kann ein Benutzer mit aktivierter Rolle R3 alle Objekte sehen und Daten aus allen Tabellen, Ansichten und Sequenzen innerhalb des Kontos A2 lesen.
  • 4B stellt eine Nutzungsberechtigung zwischen Rollen dar. Mit einer rollenbasierten Zugriffssteuerung ist es auch möglich, eine Benutzung von einer Rolle zu einer anderen Rolle zu gewähren. Eine Rolle, die über eine Benutzungsberechtigung zu einer anderen Rolle verfügt, „erbt“ alle Zugriffsprivilegien der anderen Rolle. Zum Beispiel hat man in der Rolle R2 eine Benutzungsberechtigung an der Rolle R1. Ein Benutzer (z.B. mit entsprechenden Autorisierungsdetails) mit aktivierter Rolle R2 kann alle Objekte sehen und aus diesen lesen, weil die Rolle R2 alle Berechtigungen von der Rolle R1 erbt.
  • Gemäß einer Ausführungsform werden Nutzungsberechtigungen über unterschiedliche Konten hinweg gewährt. Ein Konto, das Daten teilt, kann hierin als „Teilerkonto“ bezeichnet werden, und ein Konto, mit dem die Daten geteilt werden, kann hierin als „Zielkonto“ bezeichnet werden. Einige hierin offenbarte Ausführungsformen ermöglichen eine sofortige, kopierfreie, leicht kontrollierbare kontoübergreifende gemeinsame Nutzung von Daten. Bei einigen Ausführungsformen kann ein Teilerkonto ein Teilungsobjekt erzeugen, um Daten mit einem anderen Konto zu teilen. Innerhalb des Teilungsobjekts kann eine Rolle erstellt werden, und ein Benutzer des Teilerkontos kann Zugriffsrechte oder -berechtigungen anzeigen, die für die Rolle und/oder fremde Konten (oder Zielkonten) verfügbar sind, denen Rechte unter der Rolle gewährt sein werden. Ein Zielkonto kann dann Teilungsobjekte oder -rollen in einem anderen Konto identifizieren, für das dem Zielkonto Rechte oder in Zugriff gewährt worden sind. Bei einer Ausführungsform können Teilungsobjekte in einem Teilerkonto unter Verwendung von Aliasobjekten und kontoübergreifenden Rollenberechtigungen in das Zielkonto importiert werden.
  • Das Teilerkonto erstellt einen neuen Typ von Objekt, das Teilungsobjekt. Das Teilungsobjekt hat einen innerhalb des Teilerkontos zu identifizierenden eindeutigen Namen. Zum Beispiels kann es sein, dass der Name innerhalb eines Kontos eindeutig sein muss, jedoch nicht unbedingt kontenübergreifend. Teilungsobjekte können erstellt, modifiziert und gelöscht werden, indem auf sie über ihren Namen im Teilerkonto Bezug genommen wird.
  • Bei einigen Ausführungsformen enthält jedes Teilungsobjekt eine einzelne Rolle. Berechtigungen zwischen dieser Rolle und Objekten definieren, welche Objekte geteilt werden und mit welchen Privilegien diese Objekte geteilt werden. Die Rolle und Berechtigungen können bei der Implementierung einer rollenbasierten Zugriffssteuerung irgendeinem anderen Rollen- und Berechtigungssystem ähnlich sein. Durch Modifizieren des Satzes von Berechtigungen, die an der Rolle in einem Teilungsobjekt angebracht sind, können mehr Objekte geteilt werden (durch Hinzufügen von Berechtigungen zur Rolle), können weniger Objekte geteilt werden (durch Widerrufen von Berechtigungen von der Rolle) oder können Objekte mit unterschiedlichen Privilegien geteilt werden (durch Ändern des Typs von Berechtigung, um zum Beispiel einen Schreibzugriff auf ein geteiltes Tabellenobjekt zuzulassen, das zuvor nur zu lesen bzw. schreibgeschützt war).
  • Bei einer Ausführungsform enthält ein Teilungsobjekt auch eine Liste von Bezugnahmen bzw. Verweisen auf andere Kundenkonten. Es kann sein, dass nur für diese Konten, die sich spezifisch im Teilungsobjekt befinden, zugelassen ist, dass sie in diesem Teilungsobjekt nachschlagen, darauf zugreifen und/oder von diesem importieren. Durch Modifizieren der Liste von Referenzen von anderen Kundenkonten kann das Teilungsobjekt für mehrere Konten zugreifbar bzw. zugänglich gemacht oder auf weniger Konten beschränkt werden.
  • 4C ist ein schematisches Blockdiagramm, das logische Berechtigungen und Verbindungen bzw. Verknüpfungen zwischen unterschiedlichen Konten darstellt. Im Konto A2 wird ein Datenbank-Aliasobjekt DS erstellt. Ein Datenbank-Alias D5 nimmt über die Verbindung L1 Bezug auf die Datenbank D2. Die Rolle R3 hat eine Nutzungsberechtigung G1 an der Datenbank DS. Die Rolle R3 hat eine zweite Nutzungsberechtigung G2 zur Rolle R4 im Kundenkonto A1. Die Berechtigung G2 ist eine kontoübergreifende Berechtigung zwischen den Konten A1 und A2. Eine rollenbasierte Zugriffssteuerung lässt zu, dass ein Benutzer beim Konto A2 mit aktivierter Rolle R3 auf Daten im Konto A1 zugreift. Wenn zum Beispiel ein Benutzer beim Konto A2 Daten in der Tabelle T2 lesen möchte, lässt eine rollenbasierte Zugriffssteuerung zu, dass die Rolle R3 eine Nutzungsberechtigung einer Rolle R4 hat und die Rolle R4 wiederum eine Auswahlberechtigung an der Tabelle T2 hat. Anhand einer Veranschaulichung kann ein Benutzer mit aktivierter Rolle R3 auf T2 zugreifen, indem er eine Abfrage oder Auswahl ausführt, die zu „D5.S2.T2“ gerichtet ist (wobei ein Zugriff auf T2 über S2 und D5 erfolgt).
  • Ein Verwenden von Objektaliassen und kontoübergreifenden Berechtigungen von einer Rolle im Zielkonto zu einer Rolle im Teilerkonto lässt zu, dass Benutzer im Zielkonto auf Informationen im Teilerkonto zugreifen. Auf diese Weise kann ein Datenbanksystem ein Teilen von Daten zwischen unterschiedlichen Kundenkonten auf eine sofortige, kopierfreie und leicht kontrollierbare Weise ermöglichen. Das Teilen kann sofort erfolgen, weil Aliasobjekte und kontoübergreifende Berechtigungen in Millisekunden erstellt werden können. Das Teilen kann kopierfrei sein, weil beim Prozess keine Daten dupliziert werden müssen. Zum Beispiel können alle Abfragen oder Auswahlen direkt zu dem gemeinsam genutzten Objekt im Teilerkonto vorgenommen werden, ohne ein Duplikat im Zielkonto zu erstellen. Das Teilen ist auch einfach zu steuern, da es einfach zu verendende bzw. benutzerfreundliche Techniken einer rollenbasierten Zugriffssteuerung verwendet. Zusätzlich gibt es bei Ausführungsformen mit getrennter Speicherung und Rechenleistung keinen Konflikt zwischen den Computerressourcen beim Ausführen von Abfragen an gemeinsam genutzten Daten. Somit können unterschiedliche virtuelle Lager in unterschiedlichen Kundenkonten gemeinsam genutzte Daten einzeln bzw. individuell verarbeiten. Zum Beispiel kann ein erstes virtuelles Warehouse für ein erstes Konto eine Datenbankabfrage oder -anweisung unter Verwendung von durch ein Teilerkonto geteilten Daten verarbeiten und kann ein zweites virtuelles Lager für ein zweites Konto, oder das Teilerkonto, eine Datenbankabfrage oder -anweisung unter Verwendung der geteilten Daten des Teilerkontos verarbeiten.
  • 5 zeigt eine beispielhafte Datenbankarchitektur 500 zum Teilen von Daten zwischen Entitäten bzw. Einheiten (z.B. Benutzern) unter Verwendung der geteilten Datenverarbeitungsplattform 100 gemäß einigen beispielhaften Ausführungsformen. Im angezeigten Beispiel entspricht ein Datenanbieterkonto 505 einer Benutzervorrichtung (z.B. einem Laptop) eines Benutzers (z.B. einem Konto eines ersten Benutzers bei einem ersten Unternehmen, einer Abteilung etc., das Daten erstellt und speichert), der als Administrator der Daten 510 angemeldet ist. Zum Beispiel erzeugt und speichert das Provider- bzw. Anbieterkonto 505 die Daten in der gemeinsam genutzten bzw. geteilten Datenverarbeitungsplattform 100. Die Daten 510 können Daten enthalten, die zum netzwerkbasierten Data-Warehouse-System 102 hochgeladen werden (z.B. zur Speicherung in der Datenbank 116 oder den Caches von Knoten in 114, oder Daten, die sich auf der Cloud-Computing-Speicherplattform 104 befinden). Das Verbraucherkonto 515 entspricht einer Benutzervorrichtung eines anderen Benutzers (z.B. einem anderen Benutzer in einem anderen Unternehmen, einer anderen Abteilung innerhalb desselben Unternehmens etc., der einen Laptop verwendet, um sich anzumelden und eine aktive Session des Verbraucherkontos 515 zu erstellen), mit der das Anbieterkonto 505 danach sucht, die Daten 510 über die gemeinsame Datenverarbeitungsplattform 100 zu teilen. Zum Beispiel können das Datenanbieterkonto 505 und das Datenverbraucherkonto 515 beide von unterschiedlichen entfernten Computervorrichtungen wie der entfernten Computervorrichtung 106 ausgeführt werden, die unter Verwendung des netzwerkbasierten Data-Warehouse-Systems 102 auf die Daten 510 zugreifen, diese modifizieren oder anderweitig verarbeiten können (z.B. basierend auf Berechtigungen, Rollen, durch das Zugriffsmanagementsystem 110 und/oder das Zugriffsmanagementsystem 118 gemanagte Session-Informationen). Beim dargestellten Beispiel enthalten die Daten 510 Datenbanken (z.B. Datenbank1, Datenbank2, Datenbank3). Jede Datenbank besteht aus einem oder mehreren Schemas, die Gruppen von Datenbankobjekten sind, wie beispielsweise Tabellen (z.B. Tabelle2, Tabelle3), Ansichten (z.B. Ansicht1, Ansicht3) und Teilungen (z.B. Teilung1).
  • In Tabellen sind die Daten relationale Datenbankdaten, die als Sammlungen von Spalten und Zeilen strukturiert sind, wobei Tabellen Bezugnahmen bzw. Verweise auf andere Tabellen (z.B. Schlüssel, Indizes, geteilte Spalten wie beispielsweise Verbrauchername) enthalten können. Nimmt man zum Beispiel Bezug auf 6, umfasst eine erste Tabelle 600 drei Spalten (Patientenname, Alter und Symptom) mit Zeilen für jeden Patienten und umfasst eine zweite Tabelle 605 zwei Spalten (Patientenname, Postleitzahl), wo die Patientennamen identische Spalten sind, die verwendet werden, um auf einen gegebenen Patienten/Benutzer Bezug zu nehmen. Zum Beispiel kann aus der ersten Tabelle 600 und der zweiten Tabelle eine Verknüpfungsoperation oder -ansicht erstellt werden, um Postleitzahlen zu zeigen, bei denen verschiedene Symptome aufgetreten sind (z.B. durch Erstellen einer Ansicht oder einer neuen Tabelle unter Verwendung der Spalten mit Patientennamen, Symptom und Postleitzahl). Obwohl hier relationale Datenbankstrukturen als Beispiele diskutiert werden, wird es eingesehen, dass die durch die gemeinsam genutzte Datenverarbeitungsplattform 100 gemanagten Daten bei einigen beispielhaften Ausführungsformen in einem Format einer nicht-relationalen Datenbank strukturierte Daten sein können (z.B. NoSQL, Hadoop, Spark Frames etc.).
  • Wendet man sich wieder der 5 zu, ist, wie es hier verwendet ist, eine Ansicht ein Datenbankobjekt, das Daten aus einer oder mehreren Tabellen anzeigt (z.B. Anzeigen bestimmter Spalten mit einem kundenangepassten bzw. benutzerdefinierten Ansichtsschema). Eine Ansicht lässt zu, dass auf das Ergebnis einer Abfrage zugegriffen wird, als ob die Ansicht selbst eine Tabelle ist. Während Ansichten verwendet werden können, um Spalten auszuschließen oder zu verstecken bzw. auszublenden, um die Daten zu „maskieren“, erstellt ein Ausblenden von Daten unter Verwendung von Ansichten ein weiteres Objekt, das gemanagt werden muss, und wenn es in einer bestimmten Netzwerkumgebung viele zu maskierende Elemente gibt, muss eine große Menge an Ansichten gemanagt werden, was zu erheblichem Overhead und Managementkomplexität führt. Zusätzlich ist ein Ausblenden von Daten unter Verwendung von Ansichten zum Maskieren unabhängig davon, welcher Zugriff einer Rolle die Ansicht sieht (z.B. sieht ein Benutzeringenieur dieselbe Ansicht wie der Analystenbenutzer). Zusätzlich erstellen die Ansichten lediglich eine Datenobjektansicht und führen keine Datentransformationsstiloperationen durch (z.B. ersetzen von ersten drei Zeichen eines Namens durch Hashtags). Zusätzlich kann ein Teilen von Ansichten eine Netzwerksicherheit umfassen, da der Empfänger der Ansicht möglicherweise einen Zugriff auf die zum Erstellen der Ansicht verwendeten zugrundeliegenden Daten erlangen kann (z.B. einen Zugriff auf die vollständige Tabelle, aus der Spalten herausgezogen wurden, um eine gegebene Ansicht zu erstellen).
  • Eine Teilung ist ein Objekt, das für die geteilte Datenverarbeitungsplattform 100 benutzerdefiniert bzw. kundenspezifisch ist, die verwendet werden kann, um Daten zwischen Benutzern des netzwerkbasierten Data-Warehouse-Systems 102 auf effiziente und sichere Weise gemeinsam zu nutzen bzw. zu teilen. Ein Teilungsobjekt umfasst alle Informationen, die zum Teilen einer gegebenen Datenbank verwendet werden. Jede Teilung enthält Privilegien, die einen Zugriff auf die Datenbanken und ein die zu teilenden Objekte enthaltendes Schema gewähren, die Privilegien, die einen Zugriff auf spezifische Objekte (z.B. Tabellen, sichere Ansichten) gewähren, und die Verbraucherkonten, mit denen die Datenbank und ihre Objekte gemeinsam genutzt bzw. geteilt werden. Nachdem eine gegebene Datenbank erstellt ist (z.B. durch das Datenanbieterkonto 505), können die geteilten Objekte für einen Zugriff und/oder eine Manipulation durch andere Benutzer (z.B. das Verbraucherkonto 515) über die Cloud-Computing-Speicherplattform 104 verfügbar gemacht werden. Zum Beispiel kann das Anbieterkonto 505 eine oder mehrere Datenbankinstanzen erstellen und dann die Daten 510 in die Datenbankinstanzen laden, Ansichten und/oder geteilte Objekte erstellen und weiterhin Verbraucherkonten (z.B. Leserkonten) erstellen, die über das netzwerkbasierte Data-Warehouse 102 auf die Datenbankobjekte zugreifen können, und keine Daten müssen zwischen den Konten übertragen werden; stattdessen wird auf die geteilten Daten direkt auf der ursprünglichen Speichervorrichtung zugegriffen. Zum Beispiel kann sich das Verbraucherkonto 515 unter Verwendung eines Browser anmelden, um auf eine Seite zuzugreifen, eine schreibgeschützte Datenbank bzw. Nurlese-Datenbank (z.B. „Verbraucher-Datenbank“) zu erzeugen und die die Datenbank mit geteilten Daten (z.B. „Ansicht3“) zur Analyse füllen, ohne Daten von der Speichervorrichtung kopieren zu müssen, die die geteilten Daten speichert.
  • 7A-7E zeigen beispielhafte Benutzerschnittstellen zum Managen von Daten unter Verwendung der gemeinsam genutzten bzw. geteilten Datenverarbeitungsplattform 100 gemäß einigen beispielhaften Ausführungsformen. Beim illustrativen Beispiel entsprechen die 7A und 7B Internetbrowser-Benutzerschnittstellen, die auf einer Vorrichtung des Datenanbieterkontos 505 (z.B. einem Laptop) angezeigt werden, und sind die 7C-7E beispielhafte Internetbrowser-Benutzerschnittstellen, die auf einer anderen Vorrichtung eines anderen Benutzers angezeigt werden, der als das Verbraucherkonto 515 angemeldet ist. Während bei den dargestellten Beispielen Internetbrowser-Benutzerschnittstellen diskutiert werden, wird es eingesehen, dass die Benutzerschnittstellen gleichermaßen in andere Anwendungen integriert werden können, wie beispielsweise native Anwendungen eines Betriebssystems einer Client-Vorrichtung (z.B. eine mobile Anwendung auf einem Smartphone, eine Linux-Anwendung auf einem Linux-Laptop, eine Windows-Anwendung auf einem Windows-fähigen Laptop, etc.).
  • In 7A zeigt die Benutzerschnittstelle bzw. -oberfläche 700 ein Fenster 705 zum Erstellen von Leserkonten an. Das Fenster 705 enthält Felder zum Erstellen eines Kontonamens (z.B. den Namen des Verbraucherkontos 515, wie beispielsweise „Bert“, eines Datenanalysten bei einem Unternehmen einer 3-ten Partei) und Anmeldefelder wie beispielsweise ein Benutzernamenfeld und ein Passwortfeld. Auf ein Auswählen der Schaltfläche „Konto erstellen“ im Fenster 705 wird das Verbraucherkonto 515 erstellt und mit dem Anbieterkonto 505 auf der geteilten Datenverarbeitungsplattform 100 verknüpft bzw. verbunden (z.B. über das Zugriffsmanagementsystem 110 und das Zugangsmanagementsystem 118).
  • In der 7B zeigt die Benutzungsschnittstelle bzw. -oberfläche 710 ein Fenster 715 zum Erstellen eines Teilungsobjekts und zum Hinzufügen von Datenbankobjekten (z.B. Tabellen, Ansichten) zum Teilungsobjekt und zum Spezifizieren eines Teilungsobjektzugriffs (z.B. Verbraucherkonten, mit denen das Teilungsobjekt geteilt wird) an. Zum Beispiel lässt das Feld „Teilungsname“ zu, dass das Teilungsobjekt benannt wird, lässt das Feld „Datenbank“ zu, dass Datenbankobjekte im Teilungsobjekt enthalten sind, wie beispielsweise Ansicht3. Das Fenster 715 enthält weiterhin ein Feld „Verbraucherkonto“, das einem oder mehreren Verbraucherkonten (z.B. Bert) einen Zugriff auf das geteilte Objekt gibt, und eine Teilungsobjekt-Verbindung bzw. einen Teilungsobjekt-Link, die bzw. der eine URL zum Verbraucherkonto 515 ist (z.B. eine URL zu einer Netzwerkdienstinstanz des Verbraucherkontos 515).
  • Basierend darauf, dass der Benutzer die Schaltfläche Erstellen im Fenster 715 auswählt, wird das Teilungsobjekt erstellt und wird dem Verbraucherkonto 515 (z.B. Berts Konto) ein Zugriff auf das Teilungsobjekt zugewiesen. Der Teilungsobjekt-Link kann vom Anbieterkonto kopiert und zusammen mit Anmeldeinformationen (z.B. Benutzername Passwort) zu anderen Benutzern (z.B. Bert) gesendet werden, um auf das Verbraucherkonto 515 zuzugreifen und es zu aktivieren (z.B. eine Verbraucherkonto-Session als ein Netzwerkdienst).
  • 7C zeigt eine Benutzerschnittstelle bzw. -oberfläche 720, die ein Anmeldefenster 730 zum Zugreifen auf Teilungsobjekte anzeigt, gemäß einigen beispielhaften Ausführungsformen. Beim illustrativen Beispiel empfängt der Benutzer „Bert“ die Teilungsobjekt-URL, den Benutzernamen und Passwortinformationen (z.B. per E-Mail) und zeigt die Benutzeroberfläche 720 unter Verwendung der Teilungsobjekt-URL in einer Adressleiste 725 eines Internetbrowsers an. Auf ein Eingeben der korrekten Informationen in die Felder Benutzername und Passwort (z.B. der oben in Bezug auf 7A diskutierten Benutzernamen- und Passwortdaten) und ein Auswählen der Anmelde- bzw. Login-Schaltfläche hin wird eine Verbraucherkonto-Session auf dem netzwerkbasierten Data-Warehouse-System 102 für das Verbraucherkonto 515 aktiviert. In der Verbraucherkonto-Session kann der Benutzer eine zusätzliche Datenbank erstellen, Daten abfragen, Daten modifizieren und auf Datenobjekte zugreifen, die mit dem Verbraucherkonto geteilt sind (z.B. das vom Anbieterkonto 505 erstellte und geteilte Teilungsobjekt).
  • 7D zeigt eine Benutzerschnittstelle bzw. -oberfläche 735, die ein Fenster 740 anzeigt, das verwendet werden kann, um eine Datenbankinstanz zu erstellen, gemäß einigen beispielhaften Ausführungsformen. Die Benutzeroberfläche 735 kann in Reaktion darauf angezeigt werden, dass die Anmelde- bzw. Login-Schaltfläche mit den richtigen Informationen ausgewählt wird, die die Felder Login und Passwort füllen. Das Fenster 740 kann vom Verbraucherkonto 515 verwendet werden, um Computerressourcen (z.B. virtuelle Lager) und eine Datenbankinstanz zu erstellen, in welche das Teilungsobjekt (z.B. eine schreibgeschützte Datenbank bzw. Nurlese-Datenbank, die Patientendaten anzeigt) geteilt wird. Zum Beispiel wird unter Verwendung des Elements Computing erstellen ein Dropdown-Menü angezeigt, das zulässt, dass der Verbraucher (z.B. Datenverbraucher, Verbraucherkonto 515) virtuelle Lager unterschiedlicher Größe (z.B. EC2-Cluster unterschiedlicher Größe, wie beispielsweise ein kleines Cluster, ein mittleres Cluster und ein großes Cluster) erstellt und eine Datenbank am virtuellen Lager erzeugt, wo die in die Datenbank gefüllten Daten von der Speichervorrichtung des Anbieterkontos sind. Wie es diskutiert ist, sind die Computerressourcen und die Speicherressourcen entkoppelt und kann das Verbraucherkonto 515 virtuelle Lager managen (z.B. eine Zahlung einrichten, erstellen, ändern, beenden), um auf die Teilungsobjektdaten oder andere Daten (z.B. von einem anderen Benutzer des Verbraucherkontos erzeugte neue Daten, die sich nicht auf die Teilungsobjektdaten beziehen) zuzugreifen.
  • Das Fenster 740 enthält außerdem einen Identifizierer („Teilungsdaten“), der anzeigt, welche geteilten Daten in die beim virtuellen Lager des Verbraucherkontos erstellten Datenbankinstanz geladen sein werden („Patientendaten“), und ein Datenbanknamensfeld, das zulässt, dass das Verbraucherkonto 515 die neu erstellte Datenbank benennt, die mit den Teilungsobjekt-Daten gefüllt wird. In Reaktion auf ein Empfangen einer Auswahl der Schaltfläche Datenbank erstellen im Fenster 740 wird ein neues virtuelles Lager für das Verbraucherkonto 515 erzeugt (z.B. ein neues EC2-Cluster von geringer Größe, wie beispielsweise vier virtuelle Maschinen), wird eine neue Datenbankinstanz am neuen virtuellen Lager erzeugt und werden Daten aus dem Teilungsobjekt zum Füllen der Datenbank verwendet. Auf diese Weise handhabt das Verbraucherkonto die Computer- bzw. Rechenressourcen, ohne die Systeme des Datenanbieters zu beeinflussen bzw. zu beeinträchtigen (z.B. ohne einen Projektionsserver des Datenbankanbieters zu beeinflussen bzw. zu beeinträchtigen, der Daten 510 erzeigt und speichert).
  • 7E zeigt eine Benutzerschnittstelle bzw. -oberfläche 745 zum Interagieren mit den Teilungsobjekt-Daten gemäß einigen beispielhaften Ausführungsformen. Fährt man mit dem Beispiel fort, kann ein Benutzer des Verbraucherkontos 515 die Benutzeroberfläche 745 verwenden, um mit den Teilungsobjekt-Daten am neu erstellten Lager zu interagieren. Zum Beispiel listet die Seitentafel bzw. der Seitenbereich 750 Daten auf, die durch das neu erstellte Lager gemanagt werden, kann der Ausführungsbereich 755 einen Code empfangen, um gegenüber den Teilungsobjekt-Daten auszuführen, und werden die Ergebnisse des ausgeführten Codes im Ergebnisbereich 760 angezeigt. Zum Beispiel kann ein Benutzer des Verbraucherkontos 515 eine SQL-Abfrage in den Ausführungsbereich 755 eingeben, die dann gegen die Teilungsobjekt-Daten in der neu erstellten Datenbank ausgeführt wird, die auf dem neuen Lager in Betrieb ist bzw. läuft, die durch das Verbraucherkonto in 7D erstellt ist. Auf diese Weise können Benutzer der Verbraucherkonten auf sichere Weise auf Liveproduktionsdaten des Anbieterkontos zugreifen und mit ihnen interagieren, wobei Updates an den Teilungsobjekt-Daten (z.B. Produktionsserver-Updates, von denen die Teilungsobjekt-Daten abgeleitet werden) in Echtzeit erfolgen und die Berechnungen des Verbrauchers nicht in die Anbieterkontosysteme eingreifen, da die Berechnungen bei einem virtuellen Lager, erstellt und verwaltet vom Verbraucherkonto 515, durchgeführt werden.
  • 8 zeigt eine beispielhafte Datenarchitektur 800 zum dynamischen Maskieren von gemeinsam genutzten bzw. geteilten Datenobjekten gemäß einigen beispielhaften Ausführungsformen. Bei Beispiel von 8 ist ein Datenanbieternetzwerk 805 ein Netzwerk (z.B. ein privates Unternehmens- bzw. Firmennetzwerk eines Krankenhauses) mit Anbieterbenutzern wie beispielsweise einem Anbieterbenutzer 807, der Anbieterdaten managt, wie beispielsweise Tabellen 809. Das Datenanbieternetzwerk 805 sucht danach, einen Zugriff auf die Tabellen 809 auf kontrollierte bzw. gesteuerte Weise mit dem Datenverbrauchernetzwerk 810 (z.B. einem Think-Tank bzw. einer Denkfabrik für Infektionskrankheiten) zu teilen. Bei einem Beispiel ist der Anbieterbenutzer 807 ein Arztbenutzer des Datenanbieternetzwerks 805 und können die Tabellen 809 Datenbankobjekte wie beispielsweise die Tabelle 600 und die Tabelle 605 in 6 umfassen und sucht der Anbieterbenutzer 807 danach, die Tabellen 809 mit Benutzern in dem anderen Unternehmen (z.B. Datenverbrauchernetzwerk) zur Analyse zu teilen, wobei sich die Tabellen 809 einer dynamischen Datenmaskierung über die Teilungsmaskenmaschine auf dem netzwerkbasierten Data-Warehouse-System 102 unterziehen. Herkömmlicherweise lädt der Datenanbieter zum Teilen von Daten die Daten zu einem Netzwerkort hoch (z.B. FTP zum Cloud-Speicher 615) und werden die Daten dann in das Datenverbrauchernetzwerk 810 heruntergeladen. Dieser herkömmliche Ansatz ist problematisch, wenigstens deshalb, weil dann, wenn die Datenmenge groß ist (z. B. in einem globalen Unternehmensnetzwerk), ein Hoch- und Herunterladen von Daten ein sehr langsamer, wenn nicht sogar ein völlig unpraktikabler Prozess sein kann, bei dem große Netzwerk-Overheads bzw. -Kosten anfallen. Zusätzlich haben diese Ansätze einen minimalen Datenschutz, da die Daten in einem Alles-oder-Nichts-Ansatz geteilt werden, bei dem der Datenverbraucher 810 Zugriff auf alle der geteilten Daten oder keine der geteilten Daten hat (z.B. würde ein Teilen von nur einigen wenigen Spalten erfordern, dass ein neues Datenobjekt erstellt wird und dann das neue Datenobjekt geteilt wird, was gleichermaßen belastend und unpraktisch sein kann, wenn die Größe der geteilten Daten anwächst). Zusätzlich sind bei den herkömmlichen Ansätzen dann, wenn einmal die Daten zum Datenverbraucher gesendet sind, die gesendeten Daten sofort veraltet, sobald Änderungen an den ursprünglichen Daten vorgenommen werden (z.B. Updates an Tabellen 809). Während es sein kann, dass das Datenverbrauchernetzwerk 810 einen direkten Zugriff auf die Tabellen 809 bevorzugt (z.B. einen Zugriff auf Produktionsserverdaten), werden viele Datenanbieter wegen Bedenken bezüglich eines Datenschutzes oder einer Netzwerksicherheit (z.B. zur Einhaltung gesetzlicher Datenschutzgesetze, um potenziellen böswilligen Netzwerkmissbrauch wie Hacking zu vermeiden) keinen solchen direkten Zugriff bereitstellen.
  • Um sich mit dem Vorstehenden zu befassen, verwendet das netzwerkbasierte Data-Warehouse-System 102 gemäß einigen beispielhaften Ausführungsformen die Teilungsmaskenmaschine 225, um es dem Datenanbieternetzwerk 805 (z.B. Benutzern im Datenanbieternetzwerk wie dem Anbieterbenutzer 808) zu ermöglichen, einen Zugriff auf die Live-Daten mit dem Datenverbrauchernetzwerk 810 (z.B. Benutzern im Datenverbrauchernetzwerk 810 wie Verbraucher_1 und Verbraucher_2) in einem sicheren maskierbaren Ansatz zu teilen. Zum Beispiel kann, wie es dargestellt ist, der Anbieterbenutzer 807 die Tabellen 809 zum Cloud-Speicher 815 hochladen und dann einen Zugriff auf das netzwerkbasierte Data-Warehouse-System 102 geben, um auf den Cloud-Speicher 815 zuzugreifen, um die Daten (z.B. externe Tabellen) für Maskierung und Abfragen abzurufen bzw. wiederzugewinnen oder auf diese Bezug zu nehmen. Alternativ oder zusätzlich zu den in der Cloud gespeicherten Daten kann der Anbieterbenutzer 807 einige oder alle der Daten zu Datenbanken im netzwerkbasierten Data-Warehouse-System 102, wie beispielsweise zur Datenbank 116, hochladen. Der Anbieterbenutzer 807 spezifiziert eine oder mehrere Richtlinien bzw. Strategien als Richtlinien- bzw. Strategiedaten 817, die die hochgeladenen Daten pro Richtlinien- bzw. Strategierollen und -funktionen dynamisch maskieren, wie es durch Maskierungsregeln einer gegebenen Strategie spezifiziert ist. Die Strategiedaten 817 können sich auf lokal gespeicherte Daten (z.B. Daten in der Datenbank 116) und/oder Daten im Cloud-Speicher 815 (z.B. externe schreibgeschützte Tabellen) abbilden, um eine dynamische Maskierung gemäß den Strategiedaten 817 bereitzustellen, wenn die Daten von Verbrauchern, wie beispielsweise Verbraucher_1 811 und Verbraucher_2 812, über das netzwerkbasierte Data-Warehouse-System 102 angefordert werden.
  • Die Strategiedaten 817 können Rollen spezifizieren und spezifizieren, wie mit entsprechenden Daten, auf die durch die Strategie Bezug genommen wird, durch Benutzer mit unterschiedlichen Rollen interagiert werden kann. Zum Beispiel kann Verbraucher_1 (z.B. über Benutzerkontoinformationen von Verbraucher_1) als eine Dateningenieur-Rolle auf dem netzwerkbasierten Data-Warehouse-System 102 bestimmt sein und kann Verbraucher_2 (über Benutzerkontoinformationen von Verbraucher_2) als ein Arzt auf dem netzwerkbasierten Data-Warehouse-System 102 bestimmt sein. Bei diesem Beispiel greift dann, wenn die Verbraucher einen Zugriff auf die Tabellen 809 über das netzwerkbasierte Data-Warehouse-System 102 (z.B. Verbraucherkonto-Session) anfordern, die Teilungsmaskenmaschine 225 auf die Strategiedaten 817 zu und modifiziert Daten gemäß den Rollen und Funktionen in den Strategiedaten 817. Zum Beispiel können die Strategiedaten spezifizieren, dass Dateningenieur-Rollen eine gegebene Spalte (z.B. einen vollständigen Namen von Patienten) im Strategie-Objekt 827 nicht sehen sollten, während Benutzer mit der Arztrolle (z.B. Verbraucher_2) die gegebene Spalte im Strategie-Objekt 837 sehen können, wobei ein Sehen Sichtbarkeit, nicht transformiertes Format, sein kann, oder Manipulationen mit den Daten durchführen können (z.B. Verbindungsoperationen, um Daten aus mehreren Tabellen zu verbinden).
  • Auf diese Weise können die Benutzer des Datenanbieternetzwerks 805 Teilbereiche der Daten mit dem Datenverbrauchernetzwerk 810 in einem dynamisch maskierten Ansatz teilen, wobei die zugrundeliegenden geteilten Daten aus unterschiedlichen Quellen stammen können. Zum Beispiel soll angenommen werden, dass die Tabelle 600 in 6 in der Datenbank 116 gespeichert ist und vom netzwerkbasierten Data-Warehouse-System 102 gelesen und modifiziert werden kann, und weiterhin soll angenommen werden, dass die Tabelle 605 eine externe Tabelle auf dem Cloud-Speicher 815 ist, bei der es sich um eine schreibgeschützte Tabelle handelt, auf die nur durch das netzwerkbasierte Data-Warehouse-System 102 Bezug genommen werden kann. Angesichts dieser Einschränkungen kann der Anbieterbenutzer 807 eine Ansicht erstellen, die geteilt wird, wo die Ansicht Daten aus der ersten lokalen Tabelle (z.B. Symptomdaten für einen gegebenen Kunden) herauszieht und auch Daten aus der zweiten externen Tabelle (z.B. Postleitzahl-Daten eines gegebenen Kunden) herauszieht, während optional die Patientenspalte enthalten ist oder die Patientennamenspalte transformiert ist (z.B. nur die erste Initiale angezeigt ist), oder andere Daten anonymisiert (z.B. Postleitzahl-Informationen in regionale Informationen wie beispielsweise Stadt-, Landkreis- oder Bundeslanddaten ändert), während die Teilungsdaten, auf die zugegriffen wird, (z.B. 827 und 837) live gehalten und auf aktuell aktualisiert werden, da die Daten dynamisch maskiert werden (z.B. daraufhin, dass sie in Sessions der Verbraucherkonten abgefragt werden).
  • 9 zeigt eine beispielhafte Strategiedatenarchitektur 900 gemäß einigen beispielhaften Ausführungsformen. Die Ressource 905 ist ein Datenspeicher (z.B. Datenbank, Tabelle, Ansicht, Teilung), der auf eine Maskierungsstrategie 910 abgebildet ist, die eine oder mehrere Regeln umfasst. Bei einigen beispielhaften Ausführungsformen identifiziert die Teilungsmaskenmaschine 225 in Reaktion darauf, dass eine gegebene Ressource 905 angefordert wird (z.B. aufgefordert, eine Datenbank des Verbraucherkontos 515 zu füllen), die Maskierungsstrategie 910, um eine Teilungsmaskierung zu implementieren. Die Maskierungsstrategie 910 enthält eine oder mehrere Regeln 920, von denen jede eine oder mehrere Rollen 925 und eine oder mehrere Funktionen 930, um zu implementieren, ob die Rolle erfüllt ist, umfassen kann. Das bedeutet, dass die Regeln 920 die Logik sind (z.B. wenn/dann), die Rollen 925 Bedingungen sind und die Funktionen 930 die Operationen (z.B. benutzerdefinierte Funktionen (UDFs)) sind, die auf der Ressource 905 implementiert sind, wenn die Logik und die Bedingungen erfüllt sind.
  • Eine Funktion 930 kann als benutzerdefinierte Funktionen erstellt werden, die unter Verwendung einer Abfragesprache ausgeführt wird, wie beispielsweise einer SQL-UDF, die einen SQL-Ausdruck auswertet und Ergebnisse des Ausdrucks zurückgibt. Der Ausdruck, der eine UDF definiert, kann sich auf die Eingabeargumente der Funktion und auf Datenbankobjekte wie beispielsweise Tabellen, Ansichten und Sequenzen beziehen. Der UDF-Besitzer (z.B. ein Benutzer, der die UDF definiert) muss gemäß einigen beispielhaften Ausführungsformen geeignete Privilegien an allen Datenbankobjekten haben, auf die die UDF zugreift. Ein SQL-UDFs definierender Ausdruck kann sich auf andere benutzerdefinierte Funktionen beziehen, obwohl die UDF sich im Allgemeinen nicht rekursiv auf sich selbst bezieht, und zwar weder direkt noch über eine andere Funktion, die zu ihr zurückruft. Als einfaches Beispiel können die folgenden SQL-Anweisungen in den Ausführungsbereich 755 eingegeben werden, um eine Funktion zur Berechnung der Fläche eines Kreises zu erstellen:
    Figure DE202020005715U1_0001
  • Die Funktion kann unter Verwendung eines Abfrageausdruck (z.B. den SELECT-Ausdruck) wie folgt ausgelöst werden:
    Figure DE202020005715U1_0002
  • Das bringt eine Ausgabe (z.B. angezeigt im Ergebnisbereich 760 in 7E) von folgendem zurück:
    Figure DE202020005715U1_0003
  • Beispiele für Funktionen zum Maskieren enthalten: Verstecken bzw. Ausblenden einer Spalte, Maskieren der ersten drei Zeichen jedes Eintrags einer gegebenen Spalte (z.B. Ausblenden der Vorwahl), Maskieren der ersten fünf Zeichen für jede Zeile, Transformieren oder Verschleiern der Postleitzahl (z.B. Ersetzen von Postleitzahl-Informationen durch Stadt- oder Bundeslandinformationen, um zu verwischen, wo sich ein bestimmter Patient befindet), Verbinden von Daten aus zwei Tabellen (z.B. einer lokalen Tabelle und externen schreibgeschützten Daten) und Zurückgeben einer Ansicht und andere Typen zusätzlicher kundenspezifischer benutzerdefinierter Operationen. Es wird eingesehen, dass die diskutierten beispielhaften Funktionen nur Beispiele sind und irgendeine Datenbankfunktion als Funktion 930 enthalten sein kann. Bei einigen beispielhaften Ausführungsformen bildet die Maskierungsstrategie 910 für die gegebene Ressource 905 auf eine Vorgabe- bzw. Standardfunktion 915 ab, die implementiert wird, wenn keine Regeldaten (z.B. Regel 920, Rollen 925, Funktion 930) erstellt worden ist. Zum Beispiel kann die Standardfunktion 915 folgendes enthalten: Vollständige Maske von Sozialversicherungsdaten oder standardmäßig einen Zugriff auf nur drei Rollen zu einer gegebenen Ressource 905 gewähren (z.B. empfangen CEO, CFO und GC eines Unternehmens einen vollständigen Zugriff auf eine gegebene Ressource 905).
  • Ein beispielhafter Strategiecode ist hier als ein Beispiel enthalten. Der beispielhafte Code kann durch das Datenanbieterkonto 505 implementiert werden, um Strategiedaten zu erstellen, zu ändern oder zu beenden, indem der beispielhafte Code in den Ausführungsbereich 755 (z.B. ein Browserfenster einer aktiven Session bzw. Sitzung) eingegeben wird. Bei einigen beispielhaften Ausführungsformen ist der Richtlinien- bzw. Strategiecode SQL, der in einer oder mehreren Richtlinien- bzw. Strategietabellen in den Strategiedaten 817 gespeichert ist, auf die dann durch die Teilungsmaskenmaschine 225 Bezug genommen werden kann, um Daten dynamisch zu maskieren.
  • Das Folgende stellt eine beispielhafte Syntax, die zum Erstellen einer Maskierungsstrategie bzw. -richtlinie verwendet wird, gemäß einigen beispielhaften Ausführungsformen dar. Bei den nachstehenden Beispielen stellt jede CASE-Anweisung den gesamten Strategiekörper dar, wobei jede IF... THEN... -Klausel eine Regel spezifiziert. Eine Richtlinie bzw. Strategie kann mit mehreren Regeln und einer Standard- bzw. Vorgabefunktion erstellt werden, wobei basierend auf dem ausführenden Kontext, z.B. Rolle, Teilung, eine Regel angewendet werden kann. Ein Richtlinien- bzw. Strategiekörper ist ein SQL-Ausdruck, der unter Verwendung einer CASE... END-Anweisung spezifiziert sein kann, wo jede IF... THEN -Klausel als Regel fungiert. Gemäß einigen beispielhaften Ausführungsformen wird die Richtlinie bzw. Strategie als SQL-Ausdruck ausgewertet, weshalb Regeln in einer Reihenfolge ausgewertet werden, wenn sie als IF... THEN-Klauseln im Körper spezifiziert sind. Funktionen können gemäß einigen beispielhaften Ausführungsformen auf die Rollenabstimmung und alle zusätzlichen Bedingungen, die im IF... THEN enthalten sind, hin ausgeführt werden.
    Figure DE202020005715U1_0004
  • Die folgende Syntax besteht gemäß einigen beispielhaften Ausführungsformen darin, eine Strategie fallenzulassen.
    Figure DE202020005715U1_0005
  • Die folgende Syntax wird eine Maskierungsstrategie ändern, um die vorhandenen bzw. existierenden Regeln durch neue zu ersetzen. Zusätzlich kann gemäß einigen beispielhaften Ausführungsformen ein Ändern verwendet werden, um einen neuen Kommentar für die Maskierungsstrategie einzustellen bzw. festzulegen.
    Figure DE202020005715U1_0006
    Figure DE202020005715U1_0007
  • Es wird weiterhin eingesehen, dass, obwohl SQL bei den obigen Beispielen implementiert ist, die Maskierungsstrategie auf andere Weisen gespeichert und implementiert werden kann, wie beispielsweise durch ein Speichern der Strategie als JSON-Daten und ein Durchführen einer Maskierung unter Verwendung einer Skriptsprache (z.B. JavaScript).
  • Zusätzlich können Maskierungsstrategien gemäß einigen beispielhaften Ausführungsformen für Objekte kombiniert werden, wenn Ressourcenobjekte kombiniert werden. Zum Beispiel kann eine erste Maskierungsstrategie auf eine Datenbanktabelle abgebildet werden, wo eine oder mehrere Spalten der Datenbanktabelle in einer Datenbankansicht enthalten sind, wobei die Ansicht ihre eigene Maskierungsstrategie auf sich abgebildet hat. Bei diesen beispielhaften Ausführungsformen kann die erste Maskierungsstrategie dynamisch auf die Datenbanktabelle angewendet werden, gefolgt durch Anwenden der Ansichtsmaskierungsstrategie, um resultierende maskierte Daten zu erzeugen. Auf diese Weise können die Datenbankobjekte jeweils fein abgestimmte Strategiemasken haben, die in unterschiedlichen Konfigurationen kombiniert werden können, um eine streng kontrollierte Datenteilungsarchitektur zu erstellen.
  • 10 zeigt ein Flussdiagramm eines Verfahrens 1000 zum Konfigurieren einer Teilungsmaskenstrategie mit dem Ressourcenelement gemäß einigen beispielhaften Ausführungsformen. Das Verfahren 1000 kann in computerlesbaren Anweisungen zur Ausführung durch eine oder mehrere Hardwarekomponenten (z.B. einen oder mehrere Prozessoren) so verkörpert sein, dass die Operationen des Verfahrens 100 durch Komponenten des netzwerkbasierten Data-Warehouse-Systems 102 durchgeführt werden können. Demgemäß wird das Verfahren 1000 nachstehend anhand eines Beispiels unter Bezugnahme darauf beschrieben. Es soll jedoch eingesehen werden, dass das Verfahren 1000 auf verschiedenen anderen Hardwarekonfigurationen eingesetzt werden kann und nicht auf einen Einsatz innerhalb des netzwerkbasierten Data-Warehouse-Systems 102 beschränkt sein soll.
  • Bei einer Operation 1005 identifiziert die Teilungsmaskenmaschine 225 eine Speicherressource, aus der Daten dynamisch maskiert werden können. Zum Beispiel wird bei der Operation 1005 eine Tabelle, die Patientendaten enthält, als Speicherressource ausgewählt (z.B. von einem Benutzer, der in ein Datenanbieterkonto angemeldet ist), um eine Ansicht oder Teilung zu erstellen, die dynamisch maskiert ist.
  • Bei einer Operation 1010 speichert das Teilungsmaskenmaschine 225 eine oder mehrere Funktionen, um in Strategiedaten enthalten zu sein. Zum Beispiel wird bei der Operation 1010 eine benutzerdefinierte Funktion erstellt (z.B. von dem Datenanbieter oder einem Dateningenieur/-entwickler), um Operationen an Daten durchzuführen, wie beispielsweise ein vollständiges Maskieren einer gegebenen Spalte oder ein Transformieren von Daten in einer gegebenen Spalte (z.B. Transformieren von Postleitzahldaten in Stadt-, Landkreis- oder Regionsdaten). Bei einigen beispielhaften Ausführungsformen ist die Operation 1010 optional: zum Beispiel dort, wo die Funktionen, die in einer Strategie bzw. Richtlinie enthalten sein können, bereits erstellt worden sind und/oder die verfügbaren Funktionen in einer Bibliothek von Funktionen gespeichert sind.
  • Bei einer Operation 1015 erzeugt die Teilungsmaskenmaschine 225 eine Teilungsmaskenstrategie bzw. -richtlinie. Zum Beispiel speichert die Teilungsmaskenmaschine 225 bei der Operation 1015 eine Strategie, die auf die Speicherressource der Operation 1005 abgebildet ist, und speichert weiterhin Abbildungsdaten, einschließlich Rollendaten und zu implementierender Funktionen, wenn die Rollendaten mit der Rolle des Benutzers der aktuellen Session übereinstimmen (z.B. einer Session eines anmeldenden Benutzers, der Zugriff anfordert).
  • Bei einer Operation 1020 empfängt die Teilungsmaskenmaschine 225 Daten, um von einem Benutzer des Anbieterkontos dynamisch maskiert zu werden. Das erzeugte Datenbankobjekt kann dasselbe wie das Speicherressourcenobjekt sein oder kann vom gespeicherten Ressourcenobjekt abgeleitet sein. Zum Beispiel kann das Speicherressourcenobjekt der Operation 1005 eine Tabelle sein, wie es erwähnt ist, und kann das bei der Operation 1020 erzeugte Datenbankobjekt eine Ansicht sein, die eine oder mehrere Spalten aus der Tabelle enthält. Da das bei der Operation 1020 erzeugte Datenbankobjekt (z.B. die Ansicht) Spalten aus dem dynamisch maskierten Speicherressourcenobjekt (z.B. Postleitzahlen-Spalte in der bei der Operation 1005 identifizierten Tabelle) enthält, werden jedes Mal, wenn die Daten des Datenbankobjekts (die Ansicht) angefordert werden, die entsprechenden Speicherressourcendaten integriert und wird die gespeicherte Teilungsmaskenstrategie für die Ansicht initiiert.
  • Bei einer Operation 1025 empfängt die Teilungsmaskenmaschine 225 vom Anbieterkonto 505 eine Anweisung zur Übertragung des Datenbankobjekts. Zum Beispiel sendet ein Benutzer des Anbieterkontos 505 bei der Operation 1025 einen Link zur Ansicht per Email zu einem oder mehreren anderen Benutzern des netzwerkbasierten Data-Warehouse-Systems 102, wie beispielsweise einem anderen Benutzer des Verbraucherkontos 515.
  • 11 zeigt ein Flussdiagramm eines Verfahrens 1100 zum Interagieren mit den dynamisch maskierten Daten gemäß einigen beispielhaften Ausführungsformen. Das Verfahren 1100 kann in computerlesbaren Anweisungen zur Ausführung durch eine oder mehrere Hardwarekomponenten (z.B. einen oder mehrere Prozessoren) so verkörpert sein, dass die Operationen des Verfahrens 1100 durch Komponenten des netzwerkbasierten Data-Warehouse-Systems 102 durchgeführt werden können. Demgemäß wird das Verfahren 1100 nachstehend anhand eines Beispiels unter Bezugnahme darauf beschrieben. Es soll jedoch eingesehen werden, dass das Verfahren 1100 auf verschiedenen anderen Hardwarekonfigurationen eingesetzt werden kann und nicht auf einen Einsatz innerhalb des netzwerkbasierten Data-Warehouse-Systems 102 beschränkt sein soll.
  • Bei einer Operation 1105 initiiert die Teilungsmaskenmaschine 225 eine Session für ein Verbraucherkonto des netzwerkbasierten Data-Warehouse-Systems 102. Zum Beispiel lädt das Verbraucherkonto 515 bei der Operation 1105 eine Anmeldemaske (7C) durch Eingeben eines Links für die Ansicht (empfangen vom Anbieterkonto 505) in die Adressleiste eines Browsers, meldet sich an und ihm wird eine Benutzeroberfläche für ein Verbraucherkonto wie die Benutzeroberfläche 735 ( 7D) präsentiert, wobei der Link für das bei 1025 übertragene Datenbankobjekt dient (z.B. sendet der Datenanbieterbenutzer den Link zum Objekt per Email zum Datenverbraucherbenutzer, wobei der Link ein Zugriff auf das Datenbankobjekt ist, das gemäß dem Verfahren 1000 dynamisch zu maskieren ist).
  • Bei einer Operation 1110 erzeugt die Teilungsmaskenmaschine 225 Computerressourcen (z.B. virtuelle Lager) zur Verwendung durch das Verbraucherkonto (z.B. das Verbraucherkonto 515), wobei die Computerressourcen zum Instanziieren einer oder mehrerer Datenbanken zum Speichern von Teilungsdaten (z.B. maskierten Datenbankobjekten) verwendet werden können. Zum Beispiel erstellt, wie es oben unter Bezugnahme auf 7D diskutiert ist, das Verbraucherkonto 515 ein oder mehrere virtuelle Lager und erstellt eine Datenbankinstanz.
  • Bei einer Operation 1115 lädt die Teilungsmaskenmaschine die geteilten und maskierten Daten für das Verbraucherkonto 515. Zum Beispiel werden bei der Operation 1115 die geteilten Daten automatisch in die Datenbankinstanz geladen. Bei einer Operation 1120 interagiert das Verbraucherkonto 515 mit den geteilten Daten durch Eingeben von einer oder mehreren SQL-Anweisungen oder -Ausdrücke (z.B. SELECT bzw. AUSWÄHLEN) in einen Ausführungsbereich 755, um das gemeinsam genutzte bzw. geteilte Maskenobjekt abzufragen und Ergebnisse im Ergebnisbereich 760 zurückzugeben (7E).
  • 12 zeigt ein Flussdiagramm eines Verfahrens 1200 zum dynamischen Maskieren eines gemeinsam genutzten bzw. geteilten Datenbankobjekts gemäß einigen beispielhaften Ausführungsformen. Das Verfahren 1200 kann als Unterroutine bzw. Unterprogramm implementiert sein, die bzw. das durch ein Konto initiiert wird, das einen Zugriff auf die geteilten Daten anfordert (z.B. dort, wo die geteilten Daten sich auf eine Strategie abbilden oder sich Daten, aus denen die geteilten Daten erstellt werden, auf eine Strategie abbilden). Zum Beispiel kann die Teilungsmaskenmaschine 225 in Reaktion auf die Daten, die bei der Operation 1115 (z.B. von einem Verbraucherkonto angefordert) geladen werden, das Verfahren 1100 initiieren.
  • Bei einer Operation 1205 identifiziert die Teilungsmaskenmaschine 225 eine Ressourcen-ID (z.B. eine Quelldatenbanktabelle) der angeforderten Daten (z.B. eine Ansicht, die eine Spalte aus der Quelldatenbanktabelle enthält) und die Rollen-ID des Benutzers des Verbraucherkontos 515, der bei einer aktiven Sitzung angemeldet ist. Bei einer Operation 1210 ruft die Teilungsmaskenmaschine 225 Strategiedaten ab, die der Ressourcen-ID zugeordnet sind bzw. auf diese abgebildet sind. Bei einer Operation 1215 identifiziert die Teilungsmaskenmaschine 225 eine oder mehrere Regeln in der Strategie, für die die Bedingungen erfüllt sind. Zum Beispiel bestimmt die Teilungsmaskenmaschine 225 bei der Operation 1215, dass die Regel mit einer spezifizierten Rolle (z.B. Benutzerrolle für aktive Session) oder mit anderen spezifizierten Regeln in der Strategie (z.B. einer Teilen()-Regel) übereinstimmt. Wenn die Teilungsmaskenmaschine 225 bei der Operation 1215 bestimmt, dass es keine Regeln gibt, die mit den Bedingungen übereinstimmen (z.B. die Rollen-ID des Verbraucherkontos 515 eine „Arztrolle“ ist und es keine Regeln in der Strategie gibt, die Arztrollen spezifizieren), fährt das Verfahren 1200 mit der Operation 1220 fort, bei der eine Vorgabe- bzw. Standardfunktion der Strategie ausgeführt wird und Daten als Unterprogrammergebnis zurückgegeben werden.
  • Kehr man zurück zur Operation 1215, geht das Verfahren 1200 unter der Annahme, dass es eine oder mehrere Regeln für die identifizierte Rollen-ID des Verbraucherkontos der aktiven Session gibt, weiter zu einer Operation 1225, bei der die benutzerdefinierte Funktion der Regel ausgeführt wird und dynamisch maskierte Daten zur Anzeige zurückgegeben werden (z.B. auf der Benutzervorrichtung des Verbraucherkontobenutzers). Weiterhin geht, wie es dargestellt ist, die Teilungsmaskenmaschine 225 in einer Schleife zurück zu 1215, wenn es zusätzliche Regeln gibt, die für die Rollen-ID des Verbraucherkontos 515 definiert sind (z.B. kann eine erste Funktion Daten in einer gegebenen Spalte transformieren und kann eine zweite Funktion die transformierten Daten als Eingabedaten für weitere Transformationen oder Maskierungsoperationen verwenden; z.B. hat eine gegebene Rolle zwei Funktionen, die aktiviert werden, wobei jede Funktion unabhängig von oder gleichzeitig mit der anderen arbeitet). Unter der Annahme, dass es zusätzliche Regeln gibt, wertet das Verfahren 1200 die Regeln aus und gibt die Regelergebnisse bei einer Operation 1225 für weitere Regeln zurück, die mit der Rollen-ID übereinstimmen. Nachdem das Verfahren 1200 beendet ist, werden die dynamisch maskierten Daten durch die Teilungsmaskenmaschine 225 zur Analyse und weiteren Interaktion (z.B. Abfragen) durch das Verbraucherkonto 515 zum Verbraucherkontosystem (z.B. einer entfernten Computervorrichtung 106, die durch das Verbraucherkonto 515 betrieben wird) zurückgegeben, wie es in 11 diskutiert ist (z.B. bei der Operation 1120).
  • 13 stellt eine schematische Darstellung einer Maschine 1300 in der Form eines Computersystems dar, innerhalb von welchem eine Gruppe von Anweisungen ausgeführt werden kann, zum Veranlassen, dass die Maschine 1300 irgendeine oder mehrere der hierin diskutieren Methoden durchführt, gemäß einer beispielhaften Ausführungsform. Spezifisch zeigt 13 eine schematische Darstellung der Maschine 1300 in der beispielhaften Form eines Computersystems, innerhalb von welchem Anweisungen 1316 (z.B. Software, ein Programm, eine Anwendung, ein Applet, eine App oder ein anderer ausführbarer Code) zum Veranlassen, dass die Maschine 1300 irgendeine oder mehrere der hierin diskutierten Methoden durchführt, ausgeführt werden können. Die Anweisungen 1316 können zum Beispiel veranlassen, dass die Maschine 1300 irgendeine oder mehrere Operationen von irgendeinem oder mehreren der Verfahren 1000, 1100 und 1200 ausführt. Als ein weiteres Beispiel können die Anweisungen 1316 veranlassen, dass die Maschine 1300 Teilbereiche der in irgendeiner oder mehreren der 1-9 dargestellten Datenflüsse implementiert. Auf diese Weise transformieren die Anweisungen 1316 eine allgemeine, nicht programmierte Maschine in eine bestimmte Maschine 1300 (z.B. die entfernte Computing- bzw. Computervorrichtung 106, das Zugriffsmanagementsystem 110, den Computing-Service-Manager 112, die Ausführungsplattform 113, das Zugriffsmanagementsystem 118, den API-Gateway 120), wobei die entfernte Computing- bzw. Computervorrichtung 106 speziell konfiguriert ist, um irgendeine der beschriebenen und dargestellten Funktionen auf die hierin beschriebene Weise auszuführen.
  • Bei alternativen Ausführungsformen arbeitet die Maschine 1300 als alleinstehende Vorrichtung oder sie kann mit anderen Maschinen gekoppelt (z.B. vernetzt) sein. Bei einer vernetzten Verwendung kann die Maschine 1300 in der Funktion einer Server-Maschine oder einer Client-Maschine in einer Server-Client-Netzwerkumgebung oder als Peer-Maschine in einer Peer-zu-Peer-(oder verteilten)Netzwerkumgebung arbeiten. Die Maschine 1300 kann, ist aber nicht beschränkt darauf, einen Servercomputer, einen Client-Computer, einen Personalcomputer (PC), einen Tablet-Computer, einen Laptop-Computer, ein Netbook, ein Smartphone, ein mobiles Gerät, einen Netzwerkrouter, einen Netzwerkschalter, eine Netzwerkbrücke oder irgendeine Maschine, die die Anweisungen 1316 sequentiell oder auf andere Weise ausführen kann, die von der Maschine 1300 vorzunehmende Aktionen spezifizieren, umfassen. Weiterhin soll, während nur eine einzige Maschine 1300 dargestellt ist, der Ausdruck „Maschine“ auch derart genommen werden, dass er eine Sammlung von Maschinen 1300 enthält, die einzeln oder gemeinsam die Anweisungen 1316 ausführen, um irgendeine oder mehrere der hierin diskutierten Methoden durchzuführen.
  • Die Maschine 1300 enthält Prozessoren 1310, einen Speicher 1330 und Eingabe-/Ausgabe-(I/O-)Komponenten 1350, die konfiguriert sind, um miteinander zu kommunizieren, wie beispielsweise über einen Bus 1302. Bei einer beispielhaften Ausführungsform können die Prozessoren 1310 (z.B. eine zentrale Verarbeitungseinheit (CPU), ein Prozessor mit reduziertem Befehlssatz (RISC), ein Prozessor mit komplexem Befehlssatz (CISC), eine Grafikverarbeitungseinheit (GPU), ein digitaler Signalprozessor (DSP), eine anwendungsspezifische integrierte Schaltung (ASIC), eine integrierte Funkfrequenz-Schaltung (RFIC), ein anderer Prozessor oder irgendeine geeignete Kombination davon) zum Beispiel einen Prozessor 1312 und einen Prozessor 1314 umfassen, die die Anweisungen 1316 ausführen können. Es ist beabsichtigt, dass der Ausdruck „Prozessor“ Mehrkernprozessoren 1310 enthält, die zwei oder mehr unabhängige Prozessoren (auf die manchmal auch als „Kerne“ Bezug genommen wird) umfassen können, die Anweisungen 1316 gleichzeitig ausführen können. Obwohl 13 mehrere Prozessoren 1310 zeigt, kann die Maschine 1300 einen einzelnen Prozessor mit einem einzigen Kern, einen einzelnen Prozessor mit mehreren Kernen (z.B. einen Mehrkernprozessor), mehrere Prozessoren mit einem einzigen Kern, mehrere Prozessoren mit mehreren Kernen oder eine beliebige Kombination davon enthalten.
  • Der Speicher 1330 kann einen Hauptspeicher 1332, einen statischen Speicher 1334 und eine Speichereinheit 1336 enthalten, die alle für die Prozessoren 1310 zugreifbar bzw. zugänglich sind, wie beispielsweise über den Bus 1302. Der Hauptspeicher 1332, der statische Speicher 1334 und die Speichereinheit 1336 speichern die Anweisungen 1316, die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpern. Die Anweisungen 1316 können sich während ihrer Ausführung durch die Maschine 1300 auch ganz oder teilweise innerhalb des Hauptspeichers 1332, innerhalb des statischen Speichers 1334, innerhalb der Speichereinheit 1336, innerhalb von wenigstens einem der Prozessoren 1310 (z.B. innerhalb des Cachespeichers des Prozessors) oder irgendeiner geeigneten Kombination davon befinden.
  • Die I/O-Komponenten 1350 enthalten Komponenten, um eine Eingabe zu empfangen, eine Ausgabe zur Verfügung zu stellen, eine Ausgabe zu erzeugen, Information zu übertragen, Information auszutauschen, Messungen zu erfassen, und so weiter. Die spezifischen I/O-Komponenten 1350, die in einer bestimmten Maschine 1300 enthalten sind, werden vom Typ einer Maschine abhängen. Zum Beispiel werden portierbare bzw. tragbare Maschinen, wie beispielsweise Mobiltelefone, wahrscheinlich eine Berührungseingabevorrichtung oder andere solche Eingabemechanismen enthalten, während eine monitorlose Servermaschine wahrscheinlich keine solche Berührungseingabevorrichtung enthalten wird. Es wird eingesehen werden, dass die I/O-Komponenten 1350 viele andere Komponenten enthalten können, die nicht in 13 gezeigt sind. Die I/O-Komponenten 1350 sind lediglich zum Vereinfachen der folgenden Diskussion nach Funktionalität gruppiert und die Gruppierung ist in keiner Weise beschränkend. Bei verschiedenen beispielhaften Ausführungsformen können die I/O-Komponenten 1350 Ausgabekomponenten 1352 und Eingabekomponenten 1354 enthalten. Die Ausgabekomponenten 1352 können visuelle Komponenten (z.B. eine Anzeige wie einen Plasmabildschirm (PDP), eine Leuchtdioden-(LED-)Anzeige, eine Flüssigkristallanzeige (LCD), einen Projektor oder eine Kathodenstrahlröhre (CRT)), akustische Komponenten (z.B. Lautsprecher), andere Signalgeneratoren und so weiter enthalten. Die Eingabekomponenten 1354 können alphanumerische Eingabekomponenten (z.B. eine Tastatur, einen Berührungsbildschirm, der konfiguriert ist, um eine alphanumerische Eingabe zu empfangen, eine fotooptische Tastatur oder andere alphanumerische Eingabekomponenten), punktbasierte Eingabekomponenten (z.B. eine Maus, eine Rollkugel, ein Joystick, ein Bewegungssensor oder ein anderes Zeigeinstrument), taktile Eingabekomponenten (z.B. eine physikalische Taste, einen Berührungsbildschirm, der eine Stelle und eine Kraft von Berührungen oder Berührungsgesten zur Verfügung stellt, oder andere taktile Eingabekomponenten), Audio-Eingabekomponenten (z.B. ein Mikrofon) und ähnliches enthalten.
  • Kommunikation kann unter Verwendung einer weiten Vielzahl von Technologien implementiert werden. Die I/O-Komponenten 1350 können Kommunikationskomponenten 1364 enthalten, die betreibbar sind, um die Maschine 1300 mit einem Netzwerk 1380 oder Vorrichtungen bzw. Geräten 1370 über eine Kopplung 1382 bzw. eine Kopplung 1372 zu koppeln. Zum Beispiel können die Kommunikationskomponenten 1364 eine Netzwerkschnittstellenkomponente oder eine andere geeignete Vorrichtung enthalten, um eine Schnittstelle mit dem Netzwerk 1380 zu bilden. Bei weiteren Beispielen können die Kommunikationskomponenten 1364 kabelgebundene bzw. verdrahtete Kommunikationskomponenten, drahtlose Kommunikationskomponenten, zellulare Kommunikationskomponenten und andere Kommunikationskomponenten enthalten, um Kommunikation über andere Modalitäten zur Verfügung zu stellen. Die Vorrichtungen bzw. Geräte 1370 können eine andere Maschine oder irgendeine einer Vielzahl von peripheren Vorrichtungen bzw. Peripheriegeräten (z.B. ein Peripheriegerät, das über einen universellen seriellen Bus (USB) gekoppelt ist) sein. Zum Beispiel kann, wie es oben angemerkt ist, die Maschine 1300 irgendetwas von der entfernten Computingvorrichtung 106, dem Zugriffsmanagementsystem 110, dem Computing-Service-Manager 112, der Ausführungsplattform 113, dem Zugriffsmanagementsystem 118, dem API-Gateway 120 und den Computing- bzw. Computervorrichtungen 203, 207, 307 und 401 entsprechen und die Vorrichtungen 1370 können irgendwelche anderen dieser Systeme und Vorrichtungen bzw. Geräte enthalten.
  • Die verschiedenen Speicher (z.B. 1330, 1332, 1334 und/oder ein Speicher des Prozessors (der Prozessoren) 1310 und/oder die Speichereinheit 1336) können einen oder mehrere Sätze von Anweisungen 1316 und Datenstrukturen (z.B. Software) speichern, die irgendeine oder mehrere der hierin beschriebenen Methoden oder Funktionen verkörpert oder durch diese genutzt werden. Diese Anweisungen 1316 veranlassen dann, wenn sie von dem (den) Prozessor(en) 1310 ausgeführt werden, verschiedene Operationen, um die offenbarten Ausführungsformen zu implementieren.
  • Wie sie hierin verwendet sind, bedeuten die Ausdrücke „Maschinenspeichermedium“, „Vorrichtungsspeichermedium“ und „Computerspeichermedium“ dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke beziehen sich auf eine einzelne oder mehrere Speichervorrichtungen und/oder Medien (z.B. eine zentrale oder verteilte Datenbank und/oder assoziierte Caches und Server), die ausführbare Anweisungen und/oder Daten speichern. Die Ausdrücke sollen demgemäß genommen werden, um Festkörperspeicher und optische und magnetische Medien, einschließlich eines Speichers intern oder extern von Prozessoren, zu enthalten, aber nicht um darauf beschränkt zu sein. Spezifische Beispiele für Maschinenspeichermedien, Computerspeichermedien und/oder Vorrichtungsspeichermedien enthalten einen nichtflüchtigen Speicher, einschließlich, anhand eines Beispiels, Halbleiterspeichervorrichtungen, wie z.B. eines löschbaren programmierbaren Nurlesespeichers (EPROM), eines elektrisch löschbaren programmierbaren Nurlesespeichers (EEPROM), von feldprogrammierbaren Gate-Arrays (FPGAs) und Flashspeichervorrichtungen; Magnetplatten wie beispielsweise interne Festplatten und entfernbare Scheiben bzw. Wechseldatenträger; magneto-optische Scheiben; und CD-ROM- und DVD-ROM-Scheiben. Die Ausdrücke „Maschinenspeichermedien“, „Computerspeichermedien“ und „Vorrichtungsspeichermedien“ schließen spezifisch Trägerwellen, modulierte Datensignale und andere solche Medien aus, von welchen wenigstens einige unter dem nachstehend diskutierten Ausdruck „Signalmedium“ abgedeckt sind.
  • Bei verschiedenen beispielhaften Ausführungsformen kann ein oder können mehrere Teilbereiche des Netzwerks 980 ein Ad-hoc-Netzwerk, ein Intranet, ein Extranet, ein virtuelles privates Netzwerk (VPN), ein lokales Netz (LAN), ein drahtloses LAN (WLAN), ein Weitverkehrsnetz (WAN), ein drahtloses WAN (WWAN), ein Stadtgebietsnetz (MAN), das Internet, ein Teilbereich des Internets, ein Teilbereich des öffentlichen geschalteten Telefonnetzes (PSTN), ein altes analoges Telefondienst-(POTS-)Netz, ein zellulares Telefonnetz, ein drahtloses Netz, ein Wi-Fi®-Netz, ein anderer Typ von Netzwerk oder eine Kombination von zwei oder mehreren solchen Netzwerken sein. Zum Beispiel kann das Netzwerk 880 oder ein Teilbereich des Netzwerks 880 ein drahtloses oder zellulares Netzwerk enthalten und die Kopplung 882 kann eine Verbindung mit einem Codemultiplexverfahren (CDMA), eine Verbindung mit globalem System für mobile Kommunikationen (GSM) oder andere Typen einer zellularen oder drahtlosen Kopplung sein. Bei diesem Beispiel kann die Kopplung 882 irgendeinen einer Vielfalt von Typen einer Datenübertragungstechnologie implementieren, wie beispielsweise eine Einzelträgerfunk-Übertragungstechnologie (1xRTT), eine Technologie mit optimierten Entwicklungsdaten (EVDO (Evolution Data Optimized)), eine Technologie eines allgemeinen Paketfunkdienstes (GPRS (General Packet Radio Service)), eine Technologie mit erhöhten Datenraten für GSM-Entwicklung (EDGE (Enhanced Data Rates for GSM Evolution)), Partnerschaftsprojekt der dritten Generation (3GPP) einschließlich 3G, drahtlose Netzwerke der vierten Generation (4G), universelle mobile Telekommunikationssysteme (UMTS), Hochgeschwindigkeits-Paketzugang (HSPA), weltweite Interoperabilität für Mikrowellenzugang (WiMAX), Langzeiten-twicklungs-(LTE-)Standard, andere, die durch verschiedene Standardeinstellungsorganisationen definiert sind, andere Weitbereichs- bzw. Langstreckenprotokolle oder andere Datenübertragungstechnologie.
  • Die Anweisungen 1316 können über das Netzwerk 1380 unter Verwendung eines Übertragungsmedium über eine Netzwerkschnittstellenvorrichtung (z.B. eine in den Kommunikationskomponenten 1364 enthaltene Netzwerkschnittstellenkomponente) übertragen bzw. gesendet oder empfangen werden und unter Nutzung von irgendeinem einer Anzahl von wohlbekannten Übertragungsprotokollen (z.B. Hypertext-Übertragungsprotokoll (HTTP)). Gleichermaßen können die Anweisungen 1316 unter Verwendung eines Übertragungsmediums über die Kopplung 1372 (z.B. Peer-zu-Peer-Kopplung) mit den Vorrichtungen bzw. Geräten 1370 übertragen bzw. gesendet oder empfangen werden. Die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ sollen genommen werden, um irgendein immaterielles Medium zu enthalten, das die Anweisungen 1316 zur Ausführung durch die Maschine 1300 speichern, codieren oder tragen kann, und um digitale oder analoge Kommunikationssignale oder andere immaterielle Medien zu enthalten, um eine Kommunikation von solcher Software zu erleichtern bzw. zu ermöglichen. Somit sollen die Ausdrücke „Übertragungsmedium“ und „Signalmedium“ genommen werden, um irgendeine Form eines modulierten Datensignals, einer Trägerwelle und so weiter zu enthalten. Der Ausdruck „moduliertes Datensignal“ bedeutet ein Signal, das eine oder mehrere seiner Charakteristiken auf solche Weise eingestellt oder verändert hat, um Information im Signal zu codieren.
  • Die Ausdrücke „maschinenlesbares Medium“, „computerlesbares Medium“ und „vorrichtungslesbares Medium“ bedeuten dasselbe und können in dieser Offenbarung austauschbar verwendet sein. Die Ausdrücke sind definiert, um sowohl Maschinenspeichermedien als auch Übertragungsmedien zu enthalten. Somit enthalten die Ausdrücke sowohl Speichervorrichtungen/-medien als auch Trägerwellen/modulierte Datensignale.
  • Die verschiedenen Operationen der hierin beschriebenen beispielhaften Verfahren können wenigstens teilweise durch einen oder mehrere Prozessoren durchgeführt werden, die temporär (z.B. durch Software) oder dauerhaft konfiguriert sind, um die relevanten Operationen durchzuführen. Gleichermaßen können die hierin beschriebenen Verfahren wenigstens teilweise prozessorimplementiert sein. Zum Beispiel können wenigstens einige Operationen der Verfahren 1000, 1100 und 1200 durch einen oder mehrere Prozessoren durchgeführt werden. Die Leistungsfähigkeit von bestimmten der Operationen kann auf den einen oder die mehreren Prozessoren verteilt werden, die sich nicht nur innerhalb einer einzelnen Maschine befinden, sondern auch quer über eine Anzahl von Maschinen genutzt werden. Bei einigen beispielhaften Ausführungsformen kann der Prozessor oder können die Prozessoren an einer einzigen Stelle angeordnet sein (z.B. in einer häuslichen Umgebung, einer Büroumgebung oder einer Serverfarm), während die Prozessoren bei anderen Ausführungsformen quer über eine Anzahl von Stellen bzw. Standorten verteilt sein können.
  • Obwohl die Ausführungsformen der vorliegenden Offenbarung unter Bezugnahme auf spezifische beispielhafte Ausführungsformen beschrieben worden sind, wird es offensichtlich werden, dass verschiedene Modifikationen und Änderungen an diesen Ausführungsformen vorgenommen werden können, ohne von dem breiteren Schutzumfang des erfinderischen Gegenstands abzuweichen. Demgemäß sind die Spezifikation und die Zeichnungen eher in einem illustrativen als in einem beschränkenden Sinn anzusehen. Die beigefügten Zeichnungen, die einen Teil hiervon bilden, zeigen, zur Veranschaulichung und nicht zur Beschränkung, spezifische Ausführungsformen, bei welchen der Gegenstand ausgeführt werden kann. Die dargestellten Ausführungsformen sind in ausreichendem Detail beschrieben, um Fachleuten auf dem Gebiet zu ermöglichen, die hierin offenbarten Lehren auszuführen. Andere Ausführungsformen können verwendet und daraus abgeleitet werden, so dass strukturelle und logische Substitutionen und Änderungen vorgenommen werden können, ohne vom Schutzbereich dieser Offenbarung abzuweichen. Diese detaillierte Beschreibung ist daher nicht in einem beschränkenden Sinn zu nehmen, und der Schutzumfang von verschiedenen Ausführungsformen wird nur durch die beigefügten Ansprüche definiert, zusammen mit dem gesamten Bereich von Äquivalenten, auf welche solche Ansprüche eine Anspruchsberechtigung haben.
  • Auf solche Ausführungsformen des erfinderischen Gegenstands kann hierin einzeln und/oder kollektiv lediglich der Annehmlichkeit halber und ohne die Absicht, den Schutzumfang dieser Anmeldung auf eine einzelne Erfindung oder ein erfinderisches Konzept gewollt zu beschränken, durch den Ausdruck „Erfindung“ Bezug genommen werden, wenn tatsächlich mehr als eine offenbart ist. Somit sollte, obwohl hierin spezifische Ausführungsformen dargestellt und beschrieben worden sind, eingesehen werden, dass irgendeine Anordnung, für die kalkuliert ist, dass sie den gleichen Zweck erreicht, für die gezeigten spezifischen Ausführungsformen substituiert werden kann. Diese Offenbarung soll irgendwelche und alle Anpassungen oder Variationen von verschiedenen Ausführungsformen abdecken. Kombinationen der obigen Ausführungsformen und andere Ausführungsformen, die hierin nicht spezifisch beschrieben sind, werden Fachleuten auf dem Gebiet beim Durchsehen bzw. Überprüfen der obigen Beschreibung offensichtlich werden.
  • In diesem Dokument werden die Ausdrücke „ein“ oder „eine“ verwendet, wie es in Patentdokumenten üblich ist, um einen (eine) oder mehr als einen (eine) zu enthalten, unabhängig von irgendwelchen anderen Fällen oder Verwendungen von „wenigstens einer“ oder „einer oder mehrere“. In diesem Dokument wird der Ausdruck „oder“ verwendet, um sich auf ein nicht ausschließliches oder zu beziehen, so dass „A oder B“ „A, aber nicht B“, „B, aber nicht A“ und „A und B“ enthält, solange nichts anderes angegeben ist. In den beigefügten Ansprüchen werden die Ausdrücke „einschließlich“ und „in welchen“ als Äquivalente in einfachem Englisch der jeweiligen Ausdrücke „umfassend“ und „wobei“ verwendet. Ebenso sind in den folgenden Ansprüchen die Ausdrücke „enthaltend“ und „umfassend“ mit offenem Ende; das bedeutet, dass ein System, eine Vorrichtung, ein Artikel oder ein Verfahren, das, die oder der Elemente zusätzlich zu denjenigen enthält, die nach einem solchen Ausdruck in einem Anspruch aufgelistet sind, derart angesehen wird, dass es, sie oder er in den Schutzbereich dieses Anspruchs fällt.
  • Die folgenden nummerierten Beispiele sind Ausführungsformen:
    1. 1. Verfahren, das folgendes umfasst: Identifizieren, an einem Netzstandort, eines durch eine erste Clientvorrichtung eines ersten Endbenutzers des Netzstandorts erzeugten Datenbankobjekts; Empfangen, von der ersten Clientvorrichtung, einer Teilungsmaskierungsstrategie zum Modifizieren von Daten im Datenbankobjekt, wobei die Teilungsmaskierungsstrategie einen Benutzerrollentyp spezifiziert, um eine oder mehrere vorkonfigurierte Maskierungsoperationen an dem Datenbankobjekt zu initiieren; Erzeugen einer Netzwerkverbindung für einen Zugriff auf das Datenbankobjekt durch einen zweiten Endbenutzer des Netzstandorts; Empfangen, von einer zweiten Clientvorrichtung des zweiten Endnutzers, einer Anforderung auf die Datenbankdaten zuzugreifen, unter Verwendung der Netzwerkverbindung; in Reaktion auf die Anforderung von der zweiten Clientvorrichtung Bestimmen, dass eine Endbenutzerrolle des zweiten Endbenutzers mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt; in Reaktion auf die Endbenutzerrolle, die mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt, Anwenden von der einen oder den mehreren vorkonfigurierten Maskierungsoperationen auf das Datenbankobjekt, um ein maskiertes Datenbankobjekt zu erzeugen; und Veranlassen, durch die zweite Clientvorrichtung des zweiten Endbenutzers, einer Präsentation von Ergebnisdaten aus dem maskierten Datenbankobjekt.
    2. 2. Verfahren des Beispiels 1, wobei die Anforderung von der zweiten Clientvorrichtung eine Abfrage ist.
    3. 3. Verfahren des Beispiels 1 oder 2, wobei die Abfrage eine Auswahlanweisung umfasst und wobei die Auswahlanweisung auf das maskierte Datenbankobjekt angewendet wird, um die in der Präsentation angezeigten Ergebnisdaten zu erzeugen.
    4. 4. Verfahren von einem der Beispiele 1-3, wobei das Datenbankobjekt in einer ersten durch den ersten Endbenutzer gemanagten Datenbankinstanz gespeichert wird, wobei das maskierte Datenbankobjekt auf einer durch den zweiten Endbenutzer gemanagten zweiten Datenbankinstanz gehostet wird, ohne das Datenbankobjekt von der ersten Datenbankinstanz zur zweiten Datenbankinstanz zu kopieren.
    5. 5. Verfahren von einem der Beispiele 1-4, wobei das Datenbankobjekt eine oder mehrere externe Tabellen umfasst.
    6. 6. Verfahren von einem der Beispiele 1-5, wobei die Teilungsmaskierungsstrategie im Format einer strukturierten Abfragesprache (SQL(= Structured Query Language)-Format) empfangen und in einer Teilungsmaskierungsdatenbank gespeichert wird.
    7. 7. Verfahren von einem der Beispiele 1-6, wobei die Teilungsmaskierungsstrategie auf das Datenbankobjekt abgebildet wird, wobei die Teilungsmaskierungsstrategie eine Vielzahl von Benutzerrollentypen einschließlich des Benutzerrollentyps umfasst, wobei jeder der Vielzahl von Benutzerrollentypen auf eine Funktion abgebildet wird, die das Datenbankobjekt maskiert.
    8. 8. Verfahren von einem der Beispiele 1-7, wobei die Funktion eine Datenbankfunktion ist, die gegenüber dem Datenbankobjekt ausführbar ist, um eine oder mehrere Transformationen an einer oder mehreren Spalten des Datenbankobjekts zu veranlassen.
    9. 9. Verfahren von einem der Beispiele 1-8, wobei: die Teilungsmaskierungsstrategie eine erste die Teilungsmaskierungsstrategie ist; und das Datenbankobjekt eine Datenbankansicht ist, die auf die die Teilungsmaskierungsstrategie abgebildet ist, wobei die Datenbankansicht Daten aus einer Datenbanktabelle enthält, die auf eine zweite Teilungsmaskierungsstrategie abgebildet ist.
    10. 10. Verfahren von einem der Beispiele 1-9, wobei die zweite Teilungsmaskierungsstrategie auf der Datenbanktabelle implementiert wird, um maskierte Tabellendaten zu erzeugen, die in die Datenbankansicht integriert werden, wobei die Datenbankansicht, die die maskierten Tabellendaten enthält, weiterhin gemäß der Teilungsmaskierungsstrategie maskiert wird, um das maskierte Datenbankobjekt zu erzeugen.
    11. 11. System, das folgendes umfasst: einen oder mehrere Prozessoren einer Maschine; und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die irgendeines der beispielhaften Verfahren 1 bis 10 implementieren.
    12. 12. Maschinenlesbare Speichervorrichtung, die Anweisungen enthält, die dann, wenn sie durch eine Maschine ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die eines der Verfahren 1 bis 10 implementieren.
  • Bei einem weiteren Beispiel implementiert eine gemeinsam genutzte bzw. geteilte Datenbankplattform eine dynamische Maskierung von Daten, die zwischen Benutzern gemeinsam genutzt bzw. geteilt werden, wobei spezifische Daten basierend auf vorkonfigurierten Funktionen, die mit Benutzerrollen assoziiert sind, maskiert, transformiert oder auf andere Weise modifiziert werden. Die gemeinsam genutzte Datenbankplattform kann die Maskierung zur Laufzeit in Reaktion darauf dynamisch implementieren, dass Benutzer einen Zugriff auf ein Datenbankobjekt anfordern, das mit einer oder mehreren Maskierungsstrategien assoziiert ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 16/698142 [0001]

Claims (29)

  1. Computerprogramm, das Anweisungen umfasst, die dann, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren Operationen durchführt oder durchführen, wobei die Operationen folgendes umfassen: Identifizieren, an einem Netzstandort, eines durch eine erste Clientvorrichtung eines ersten Endbenutzers des Netzstandorts erzeugten Datenbankobjekts; Empfangen, von der ersten Clientvorrichtung, einer Teilungsmaskierungsstrategie zum Modifizieren von Daten im Datenbankobjekt, wobei die Teilungsmaskierungsstrategie einen Benutzerrollentyp spezifiziert, um eine oder mehrere vorkonfigurierte Maskierungsoperationen an dem Datenbankobjekt zu initiieren; Erzeugen einer Netzwerkverbindung für einen Zugriff auf das Datenbankobjekt durch einen zweiten Endbenutzer des Netzstandorts; Empfangen, von einer zweiten Clientvorrichtung des zweiten Endnutzers, einer Anforderung auf die Datenbankdaten zuzugreifen, unter Verwendung der Netzwerkverbindung; in Reaktion auf die Anforderung von der zweiten Clientvorrichtung Bestimmen, dass eine Endbenutzerrolle des zweiten Endbenutzers mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt; in Reaktion auf die Endbenutzerrolle, die mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt, Anwenden von der einen oder den mehreren vorkonfigurierten Maskierungsoperationen auf das Datenbankobjekt, um ein maskiertes Datenbankobjekt zu erzeugen; und Veranlassen, durch die zweite Clientvorrichtung des zweiten Endbenutzers, einer Präsentation von Ergebnisdaten aus dem maskierten Datenbankobjekt.
  2. Computerprogramm nach Anspruch 1, wobei die Anforderung von der zweiten Clientvorrichtung eine Abfrage ist.
  3. Computerprogramm nach Anspruch 2, wobei die Abfrage eine Auswahlanweisung umfasst und wobei die Auswahlanweisung auf das maskierte Datenbankobjekt angewendet wird, um die in der Präsentation angezeigten Ergebnisdaten zu erzeugen.
  4. Computerprogramm nach Anspruch 1, wobei das Datenbankobjekt in einer durch den ersten Endbenutzer gemanagten ersten Datenbankinstanz gespeichert ist, wobei das maskierte Datenbankobjekt auf einer durch den zweiten Endbenutzer gemanagten zweiten Datenbankinstanz gehostet wird, ohne das Datenbankobjekt von der ersten Datenbankinstanz zur zweiten Datenbankinstanz zu kopieren.
  5. Computerprogramm nach Anspruch 1, wobei das Datenbankobjekt eine oder mehrere externe Tabellen umfasst.
  6. Computerprogramm nach Anspruch 1, wobei die Teilungsmaskierungsstrategie im Format einer strukturierten Abfragesprache (SQL(= Structured Query Language)-Format) empfangen und in einer Teilungsmaskierungsdatenbank gespeichert wird.
  7. Computerprogramm nach Anspruch 1, wobei die Teilungsmaskierungsstrategie auf das Datenbankobjekt abgebildet wird, wobei die Teilungsmaskierungsstrategie eine Vielzahl von Benutzerrollentypen einschließlich des Benutzerrollentyps umfasst, wobei jeder der Vielzahl von Benutzerrollentypen auf eine Funktion abgebildet wird, die das Datenbankobjekt maskiert.
  8. Computerprogramm nach Anspruch 7, wobei die Funktion eine Datenbankfunktion ist, die gegenüber dem Datenbankobjekt ausführbar ist, um eine oder mehrere Transformationen an einer oder mehreren Spalten des Datenbankobjekts zu veranlassen.
  9. Computerprogramm nach Anspruch 1, wobei: die Teilungsmaskierungsstrategie eine erste die Teilungsmaskierungsstrategie ist; und das Datenbankobjekt eine Datenbankansicht ist, die auf die die Teilungsmaskierungsstrategie abgebildet ist, wobei die Datenbankansicht Daten aus einer Datenbanktabelle enthält, die auf eine zweite Teilungsmaskierungsstrategie abgebildet ist.
  10. Computerprogramm nach Anspruch 9, wobei die zweite Teilungsmaskierungsstrategie auf der Datenbanktabelle implementiert ist, um maskierte Tabellendaten zu erzeugen, die in die Datenbankansicht integriert sind, wobei die Datenbankansicht, die die maskierten Tabellendaten enthält, weiterhin gemäß der Teilungsmaskierungsstrategie maskiert wird, um das maskierte Datenbankobjekt zu erzeugen.
  11. System, das folgendes umfasst: einen oder mehrere Prozessoren einer Maschine; und einen Speicher, der Anweisungen speichert, die dann, wenn sie durch den eine oder die mehreren Prozessoren ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die folgendes umfassen: Identifizieren, an einem Netzstandort, eines durch eine erste Clientvorrichtung eines ersten Endbenutzers des Netzstandorts erzeugten Datenbankobjekts; Empfangen, von der ersten Clientvorrichtung, einer Teilungsmaskierungsstrategie zum Modifizieren von Daten im Datenbankobjekt, wobei die Teilungsmaskierungsstrategie einen Benutzerrollentyp spezifiziert, um eine oder mehrere vorkonfigurierte Maskierungsoperationen an dem Datenbankobjekt zu initiieren; Erzeugen einer Netzwerkverbindung für einen Zugriff auf das Datenbankobjekt durch einen zweiten Endbenutzer des Netzstandorts; Empfangen, von einer zweiten Clientvorrichtung des zweiten Endnutzers, einer Anforderung auf die Datenbankdaten zuzugreifen, unter Verwendung der Netzwerkverbindung; in Reaktion auf die Anforderung von der zweiten Clientvorrichtung Bestimmen, dass eine Endbenutzerrolle des zweiten Endbenutzers mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt; in Reaktion auf die Endbenutzerrolle, die mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt, Anwenden von der einen oder den mehreren vorkonfigurierten Maskierungsoperationen auf das Datenbankobjekt, um ein maskiertes Datenbankobjekt zu erzeugen; und Veranlassen, durch die zweite Clientvorrichtung des zweiten Endbenutzers, einer Präsentation von Ergebnisdaten aus dem maskierten Datenbankobjekt.
  12. System nach Anspruch 11, wobei die Anforderung von der zweiten Client-Vorrichtung eine Abfrage ist.
  13. System nach Anspruch 12, wobei die Abfrage eine Auswahlanweisung umfasst und wobei die Auswahlanweisung auf das maskierte Datenbankobjekt angewendet wird, um die in der Präsentation angezeigten Ergebnisdaten zu erzeugen.
  14. System nach Anspruch 11, wobei das Datenbankobjekt in einer durch den ersten Endbenutzer gemanagten ersten Datenbankinstanz gespeichert ist, wobei das maskierte Datenbankobjekt auf einer durch den zweiten Endbenutzer gemanagten zweiten Datenbankinstanz gehostet wird, ohne das Datenbankobjekt von der ersten Datenbankinstanz zur zweiten Datenbankinstanz zu kopieren.
  15. System nach Anspruch 11, wobei das Datenbankobjekt eine oder mehrere externe Tabellen umfasst.
  16. System nach Anspruch 11, wobei die Teilungsmaskierungsstrategie im Format einer strukturierten Abfragesprache (SQL(= Structured Query Language)-Format) empfangen und in einer Teilungsmaskierungsdatenbank gespeichert wird.
  17. System nach Anspruch 11, wobei die Teilungsmaskierungsstrategie auf das Datenbankobjekt abgebildet wird, wobei die Teilungsmaskierungsstrategie eine Vielzahl von Benutzerrollentypen einschließlich des Benutzerrollentyps umfasst, wobei jeder der Vielzahl von Benutzerrollentypen auf eine Funktion abgebildet wird, die das Datenbankobjekt maskiert.
  18. System nach Anspruch 17, wobei die Funktion eine Datenbankfunktion ist, die gegenüber dem Datenbankobjekt ausführbar ist, um eine oder mehrere Transformationen an einer oder mehreren Spalten des Datenbankobjekts zu veranlassen.
  19. System nach Anspruch 11, wobei das Datenbankobjekt eine Datenbankansicht ist, die auf die die Teilungsmaskierungsstrategie abgebildet ist, wobei die Datenbankansicht Daten aus einer Datenbanktabelle enthält, die auf eine andere Teilungsmaskierungsstrategie abgebildet ist.
  20. Maschinenlesbare Speichervorrichtung, die Anweisungen enthält, die dann, wenn sie durch eine Maschine ausgeführt werden, veranlassen, dass die Maschine Operationen durchführt, die folgendes umfassen: Identifizieren, an einem Netzstandort, eines durch eine erste Clientvorrichtung eines ersten Endbenutzers des Netzstandorts erzeugten Datenbankobjekts; Empfangen, von der ersten Clientvorrichtung, einer Teilungsmaskierungsstrategie zum Modifizieren von Daten im Datenbankobjekt, wobei die Teilungsmaskierungsstrategie einen Benutzerrollentyp spezifiziert, um eine oder mehrere vorkonfigurierte Maskierungsoperationen an dem Datenbankobjekt zu initiieren; Erzeugen einer Netzwerkverbindung für einen Zugriff auf das Datenbankobjekt durch einen zweiten Endbenutzer des Netzstandorts; Empfangen, von einer zweiten Clientvorrichtung des zweiten Endnutzers, einer Anforderung auf die Datenbankdaten zuzugreifen, unter Verwendung der Netzwerkverbindung; in Reaktion auf die Anforderung von der zweiten Clientvorrichtung Bestimmen, dass eine Endbenutzerrolle des zweiten Endbenutzers mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt; in Reaktion auf die Endbenutzerrolle, die mit dem Benutzerrollentyp der Teilungsmaskierungsstrategie übereinstimmt, Anwenden von der einen oder den mehreren vorkonfigurierten Maskierungsoperationen auf das Datenbankobjekt, um ein maskiertes Datenbankobjekt zu erzeugen; und Veranlassen, durch die zweite Clientvorrichtung des zweiten Endbenutzers, einer Präsentation von Ergebnisdaten aus dem maskierten Datenbankobjekt.
  21. Maschinenlesbare Speichervorrichtung nach Anspruch 20, wobei die Anforderung von der zweiten Client-Vorrichtung eine Abfrage ist.
  22. Maschinenlesbare Speichervorrichtung nach Anspruch 21, wobei die Abfrage eine Auswahlanweisung umfasst und wobei die Auswahlanweisung auf das maskierte Datenbankobjekt angewendet wird, um die in der Präsentation angezeigten Ergebnisdaten zu erzeugen.
  23. Maschinenlesbare Speichervorrichtung nach Anspruch 20, wobei das Datenbankobjekt in einer durch den ersten Endbenutzer gemanagten ersten Datenbankinstanz gespeichert ist, wobei das maskierte Datenbankobjekt auf einer durch den zweiten Endbenutzer gemanagten zweiten Datenbankinstanz gehostet wird, ohne das Datenbankobjekt von der ersten Datenbankinstanz zur zweiten Datenbankinstanz zu kopieren.
  24. Maschinenlesbare Speichervorrichtung nach Anspruch 20, wobei das Datenbankobjekt eine oder mehrere externe Tabellen umfasst.
  25. Maschinenlesbare Speichervorrichtung nach Anspruch 20, wobei die Teilungsmaskierungsstrategie im Format einer strukturierten Abfragesprache (SQL(= Structured Query Language)-Format) empfangen und in einer Teilungsmaskierungsdatenbank gespeichert wird.
  26. Maschinenlesbare Speichervorrichtung nach Anspruch 20, wobei die Teilungsmaskierungsstrategie auf das Datenbankobjekt abgebildet wird, wobei die Teilungsmaskierungsstrategie eine Vielzahl von Benutzerrollentypen einschließlich des Benutzerrollentyps umfasst, wobei jeder der Vielzahl von Benutzerrollentypen auf eine Funktion abgebildet wird, die das Datenbankobjekt maskiert.
  27. Maschinenlesbare Speichervorrichtung nach Anspruch 26, wobei die Funktion eine Datenbankfunktion ist, die gegenüber dem Datenbankobjekt ausführbar ist, um eine oder mehrere Transformationen an einer oder mehreren Spalten des Datenbankobjekts zu veranlassen.
  28. Maschinenlesbare Speichervorrichtung nach Anspruch 20, wobei: die Teilungsmaskierungsstrategie eine erste die Teilungsmaskierungsstrategie ist; und das Datenbankobjekt eine Datenbankansicht ist, die auf die die Teilungsmaskierungsstrategie abgebildet ist, wobei die Datenbankansicht Daten aus einer Datenbanktabelle enthält, die auf eine zweite Teilungsmaskierungsstrategie abgebildet ist.
  29. Maschinenlesbare Speichervorrichtung nach Anspruch 28, wobei die zweite Teilungsmaskierungsstrategie auf der Datenbanktabelle implementiert ist, um maskierte Tabellendaten zu erzeugen, die in die Datenbankansicht integriert sind, wobei die Datenbankansicht, die die maskierten Tabellendaten enthält, weiterhin gemäß der Teilungsmaskierungsstrategie maskiert wird, um das maskierte Datenbankobjekt zu erzeugen.
DE202020005715.0U 2019-11-27 2020-07-31 Dynamische Maskierung geteilter Datenobjekte Active DE202020005715U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/698,142 2019-11-27
US16/698,142 US10867063B1 (en) 2019-11-27 2019-11-27 Dynamic shared data object masking

Publications (1)

Publication Number Publication Date
DE202020005715U1 true DE202020005715U1 (de) 2022-03-08

Family

ID=73746907

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202020005715.0U Active DE202020005715U1 (de) 2019-11-27 2020-07-31 Dynamische Maskierung geteilter Datenobjekte

Country Status (7)

Country Link
US (4) US10867063B1 (de)
EP (1) EP3956797A4 (de)
JP (1) JP2023502382A (de)
KR (1) KR102457707B1 (de)
CN (1) CN113261000A (de)
DE (1) DE202020005715U1 (de)
WO (1) WO2021107994A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11574072B2 (en) 2019-11-27 2023-02-07 Snowflake Inc. Dynamic shared data object masking

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11526527B2 (en) * 2019-04-04 2022-12-13 Sap Se Data transfer in a computer-implemented database
US10628244B1 (en) 2019-10-29 2020-04-21 Snowflake Inc. Calling external functions from a data warehouse
US10715524B1 (en) 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US20220035939A1 (en) * 2020-08-03 2022-02-03 Jpmorgan Chase Bank, N.A. Method and system for dynamic data masking
US11514183B2 (en) * 2021-01-29 2022-11-29 Seagate Technology Llc Data storage system with decentralized policy alteration
US11138192B1 (en) * 2021-04-30 2021-10-05 Snowflake Inc. Invoking external table functions from a database system
US11593521B1 (en) 2022-02-04 2023-02-28 Snowflake Inc. Tag-based application of masking policy
US11783078B1 (en) * 2023-04-20 2023-10-10 Snowflake Inc. Database redaction for semi-structured and unstructured data
CN116226095A (zh) * 2023-05-08 2023-06-06 中用科技有限公司 一种无共享架构数据库的存算分离系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014394A1 (en) * 2001-03-22 2003-01-16 Shinji Fujiwara Cell-level data access control using user-defined functions
US20020095405A1 (en) * 2001-01-18 2002-07-18 Hitachi America, Ltd. View definition with mask for cell-level data access control
US20090024570A1 (en) * 2007-07-20 2009-01-22 Oracle Internatonal Corporation User defined query rewrite mechanism
US8146165B2 (en) * 2007-08-16 2012-03-27 Verizon Patent And Licensing Inc. Method and apparatus for providing a data masking portal
US20090100527A1 (en) * 2007-10-10 2009-04-16 Adrian Michael Booth Real-time enterprise data masking
US8306932B2 (en) * 2008-04-08 2012-11-06 Infosys Technologies Limited System and method for adaptive data masking
US10289611B2 (en) * 2010-04-30 2019-05-14 Teradata Us, Inc. Global and persistent memory for user-defined functions in a parallel database
US8930381B2 (en) * 2011-04-07 2015-01-06 Infosys Limited Methods and systems for runtime data anonymization
US8930410B2 (en) * 2011-10-03 2015-01-06 International Business Machines Corporation Query transformation for masking data within database objects
US9223807B2 (en) * 2012-09-13 2015-12-29 International Business Machines Corporation Role-oriented database record field security model
US9621680B2 (en) * 2013-10-21 2017-04-11 Globalfoundries Inc. Consistent data masking
EP3067817B1 (de) * 2015-03-13 2019-07-24 Tata Consultancy Services Limited Dynamische datenmaskierung für mainframe-anwendung
KR101797483B1 (ko) * 2016-07-19 2017-11-15 주식회사 티맥스데이터 데이터베이스 관리 시스템에서 쿼리를 프로세싱하기 위한 기법
US10592681B2 (en) * 2017-01-10 2020-03-17 Snowflake Inc. Data sharing in a multi-tenant database system
US11061897B2 (en) * 2018-05-07 2021-07-13 Sap Se Materializable database objects in multitenant environments
US10867063B1 (en) 2019-11-27 2020-12-15 Snowflake Inc. Dynamic shared data object masking

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11574072B2 (en) 2019-11-27 2023-02-07 Snowflake Inc. Dynamic shared data object masking

Also Published As

Publication number Publication date
EP3956797A1 (de) 2022-02-23
US20210157948A1 (en) 2021-05-27
KR102457707B1 (ko) 2022-10-24
EP3956797A4 (de) 2023-01-18
US10867063B1 (en) 2020-12-15
US11574072B2 (en) 2023-02-07
US20210286894A1 (en) 2021-09-16
JP2023502382A (ja) 2023-01-24
WO2021107994A1 (en) 2021-06-03
US11055430B2 (en) 2021-07-06
US20230102349A1 (en) 2023-03-30
KR20210137077A (ko) 2021-11-17
CN113261000A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
DE202020005715U1 (de) Dynamische Maskierung geteilter Datenobjekte
DE202020005700U1 (de) Aufrufen externer Funktionen aus einem Datenlager
DE202018006529U1 (de) Gemeinsames Nutzen bzw. Teilen von Daten in einem mandantenfähigen Datenbanksystem
DE202020005687U1 (de) Gemeinsame Datennutzung bzw. Datenteilung und materilisierte Ansichten in Datenbanken
DE202017007211U1 (de) Klonen von Katalogobjekten
DE202020005734U1 (de) Beschneiden von Indizes zur Verbesserung einer Verarbeitung von Datenbankabfragen
DE202020005693U1 (de) Externe berechtigungsnachweisfreie Stufen für Datenbankintegrationen
DE202020005703U1 (de) Auf verteilten Metadaten basierendes Cluster-Computing
DE202021004036U1 (de) Data Clean Room
DE112013001308T5 (de) Verwalten von mandantenspezifischen Datensätzen in einer mandantenfähigen Umgebung
WO2017140213A1 (en) System, method, and device for unified access control on federated database
US11514022B2 (en) Streams on shared database objects
DE112013002544T5 (de) Cloudbasiertes Teilen von Datenpunkten und Zusammenarbeit unter Benutzergruppen
US11755608B2 (en) Interactive dataflow preview
DE202023101653U1 (de) Organisations- und cloudübergreifende automatisierte Datenpipelines
DE202021004295U1 (de) Gleichzeitige Transaktionsverarbeitung in einem Datenbanksystem
DE112016002392T5 (de) Autorisierung in einem verteilten System unter Verwendung von Zugriffssteuerungslisten und Gruppen
DE112022000878T5 (de) Datensatzmultiplexer für datenverarbeitungssystem
US11169997B1 (en) Centralized data access tool implementing resource governance
DE112021003031T5 (de) Archivieren von nur-beschleuniger-datenbanktabellen
DE202021004340U1 (de) Beschränkte Sichten zum Steuern des Zugriffs auf Informationen in einem Datenbanksystem
DE102012218945B4 (de) Zugriffssteuerung in einer hybriden Umgebung
US20230409968A1 (en) Multi-party machine learning using a database cleanroom
DE202021004327U1 (de) Autoskalierung externer Funktionsanforderungen
DE202021102315U1 (de) Flexibles Computing

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years