-
HINTERGRUND
-
1. Technisches Gebiet
-
Diese Offenbarung betrifft allgemein Computersysteme und spezifischer die Datensicherheit für eine Datenbank in einer Mehrknoten-Computersystemumgebung.
-
2. HINTERGRUND
-
Verteilte Computersysteme werden zunehmend verwendet, um die Begrenzungen herkömmlicher in Standard-Computersystemen bereitgestellter Anwendungen zu überwinden. Ein verteiltes Computersystem umfasst mehrere autonome Computer oder Knoten, die über ein Netzwerk miteinander Daten austauschen. Verteiltes Rechnen bezieht sich auf die Verwendung verteilter Systeme zur Lösung von Rechenproblemen. Beim verteilten Rechnen wird ein Problem in viele Aufgaben (tasks) aufgeteilt, von denen jede durch einen oder mehrere Computerknoten gelöst wird. Verteiltes Rechnen in einer Mehrknotenumgebung weist verschiedene Formen auf und kann beispielhaft durch einige der vielversprechendsten aktuellen Computertechnologien dargestellt werden, wie beispielsweise „Blue Gene®” von der IBM® Corporation, Gitter-Rechnen (grid computing), kommerzielle Cluster und „RoadRunner” von der IBM® Corporation. Mit diesen neuen Mehrknotenumgebungen können einzelne Computer-Ausführungseinheiten miteinander über neue Programmiermodelle so verbunden werden, dass eine Arbeitseinheit oder ein typisches Programm analysiert (parsed out) und verteilt verarbeitet wird. Weiterhin wird diese Arbeitsteilung oftmals dem System überlassen, so dass Software-Entwickler wenig oder keine Möglichkeit haben, zu wissen, welche Teile des Puzzles wo ausgeführt werden.
-
In der typischen Anwendungsentwicklungsumgebung ist die Datensicherheit auf Objektebene und Beziehungen des Objektes zu einer Anwendung ausgebildet. Eine Anwendung ist davon abhängig, dass sie Zugang zu bestimmten Objekten auf der Grundlage von Sicherheitsregeln/-funktionen besitzt und die Einrichtung sowohl auf Betriebssystem- als auch Datenbankebene ausgebildet ist. Obwohl eine Sicherheit, die nur auf dem Zugang einer Anwendung zu Objekten beruht, bei herkömmlichen Computersystemen relativ gut funktioniert, werden die Sicherheitsanforderungen zum Schutz von Daten und zur Ermöglichung von Flexibilität beim Zugreifen auf Daten in diesen komplexeren Mehrknotenumgebungen nicht berücksichtigt.
-
KURZZUSAMMENFASSUNG
-
Die Offenbarung und die Ansprüche hierin richten sich auf die Datenbanksicherheit in einer Mehrknotenumgebung. Ein Sicherheitsmechanismus als Teil eines Datenbankverwaltungssystems setzt Verarbeitungsbeschränkungen durch, die als Metadaten in der Datenbank gespeichert sind, um zu steuern, wie zum Bereitstellen von Datensicherheit unterschiedlichen Teller einer Mehrknotenanwendung (Ausführungseinheiten genannt) das Zugreifen auf die Daten der Datenbank erlaubt wird. Wenn eine Ausführungseinheit versucht, auf die Daten zuzugreifen, prüft der Sicherheitsmechanismus vorzugsweise die Datensicherheitsbeschränkungen auf Sicherheitsverletzungen hin, um sicherzustellen, dass die Knotenbedingungen für den Zugriff korrekt sind. Wenn der Sicherheitsmechanismus auf der Grundlage der Sicherheitsbeschränkungen feststellt, dass durch eine Abfrage von einer Ausführungseinheit eine Sicherheitsverletzung vorliegt, kann der Sicherheitsmechanismus ein Senden, Verzögern oder einen erneuten Versuch durchführen, um die Datensicherheit aufrechtzuerhalten. Die Knotenbedingungen hierin beinhalten Zeitbeschränkungen und Beziehungen mit anderen Spalten, Zeilen oder Teilen von Daten. Zum Beispiel kann mehreren Verarbeitungseinheiten die gemeinsame Ausführung erlaubt sein, der Sicherheitsmechanismus jedoch (durch die Verwendung von Metadaten) verbieten, dass diese Verarbeitungseinheiten auf bestimmte Informationen gleichzeitig zugreifen.
-
In einem Aspekt betrifft die Erfindung eine Vorrichtung, die Folgendes umfasst: ein Mehrknoten-Computersystem, das eine Vielzahl von Computerknoten umfasst, von denen jeder einen Prozessor und einen mit dem Prozessor verbundenen Speicher aufweist; eine Vielzahl von Ausführungseinheiten im Speicher der Computerknoten, die durch die Prozessoren der Computerknoten ausgeführt werden; eine mit dem Computersystem verbundene Datenbank; Sicherheitsbeschränkungsmetadaten, die sich in einer Datenbanktabelle befinden und Sicherheitsbeziehungen von Daten in der Datenbank und den Ausführungseinheiten angeben; und einen Sicherheitsmechanismus, der die Sicherheit der Daten in der Datenbank durch Beschränken des Zugriffs auf die Datenbank durch die Vielzahl von Ausführungseinheiten des Computersystems gemäß den Sicherheitsbeschränkungsmetadaten durchsetzt.
-
Nach einer Ausführungsform der Erfindung sind die Sicherheitsbeschränkungsmetadaten in einer Datenbanktabelle gespeichert, die sich in der Datenbank befindet.
-
In einem weiteren Aspekt betrifft die Erfindung ein computerimplementiertes Verfahren für Datensicherheit in einem Mehrknoten-Computersystem, wobei das Verfahren die folgenden Schritte umfasst:
- (A) Abrufen einer eingehenden Abfrage von einer aus einer Vielzahl von Ausführungseinheiten auf einer Vielzahl von Computerknoten;
- (B) Bereitstellen von als Datenbankmetadaten gespeicherten Sicherheitsbeschränkungen;
- (C) Analysieren der Abfrage und Vergleichen der Abfrage mit den Sicherheitsbeschränkungen;
- (D) Erfragen von Statusinformationen vom Mehrknoten-Computersystem;
- (E) Feststellen, ob die Abfrage auf der Grundlage der Abfrage, der Sicherheitsbeschränkungsmetadaten und der Statusinformationen ausgeführt werden soll;
- (F) wenn in Schritt (E) bestimmt wird, die Abfrage auszuführen, Ausführen der Abfrage und Ausgeben von Ergebnissen der Abfrage;
- (G) wenn in Schritt (E) bestimmt wird, die Abfrage nicht auszuführen, Festlegen, eine Zeitdauer zu warten, und Zurückkehren zum vorstehenden Schritt D;
- (H) wobei die Schritte des Verfahrens in einem Computer-Software-Programm ausgebildet sind, das in einem Computerspeicher gespeichert ist und durch einen Computerprozessor ausgeführt wird.
-
Nach einer Ausführungsform der Erfindung geben die Sicherheitsbeschränkungsmetadaten an, dass eine Abfrage einer ersten Tabelle beschränkt wird, wenn eine Ausführungseinheit innerhalb einer festgelegten Zeitdauer auf eine zweite Tabelle zugegriffen hat.
-
In einem weiteren Aspekt betrifft die Erfindung einen Herstellungsartikel, der auf einem gegenständlichen computerlesbaren Speichermedium gespeicherte Software umfasst, wobei die Software Folgendes umfasst: einen Sicherheitsmechanismus, der die Sicherheit von Daten in einer mit einem Computersystem verbundenen Datenbank durchsetzt, indem der Zugriff auf die Datenbank durch eine Vielzahl von Ausführungseinheiten des Computersystems abhängig von Sicherheitsbeschränkungsmetadaten in der Datenbank beschränkt wird; wobei sich die Sicherheitsbeschränkungsmetadaten in einer Datenbanktabelle der Datenbank befinden und Sicherheitsbeziehungen von Daten in der Datenbank und den Ausführungseinheiten angeben.
-
Nach einer Ausführungsform der Erfindung handelt es sich bei den Sicherheitsbeschränkungsmetadaten um eine Datenbanktabelle, die sich in der Datenbank befindet.
-
Nach einer Ausführungsform der Erfindung geben die Sicherheitsbeschränkungsmetadaten an, dass eine erste Ausführungseinheit nicht gleichzeitig mit einer zweiten Ausführungseinheit ausgeführt werden darf.
-
Nach einer Ausführungsform der Erfindung geben die Sicherheitsbeschränkungsmetadaten an, dass eine Abfrage von Datenbankdaten beschränkt wird, wenn eine Ausführungseinheit einen bestimmten Wert in der verarbeiteten Abfrage aufweist.
-
Nach einer Ausführungsform der Erfindung geben die Sicherheitsbeschränkungsmetadaten an, dass eine Abfrage von Datenbankdaten beschränkt wird, wenn eine festgelegte Verbindung einer Ausführungseinheit mit einer Ressource geöffnet ist.
-
Die vorstehenden und weitere Merkmale und Vorteile werden aus der folgenden detaillierteren Beschreibung ersichtlich, die in den angehängten Zeichnungen veranschaulicht wird.
-
KURZE BESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTEN
-
Die Offenbarung wird in Verbindung mit den angehängten Zeichnungen beschrieben, in denen gleiche Bezeichnungen gleiche Elemente bezeichnen, und:
-
1 ein Blockschaltbild eines Computersystems mit einem Sicherheitsmechanismus zeigt, der Sicherheitsbeschränkungsmetadaten wie hierin beschrieben verwendet;
-
2 ein Blockschaltbild zeigt, das drei in einer generischen Mehrknoten-Computerumgebung verbundene Computerknoten darstellt;
-
3 ein Blockschaltbild zeigt, das Sicherheitsbeschränkungsmetadaten zeigt, welche Datenbeziehungen zwischen Ausführungseinheiten auf zwei Computerknoten festlegen;
-
4 ein Blockschaltbild zeigt, das ein Beispiel dafür darstellt, wie Sicherheitsbeschränkungsmetadaten den Sicherheitsmechanismus anweisen, die Datensicherheit für eine Datenbanktabelle sicherzustellen;
-
5 ein Blockschaltbild zeigt, des ein weiteres Beispiel dafür darstellt, wie Sicherheitsbeschränkungsmetadaten den Sicherheitsmechanismus anweisen, die Datensicherheit für eine Datenbanktabelle sicherzustellen;
-
6 ein Blockschaltbild zeigt, das ein weiteres Beispiel dafür darstellt, wie Sicherheitsbeschränkungsmetadaten den Sicherheitsmechanismus anweisen, die Datensicherheit für eine Datenbanktabelle sicherzustellen; und
-
7 ein Beispiel eines Ablaufdiagramms eines Verfahrens für einen Sicherheitsmechanismus zum Bereitstellen von Datenbanksicherheit mittels Sicherheitsbeschränkungsmetadaten in einer Datenbanktabelle zeigt.
-
DETAILLIERTE BESCHREIBUNG
-
Hierin ist ein Sicherheitsmechanismus in einem Datenbankverwaltungssystem beschrieben, der als Metadaten gespeicherte Verarbeitungsbeschränkungen durchsetzt, um zu steuern, wie zum Bereitstellen von Datensicherheit unterschiedlichen Teilen einer Mehrknotenanwendung das Zugreifen auf Daten einer Datenbank erlaubt wird. Wenn eine Ausführungseinheit versucht, auf die Daten zuzugreifen, prüft der Sicherheitsmechanismus vorzugsweise die Datensicherheitsbeschränkungen auf Sicherheitsverletzungen hin, um sicherzustellen, dass die Knotenbedingungen für den Zugriff korrekt sind. Wenn der Sicherheitsmechanismus auf der Grundlage der Sicherheitsbeschränkungen feststellt, dass durch eine Abfrage von einer Ausführungseinheit eine Sicherheitsverletzung vorliegt, kann der Sicherheitsmechanismus ein Senden, Verzögern oder einen erneuten Versuch durchführen, um die Datensicherheit aufrechtzuerhalten. Die Knotenbedingungen hierin beinhalten Zeiten und Beziehungen mit anderen Spalten, Zeilen oder Teilen von Daten. Zum Beispiel kann mehreren Verarbeitungseinheiten die gemeinsame Ausführung erlaubt sein, der Sicherheitsmechanismus jedoch (durch die Verwendung von Metadaten) verbieten, dass diese Verarbeitungseinheiten auf bestimmte Informationen gleichzeitig zugreifen.
-
Unter Bezugnahme auf 1 handelt es sich bei einem Computersystem 100 um eine geeignete Ausbildung eines Computersystems, das einen Sicherheitsmechanismus beinhaltet, wie er hierin beschrieben ist. Bei dem Computersystem 100 handelt es sich um ein „Power System” der International Business Machines Corporation (IBM®), auf dem mehrere Betriebssysteme einschließlich des Betriebssystems „IBM® i” ausgeführt werden können. Für den Fachmann ist jedoch ersichtlich, dass die Offenbarung hierin sich generell auf jedes beliebige Computersystem bezieht, das in der Lage ist, in eine Mehrknoten-Computerumgebung einbezogen zu werden. Zum Beispiel kann das Computersystem 100 auch für einen einzelnen Knoten eines hochgradig parallelen Computers wie den von IBM® entwickelten „Blue Gene®” der IBM® Corporation oder einen Knoten eines Clusters mit skalierbarer Leistung wie einen „Beowulf Cluster” stehen. Wie in 1 gezeigt, umfasst das Computersystem 100 einen oder mehrere Prozessoren 110, einen Hauptspeicher 120, eine Massenspeicherschnittstelle 130, eine Anzeigeschnittstelle 140 und eine Netzwerkschnittstelle 150. Diese Systemkomponenten sind mittels eines Systembusses 160 miteinander verbunden. Die Massenspeicherschnittstelle 130 wird dazu verwendet, Massenspeichereinheiten mit einem computerlesbaren Datenträger wie beispielsweise Speichereinheiten (DASD-Einheiten) 155 mit direktem Zugriff mit dem Computersystem 100 zu verbinden. Ein spezieller Typ einer Speichereinheit 155 mit direktem Zugriff ist ein Laufwerk für lesbare und beschreibbare CD-RW, das Daten auf eine CD-RW 195 schreiben und von dort lesen kann.
-
Der Hauptspeicher 120 enthält vorzugsweise ein Betriebssystem 121. Bei dem Betriebssystem 121 handelt es sich um ein Betriebssystem, das mehrere Aufgaben gleichzeitig ausführen kann (multitasking operating system), das in der Branche als „IBM® i Betriebssystem” bekannt ist. Für den Fachmann ist jedoch ersichtlich, dass der Gedanke und der Umfang dieser Offenbarung nicht auf ein bestimmtes Betriebssystem beschränkt sind. Der Speicher enthält weiterhin eine Software-Anwendung 122, die eine oder mehrere Ausführungseinheiten 123 umfasst. Die Ausführungseinheit 123 beinhaltet mindestens eine Abfrage 124, die eine Datenbank 125 abfragt. Die Datenbank 125 enthält Sicherheitsbeschränkungsmetadaten 126, die Datenbankmetadaten zugeordnet sind (nicht abgebildet). Ein Datenbankverwaltungssystem 127 verwaltet den Zugriff auf die Datenbank 125. Das Datenbankverwaltungssystem 127 enthält einen Sicherheitsmechanismus 128, der den Zugriff von Abfragen auf die Datenbank durch die Ausführungseinheiten wie hierin beschrieben beschränkt.
-
Das Computersystem 100 verwendet allgemein bekannte virtuelle Adressierungsmechanismen, durch die sich die Programme des Computersystems 100 so verhalten können, als ob sie nur Zugriff auf eine große, einzelne Speichereinheit anstelle eines Zugriffs auf mehrere kleinere Speichereinheiten wie den Hauptspeicher 120 und die DASD-Einheit 155 besitzen. Während das Betriebssystem 121, die Anwendung 122, die Ausführungseinheit 123, die Abfrage 124, die Datenbank 125, die Sicherheitsbeschränkungsmetadaten 126, das Datenbankverwaltungssystem 127 und der Sicherheitsmechanismus 128 so abgebildet sind, dass sie sich im Hauptspeicher 120 befinden, erkennt der Fachmann daher, dass sich diese Elements nicht notwendigerweise alle vollständig und gleichzeitig im Hauptspeicher 120 oder auch im Hauptspeicher desselben Computersystems enthalten sein müssen. Es ist ebenfalls festzuhalten, dass der Begriff „Speicher” hierin allgemein verwendet wird, um den gesamten virtuellen Speicher des Computersystems 100 zu bezeichnen, und den virtuellen Speicher anderer mit dem Computersystem 100 verbundener Computersysteme einschließen kann.
-
Der Prozessor 110 kann aus einem oder mehreren Mikroprozessoren und/oder integrierten Schaltungen aufgebaut sein. Der Prozessor 110 führt Programmanweisungen aus, die im Hauptspeicher 120 gespeichert sind. Der Hauptspeicher 120 speichert Programme und Daten, auf die der Prozessor 110 zugreifen kann. Wenn das Computersystem 100 hochfährt, führt der Prozessor 110 zuerst die Programmanweisungen aus, die das Betriebssystem 121 aufbauen und führt später die Programmanweisungen aus, welche die Anwendung 122 und die Ausführungseinheit(en) 123 aufbauen.
-
Obwohl das Computersystem 100 so abgebildet ist, dass es nur einen einzigen Prozessor und einen einzigen Systembus enthält, ist für den Fachmann ersichtlich, dass ein Sicherheitsmechanismus wie er hierin beschrieben ist mittels eines Computersystems ausgeführt werden kann, das mehrere Prozessoren und/oder mehrere Busse aufweist. Darüber hinaus beinhalten die verwendeten Schnittstellen vorzugsweise jeweils getrennte, voll programmierte Mikroprozessoren, mit denen der Prozessor 110 von rechenintensiven Verarbeitungen entlastet werden kann. Für den Fachmann ist jedoch ersichtlich, dass diese Funktionen auch mittels E/A-Adaptern ausgeführt werden können.
-
Mit der Anzeigeschnittstelle 140 wird eine oder mehrere Anzeigen 165 direkt mit dem Computersystem 100 verbunden. Durch diese Anzeigen 165, bei denen es sich um nicht intelligente Terminals oder voll programmierbare Arbeitsplatzrechner (workstations) handeln kann, werden Systemadministratoren und Benutzer in die Lage versetzt, mit dem Computersystem 100 zu kommunizieren. Obwohl die Anzeigeschnittstelle 140 bereitgestellt wird, um den Datenaustausch mit einer oder mehreren Anzeigen 165 zu unterstützen, ist jedoch zu beachten, dass das Computersystem 100 nicht notwendigerweise eine Anzeige 165 erfordert, da alle notwendigen Interaktionen mit Benutzern und anderen Prozessen über die Netzwerkschnittstelle 150, zum Beispiel über Benutzer auf Internet-Client-Basis, erfolgen können.
-
Mit der Netzwerkschnittstelle 150 wird das Computersystem 100 mit anderen Computersystemen oder Arbeitsplatzrechnern 175 über ein Netzwerk 170 verbunden. Die Netzwerkschnittstelle 150 steht umfassend für jede geeignete Art, elektronische Geräte miteinander zu verbinden, ungeachtet der Tatsache, ob das Netzwerk 170 heutige analoge und/oder digitale Techniken umfasst oder die Verbindung über zukünftige Netzwerkmechanismen erfolgt. Darüber hinaus können viele unterschiedliche Netzwerkprotokolle verwendet werden, um ein Netzwerk auszubilden. Bei diesen Protokollen handelt es sich um spezialisierte Computerprogramme, mit denen Computer über ein Netzwerk Daten austauschen können. TCP/IP (Transmission Control Protocol/Internet Protocol – Übertragungssteuerungsprotokoll/Internetprotokoll) stellt ein Beispiel eines geeigneten Netzwerkprotokolls dar.
-
2 veranschaulicht ein Blockschaltbild einer generischen Mehrknoten-Computerumgebung 200, die gelegentlich auch als Cluster bezeichnet wird. Die Mehrknoten-Computerumgebung 200 ist mit drei Knoten 210A, 210B, 210C abgebildet, die mit einem Netzwerk 212 verbunden sind. Beim Netzwerk 212 kann es sich um jedes geeignete Netzwerk zum Verbinden der Knoten 210 für verteiltes Rechnen handeln. Jeder Knoten kann für einen Computer 100 mit einiger oder der gesamten Hardware sowie Speicherkomponenten, wie sie in 1 gezeigt sind, stehen.
-
Alternativ dazu kann jeder Knoten des Computersystems 200 auch für einen einzelnen Knoten eines hochgradig parallelen Computers wie den „Blue Gene®” der IBM® Corporation oder einen Knoten eines Clusters mit skalierbarer Leistung wie einen „Beowulf Cluster” stehen. Mindestens ein Knoten beinhaltet ein Datenbankverwaltungssystem mit einem Sicherheitsmechanismus 128 (1), der Sicherheitsbeschränkungsmetadaten 125 (1) verwendet, um die Datenbanksicherheit in einer Mehrknotenumgebung wie hierin beschrieben und beansprucht zu verwalten.
-
Der hierein beschriebene Sicherheitsmechanismus ist in der Lage, Sicherheit von Daten zwischen Ausführungseinheiten auf einem oder mehreren Knoten der verteilten Computersystemumgebung bereitzustellen. Die Sicherheit ist nicht auf die Sicherheit zwischen Ausführungseinheiten auf demselben Knoten beschränkt, sondern kann ebenso zwischen Ausführungseinheiten auf verschiedenen Knoten desselben Typs, Ausführungseinheiten auf demselben Stamm (trunk) (Satz oder Gruppe von Knoten), Ausführungseinheiten auf derselben physischen oder logischen Maschine oder Maschinen am selben physischen Ort usw. bereitgestellt werden. Der Sicherheitsmechanismus kann auch die Sicherheit für Ausführungseinheiten über ein Internetprotokoll (allgemein als TCP/IP bekannt) durchsetzen. Dies ermöglicht Sicherheit über ein Spektrum von IP-Adressen oder einen Satz von Knoten hinweg auf der Grundlage ihrer IP-Adressen. Der Sicherheitsmechanismus hierin ist in der Lage, Sicherheit in einer verteilten Umgebung bereitzustellen, bei der es sich um ein komplettes Mehrknoten-Computersystem oder einen Teil dieses Systems handeln kann. Beim relevanten Teil des Computersystems kann es sich um eine Kombination von Knoten, Stämmen, Aufgliederungen logischer und physischer Maschinen, ortsbezogene Aufgliederungen und IP-Aufgliederungen eines Computers handeln, wobei es sich bei einer Aufgliederung um eine logische oder physische Unterteilung des Systems handelt. Die in 2 gezeigten Knoten 1 210A und Knoten2 210B können somit als Knoten in einer beliebigen dieser verteilten Umgebungen angesehen werden.
-
3 zeigt eine Tabelle, die eine geeignete Ausbildung von Sicherheitsbeschränkungsmetadaten 126 darstellt, die durch den Sicherheitsmechanismus 128 verwendet werden. Bei den Sicherheitsbeschränkungsmetadaten 126 handelt es sich vorzugsweise um eine Datenbanktabelle, die sich in der Datenbank befindet, wobei sich die Daten jedoch anderenorts befinden können. Die Sicherheitsbeschränkungsmetadaten 126 enthalten eine Anzahl von Datensätzen 310 mit Sicherheitsbeschränkungen für Beziehungen zwischen Ausführungseinheiten und Datenbankdaten. Im gezeigten Beispiel enthalten die Datensätze 310 der Sicherheitsbeschränkungsmetadaten 126 eine Datenbankeinheit 312; der die Datensätze zugeordnet sind, und eine oder mehrere Beschränkungen 314, die eine oder mehrere Ausführungseinheiten (123 1) angeben. Bei den Sicherheitsbeschränkungsmetadaten 126 handelt es sich vorzugsweise um eine Datei von Datensätzen 310, die in einem Speicher oder einer Datenspeichereinheit in oder in Verbindung mit der Datenbank 125 gespeichert sind. Die Datensätze 310 der Sicherheitsbeschränkungsmetadaten 126 können in jedem geeigneten Format ausgebildet sein, um eine logische Bedingung zwischen den relevanten Einheiten in der nachfolgend beschriebenen Weise anzugeben.
-
Es werden nun einige Beispiele für Sicherheitsbeschränkungsmetadaten betrachtet. Die folgenden Beispiele veranschaulichen die gezeigten Sicherheitsbeschränkungsmetadaten 126, die in den Datensätzen 310 von 3 gezeigt sind. Beim ersten Datensatz 316 von Sicherheitsbeschränkungsmetadaten 126 in 3 handelt es sich um eine Datenbankbeschränkung für eine Datenbanktabelle A mit Beschränkungen betreffend AE(X) (Ausführungseinheit X) und AE(Y) (Ausführungseinheit Y). Diese Sicherheitsbeschränkung des Datensatzes 316 wird in 4 weiter veranschaulicht. Die Ausführungseinheit X 410 und die Ausführungseinheit Y 412 stehen jeweils für eine Mehrknotenanwendung oder einen Teil einer Anwendung. Die Ausführungseinheiten in diesem Beispiel befinden sich auf verschiedenen in 2 gezeigten Knoten. Die Ausführungseinheiten 410, 412 versuchen, auf eine Datenbank 416 zuzugreifen, die sich irgendwo im Netzwerkraum (2) befindet, der mit den Knoten verbunden ist, welche die Ausführungseinheiten enthalten. Die Datenbank 416 in diesem Beispiel weist eine Tabelle A 418 und eine Tabelle B 420 auf. Die Sicherheitsbeschränkung im Datensatz 316 weist den Sicherheitsmechanismus 128 (1) an, gleichzeitigen Zugriff auf die Datenbanktabelle A 418 durch AE(X) 410 und AE(Y) 412 zu verhindern.
-
Beim zweiten Datensatz 318 von Sicherheitsbeschränkungsmetadaten 126 in 3 handelt es sich um eine Datenbankbeschränkung ähnlich derjenigen im vorhergehenden Beispiel, die ebenfalls in 4 abgebildet ist. Bei dieser Sicherheitsbeschränkung werden Abfragen der Datenbanktabelle A 418 für alle anderen Ausführungseinheiten beschränkt, wenn AE(X) 410 innerhalb einer festgelegten Zeitdauer „T” auf Tabelle B 420 zugegriffen hat. Eine Variation dieser Sicherheitsbeschränkung könnte den Zugriff auf Tabelle B 420 beschränken, wenn AE(X) 410 innerhalb einer Zeitdauer „T” auf Tabelle B 420 zugegriffen hat.
-
Der Datensatz 320 von Sicherheitsbeschränkungsmetadaten 126 in 3 beschreibt eine weitere in 4 veranschaulichte Sicherheitsbeschränkung. Bei dieser Sicherheitsbeschränkung werden Abfragen auf die Datenbanktabelle A 418 beschränkt, wenn die Anzahl von Ausführungseinheiten, die auf Tabelle A 418 zugreifen, einen Schwellenwert. übersteigt. Beim in 4 gezeigten Beispiel. wird der Zugriff auf Tabelle A beschränkt, wenn mehr als 3 Ausführungseinheiten auf Tabelle A zugreifen. Da 3 Ausführungseinheiten 410, 412 und 414 auf die Tabelle A 418 zugreifen, würde jeder weitere Zugriff auf Tabelle A durch den Sicherheitsmechanismus 128 (1) beschränkt.
-
Der Datensatz 322 von Sicherheitsbeschränkungsmetadaten 126 in 3 beschreibt eine weitere, in 5 näher veranschaulichte Sicherheitsbeschränkung. Bei dieser Sicherheitsbeschränkung werden Abfragen einer bestimmten Zeile (Zeile A1 512) der Datenbanktabelle A 418 beschränkt, wenn AE(X) 510 einen Wert „W1” in einem zu verarbeitenden Tupel aufweist. Es wird zum Beispiel angenommen, dass eine Ausführungseinheit AE(X) 510 ein Tupel mit einigen Attributen eingibt. Diese Attribute werden in die Zeichenketten der Ausführungseinheit gesandt. Diese Attributzeichenketten könnten die Zeichenketten mit den folgenden Bezeichnungen enthalten: MitarbeiterNummer, MitarbeiterFunktion und MitarbeiterDaten. Wenn innerhalb der Zeichenkette „MitarbeiterDaten” der Wert „betroffen” gefunden wird, erlaubt der Sicherheitsmechanismus der Ausführungseinheit AE(X) nicht, bestimmte Datenbankoperationen wie beispielsweise den Zugriff auf Tabelle A, Zeile A1 durchzuführen. In diesem Beispiel werden die Beschränkungen bezüglich einer einzigen Ausführungseinheit beschrieben, die Beschränkung könnte sich jedoch auch allgemeiner auf mehrere Ausführungseinheiten beziehen. Dies bedeutet, dass eine Beschränkung verwendet werden kann, die nicht an eine bestimmte Ausführungseinheit gebunden ist. Bei einer anderen Variation dieses Beispiels kann ein Wert der Abfrage durch die Ausführungseinheit einen bestimmten Benutzer auf einem Knoten angeben. Die Sicherheitsbeschränkungsmetadaten könnten dann angeben, dass bestimmten Benutzern nicht erlaubt wird, auf bestimmte Daten in der Datenbank zuzugreifen.
-
Der Datensatz 324 von Sicherheitsbeschränkungsmetadaten 126 in 3 beschreibt eine weitere, in 6 näher veranschaulichte Sicherheitsbeschränkung. Bei dieser Sicherheitsbeschränkung werden Abfragen einer bestimmten Zeile (Zeile A1 512) der Datenbanktabelle A 418 abhängig vom Status der äußeren Verbindungen mit einer Ressource beschränkt. Wenn in diesem Beispiel eine offene Verbindung über das Dateiübertragungsprotokoll (file transfer protocol (FTP)) 610 von AE(X) 410 mit der Ressource Knoten 2 210B vorliegt, geben die Beschränkungsmetadaten an, den Zugriff auf Datenbanktabelle A, Zeile A1 512 zu beschränken. Bei dem hierin verwendeten Begriff „äußere Verbindung” kann es sich um jedes beliebige Datenübertragungsprotokoll oder jede beliebige Schnittstelle zwischen Knoten und Ausführungseinheiten auf den Knoten handeln. Beim Beispiel des File Transfer Protocol (FTP) handelt es sich um ein verbreitetes Standardnetzwerkprotokoll, mit dem Daten von einem Host zu einem anderen über ein Netzwerk wie das Internet kopiert werden können.
-
Die hierin betrachteten Beziehungen sind nicht auf Beziehungen zwischen zwei Ausführungseinheiten beschränkt, sondern können sich auch auf Beziehungen erstrecken, die eine Vielzahl von Ausführungseinheiten betreffen. Gleichfalls kann sich die Beziehung auf eine Vielzahl von Knoten oder jeden beliebigen logischen oder physischen Teil von Hardware erstrecken. Die Offenbarung und die Ansprüche hierin erstrecken sich ausdrücklich auf weitere Zeitbeziehungen und relevante Teile des vorstehend beschriebenen Systems.
-
Wenn in den vorstehend beschriebenen Beispielen die Ausführungseinheit versuchen würde, eine in den Sicherheitsbeschränkungsmetadaten beschriebene Sicherheitsbeziehung zu verletzen, würde der Sicherheitsmechanismus die versuchte Verletzung entdecken und dann feststellen, wie die Sicherheitsverletzung vermieden werden kann. In den vorstehenden Beispielen verhindert der Sicherheitsmechanismus die Sicherheitsverletzung, indem der Zugriff auf die Daten verzögert oder Werte von Null zurückgegeben werden. Der Sicherheitsmechanismus könnte die Sicherheitsverletzung auch durch Verschieben oder Beseitigen der Ausführungseinheit verhindern. Wenn es sich bei der Sicherheitsverletzung zum Beispiel um eine Datenverletzung handelt, könnte der Sicherheitsmechanismus die Ausführungseinheit möglicherweise mit allen Daten, die der Ausführungseinheit zugeordnet sind, auf einen anderen Knoten verschieben, der die Sicherheitsbeziehung nicht verletzt, oder das System anweisen, dies zu tun. Wenn die Ausführungseinheit nicht verzögert oder verschoben werden kann, um die Sicherheitsverletzung zu überwinden, könnte der Sicherheitsmechanismus die Ausführungseinheit auch beseitigen und eine Sicherheitsverletzung innerhalb des Sicherheitsmechanismus und/oder einem anderen geeigneten Ort innerhalb des Systems protokollieren.
-
7 zeigt ein Verfahren 700 für einen Sicherheitsmechanismus, wie er hierin beansprucht wird. Die Schritte im Verfahren 700 werden vorzugsweise durch den Sicherheitsmechanismus 128 (1) durchgeführt; Teile des Verfahrens können jedoch auch durch andere dem Computersystem zugehörige Software durchgeführt werden. Zuerst wird eine von einer Ausführungseinheit eingehende Abfrage in das System abgerufen (Schritt 710). Als nächstes wird die Abfrage auf Aktionen hin analysiert (parse), die durch die Sicherheitsbeziehungsmetadaten betroffen sind. Es wird festgestellt, ob in den Metadaten Sicherheitsbeschränkungen vorhanden sind, welche die Ausführungseinheit betreffen (Schritt 720). Falls in den Metadaten keine Sicherheitsbeschränkungen vorhanden sind, welche die Ausführungseinheit betreffen (Schritt 730 = nein), wird die Abfrage normal ausgeführt (Schritt 735), die Ergebnisse der Abfrage werden ausgegeben (Schritt 740), und das Verfahren ist beendet. Falls in den Metadaten Sicherheitsbeschränkungen vorhanden sind, welche die Ausführungseinheit betreffen (Schritt 730 = ja), werden beim Cluster Statusinformationen erfragt (Schritt 550), um sie mit den Beschränkungen in den Metadaten zu vergleichen. Falls bestimmt wird, die Abfrage auszuführen, wenn die Statusinformationen die Beschränkungen in den Metadaten nicht verletzen (Schritt 755 = ja), wird die Abfrage ausgeführt (Schritt 760). Als optionaler Schritt wird beim Cluster erneut nach Statusinformationen gefragt und diese mit den Beschränkungen in den Metadaten verglichen, um sicherzustellen, dass die Sicherheitsbeschränkung noch gültig ist (Schritt 765). Wenn der Status noch in Ordnung ist (Schritt 770 = ja), werden die Abfrageergebnisse ausgegeben (Schritt 740), und das Verfahren ist beendet. Ist der Status nicht in Ordnung (Schritt 770 = nein), werden die Ergebnisse auf Null gesetzt (Schritt 775), bevor die Ergebnisse ausgegeben werden (Schritt 740). Falls bestimmt wird, die Abfrage nicht auszuführen (Schritt 755 = nein), wird festgestellt, ob für eine Zeitdauer gewartet oder die Abfrage abgebrochen werden soll (Schritt 780). Wird bestimmt, zu warten (Schritt 780 = ja), wird eine Zeitdauer gewartet 785 und zu Schritt 750 zurückgekehrt. Wird bestimmt, die Abfrage abzubrechen (Schritt 780 = nein), werden die Ergebnisse auf Null gesetzt (Schritt 775) und die Abfrageergebnisse ausgegeben (Schritt 740), und das Verfahren ist beendet.
-
Der Ablaufplan und die Blockschaltbilder in den Figuren veranschaulichen die Architektur, Funktionalität und die Arbeitsweise möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß vielfältigen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaltbildern für ein Modul, ein Segment oder einen Codebereich stehen, das bzw. der eine oder mehrere ausführbare Anweisungen zur Ausführung der angegebenen logischen Funktion oder Funktionen umfasst. Es soll zudem angemerkt werden, dass bei einigen alternativen Ausführungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaltbilder und/oder Abbildungen von Ablaufplänen und Kombinationen von Blöcken in den Blockschaltbildern und/oder Abbildungen von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen ausgeführt werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.
-
Wie für den Fachmann ersichtlich ist, können Aspekte der vorliegenden Erfindung als System, Verfahren, oder Computerprogrammprodukt ausgebildet sein. Dementsprechend können Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardware-Ausführungsform, einer vollständigen Software-Ausführungsform (einschließlich Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform vorliegen, die Software- und Hardware-Aspekte kombiniert, was hierin sämtlich allgemein als „Schaltkreis”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts vorliegen, das in einem oder mehreren computerlesbaren Datenträgern mit darauf befindlichem computerlesbaren Programmcode enthalten sein kann.
-
Jede Kombination aus einem oder mehreren computerlesbaren Datenträgern kann verwendet werden. Bei dem computerlesbaren Datenträger kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer, Infrarot verwendender oder Halbleiter verwendender Art sowie eine beliebige geeignete Kombination des zuvor Genannten handeln. Zu spezielleren Beispielen für das computerlesbare Speichermedium kann Folgendes gehören (nicht erschöpfende Liste): eine transportable Computerdiskette, eine Festplatte, ein Speicher mit wahlfreiem Zugriff (random access memory (RAM)), ein Nur-Lese-Speicher (read-only memory (ROM)), ein löschbarer programmierbarer Nur-Lese-Speicher (erasable programmable read-only memory EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein transportabler Nur-Lese-Compact-Disk-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des zuvor Genannten. Im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes physisch greifbare Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann. Ein computerlesbares Signalmedium kann ein Ausbreitungsdatensignal beinhalten, das den computerlesbaren Programmcode zum Beispiel in einem Basisband (baseband) oder als Teil eines Trägersignals (carrier wave) enthält. Solch ein Ausbreitungssignal kann in jeder beliebigen einer Vielzahl von Formen vorliegen, wie beispielsweise, jedoch nicht beschränkt auf, elektromagnetische, optische oder jede geeignete Kombination davon. Bei einem computerlesbaren Signalmedium kann es sich um ein beliebiges computerlesbares Medium handeln, das kein computerlesbares Speichermedium ist und das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen übertragen, verbreiten oder transportieren kann. Der in einem computerlesbaren Datenträger enthaltene Programmcode kann mittels eines beliebigen geeigneten Mediums übertragen werden, wie beispielsweise, jedoch nicht beschränkt auf, kabellose, kabelgebundene, Lichtwellenleiterkabel, Hochfrequenz (HF) usw., oder einer beliebigen geeigneten Kombination des zuvor Genannten.
-
Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Erfindung kann in jeder Kombination einer oder mehrerer Programmiersprachen wie beispielsweise einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmlicher verfahrensorientierter Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten (remote) Computer oder vollständig auf einem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk wie beispielsweise ein Nahbereichsnetzwerk (local area network (LAN)) oder ein Weitbereichsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden. Aspekte der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder Blockschaltbildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß den Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Abbildungen der Ablaufpläne und/oder Blockschaltbilder sowie Kombinationen von Blöcken in den Abbildungen der Ablaufpläne und/oder den Blockschaltbildern durch Computerprogrammanweisungen ausgeführt werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaltbildes angegebenen Funktionen/Handlungen erzeugen. Diese Computerprogrammanweisungen können auch in einem computerlesbaren Datenträger gespeichert sein, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anleiten kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Datenträger gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaltbilds angegebenen Funktionen/Handlungen ausführen. Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer ausgeführten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zur Ausführung der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaltbilds angegebenen Funktionen/Handlungen bereitstellen.
-
Wie oben beschrieben, setzt ein Mehrknoten-Sicherheitsmechanismus Sicherheitseinschränkungen durch, die als Sicherheitsbeziehungen in einer Datenbank gespeichert sind, und steuern, wie unterschiedlichen Teilen einer Mehrknotenanwendung (Ausführungseinheiten genannt) die Ausführung erlaubt wird, um Datensicherheit sicherzustellen. Die Offenbarung beschreibt einen Sicherheitsmechanismus, der eine Sicherheitsarchitektur für eine Datenbank in einer verteilten Umgebung bereitstellt.
-
Für den Fachmann ist ersichtlich, dass viele Variationen innerhalb des Umfangs der Ansprüche möglich sind. Obwohl die Beispiele hierin im Hinblick auf die Zeit beschrieben sind, sind diese anderen Arten von Schwellenwerten ausdrücklich als im Umfang der Ansprüche liegend beabsichtigt. Während somit die Offenbarung vorstehend besonders gezeigt und beschrieben ist, ist es für den Fachmann ersichtlich, dass diese und weitere Änderungen an Form und Einzelheiten daran vorgenommen werden können, ohne vom Gedanken und Umfang der Ansprüche abzuweichen.