-
Technisches Gebiet
-
Die
vorliegende Erfindung betrifft ein Datenbanksystem mit einer Datenbank
und einem Datenbank-Managementsystem zum Zugriff auf die Datenbank,
welches einen ersten Präprozessor
umfasst, welcher mit dem Datenbank-Managementsystem kommuniziert,
um Abfragen von einer Client-Anwendung zu empfangen.
-
Die
Erfindung bezieht sich ferner auf ein Verfahren zum Zugreifen auf
eine Datenbank mit einem solchen System.
-
Technischer Hintergrund
-
Werden
Verschlüsselungen
in einer Datenbankumgebung, z. B. in Verbindung mit einer Serveranwendung,
verwendet, so kann die Verschlüsselung/Entschlüsselung
seitens der Datenbank oder seitens der Anwendung durchgeführt werden.
Beide Alternativen besitzen ihre Vor- und Nachteile.
-
Gemäß der ersten
Alternative werden die Daten verschlüsselt, sobald sie in der Datenbank
gespeichert werden. Die Verschlüsselung
wird im Allgemeinen mittels eines Datenbank-Prozeduraufrufes ("Database Procedure
Call") ausgeführt. Einige
Anbieter unterstützten
begrenzte Verschlüsse lungsmöglichkeiten
mittels Datenbank-Erweiterungspacks (Add-ons). Andere Anbieter bieten
lediglich "Alles-oder-nichts"-Lösungen zur
Verschlüsselung
an, d. h. entweder die gesamte Datenbank ist verschlüsselt oder
gar nichts.
-
Das
stärkste
Argument für
die Verschlüsselung
von Daten innerhalb des Datenbank-Managementsystems (DBMS) besteht
darin, dass viele Anwendungen von der Verschlüsselung unbeeinflusst sind,
d. h. die DBMS-basierte Verschlüsselung
kann ohne eine Vornahme von größeren Veränderungen
in Vorgängerversionen
der Anwendungen, E-Commerce-Anwendungen etc. durchgeführt werden.
Indes erfordert diese Lösung
einen Einsatz von verschlüsselter
Kommunikation zwischen der Datenbank und den Anwendungen, wenn die
Daten während
interner Übertragungen
(Transaktionen) hinsichtlich einer Zugänglichkeit als gefährdet erachtet
werden. Da sämtliche
Daten, welche in die Datenbank eingegeben oder aus dieser ausgegeben
werden, entschlüsselt werden,
werden die Daten andernfalls als Klartext übermittelt.
-
Ein
inhärentes
Gefahrenpotenzial der DBMS-basierten Verschlüsselung besteht überdies darin,
dass der zur Verschlüsselung
der Daten verwendete Schlüssel
mit hoher Wahrscheinlichkeit durch übliche Zugriffskontrolle geschützt in einer
Datenbanktabelle im Innern der Datenbank gespeichert wird. Häufig besitzen
die Nutzer, welche Zugriffsrechte auf die verschlüsselten
Daten besitzen dürfen, auch
Zugriffsrechte auf den Verschlüsselungsschlüssel. Dies
kann zu einem Gefährdungspotenzial
für die Sicherheit
führen,
weil der verschlüsselte
Text nicht von den Mitteln zu seiner Entschlüsselung getrennt ist.
-
Ein
weiterer Hauptnachteil im Zusammenhang mit DBMS-Verschlüsselungswerkzeugen stellt die
zusätzliche
Verarbeitungslast dar. Da sowohl die Verschlüsselung als auch die Entschlüsselung
in der Datenbank durchgeführt
werden, wird das DBMS zur Durchführung
zusätzlicher
Prozeduren abgefragt – nicht
nur im Falle einer Speicherung von Daten, sondern jedes Mal, wenn
hierauf zugegriffen wird. Eine Verwendung von schnelleren Datenbankindizes
vermag dieses Problem zu vermindern.
-
Gemäß der zweiten
Alternative werden die Daten in einer Anwendungsstufe verschlüsselt/entschlüsselt. Eine
Verlagerung der Verschlüsselung
hin zu den Anwendungen, welche die Daten erzeugen, erhöht die Sicherheit.
-
Dies
erfordert jedoch Änderungen
des Quellcodes in den Stufen aller beteiligter Anwendungen sowie
Werkzeuge zur Handhabung der Verschlüsselung/Entschlüsselung.
Ferner werden einige der gegenwärtigen
Datenbankoperationen sowie eine gemeinsame Benutzung der Daten zwischen
den Anwendungen (Daten-Sharing) unterdrückt. Hierdurch erweist sich
diese Alternative als ungeeignet für eine großangelegte Implementierung.
-
Die
dezentrale Verschlüsselung
erzeugt darüber
hinaus eine insgesamt erhöhte
Datenkommunikation sowie eine erhöhte Serververwaltung.
-
Die
US 2004/059912 A1 beschreibt
einen EDM-Server, welcher eine EDM-Datenbank steuert. Ein EDM-Client
stellt ein Arbeitsplatzsystem mit einer Schnittstelle mit dem EDM-Server zur Verfügung, so dass
er einem Nutzer an dem Arbeitsplatzsystem den Zugriff auf die EDM-Datenbank
ermög licht.
Ein Krypto-Server ist funktionell zwischen einer Anwendung und dem
EDM-Client angeordnet und fängt
I/O-Abfragen durch die Anwendung ab bzw. ein.
-
Die
WO 00/69112 A1 beschreibt
ein Datenbank-Managementsystem, welches Abfragen entgegennimmt und
auf solche Abfragen mit Daten aus einer Datenbank antwortet. Das
DBMS umfasst einen I/O-Bereich, welcher die Abfragen und Antworten
behandelt. Der I/O-Bereich behandelt ferner den Prozess einer Weitergabe
der Daten an eine Verschlüsselung/Entschlüsselung.
-
Zusammenfassung der Erfindung
-
Ein
Ziel der vorliegenden Erfindung besteht darin, einigen der vorgenannten
Probleme zu begegnen und ein Datenbank-Verschlüsselungssystem vorzuschlagen,
welches einen ausgewogenen und optimierten Betrieb ermöglicht.
-
Ein
weiteres Ziel der Erfindung besteht darin, eine End-2-End-Verschlüsselung
für ausgewählte Bereiche
der Datenbank vorzuschlagen.
-
Diese
und weitere Ziele werden mit einem Datenbanksystem sowie mit einem
Verfahren zum Zugreifen auf eine Datenbank gemäß den beigefügten Ansprüchen erreicht.
-
Gemäß einem
Aspekt der Erfindung werden diese Ziele bei einem System der eingangs
genannten Art erreicht, welches ferner einen zweiten Präprozessor,
welcher funktionell zwischen der Client-Anwendung und dem ersten
Präprozessor
vorgesehen ist, um für
eine Verschlüsselung/Entschlüsselung
von Daten zu sorgen, sowie einen Dispatcher umfasst, wel cher zur
Unterteilung einer Abfrage in Teilabfragen und zur Übermittlung
einer jeden Teilabfrage entsprechend einer ausgewählten Verschlüsselungsstufe
an den ersten oder zweiten Präprozessor
ausgebildet ist.
-
Der
zweite Präprozessor
ermöglicht
einen dynamischen Abgleich der Verschlüsselung außerhalb und innerhalb des Datenbanksystems
selbst. Der Präprozessor
lagert einige Verarbeitungsvorgänge
der Verschlüsselung
an die Anwendungen aus. Dies weist zwei Vorteile auf. Einerseits
wird die Rechenüberlast
der Kryptographie zwischen dem DBMA und den Anwendungen ausgeglichen.
Andererseits – was
möglicherweise
von noch größerer Bedeutung
ist – wird
eine weitere Trennung des Kryptosystems in Verbindung mit einem
Verfahren zur Aufnahme sämtlicher
erforderlicher Datenbankabläufe ermöglicht (einschließlich JOIN-Operationen,
gespeicherten Prozeduren etc.).
-
Es
ist wichtig darauf hinzuweisen, dass die Datenbank selbst nicht
in die beschriebene Verschlüsselung/Entschlüsselung
involviert ist. Die an die Datenbank von dem zweiten Präprozessor
weitergeleiteten Abfragen stellen offene Abfragen dar, d. h. die
Datenbank behandelt sie als gänzlich
unverschlüsselt.
Die gesamte Verschlüsselung
liegt in dem zweiten Präprozessor
und stellt sicher, dass einige Tabellen in der Datenbank nur verschlüsselte Daten enthalten.
-
Der
Verschlüsselungsprozess
in dem zweiten Präprozessor
kann Verschlüsselungsschlüssel verwenden,
welche nicht in Datenbank- oder Anwendungsprozessen exponiert sind.
-
Darüber hinaus
können
Administratorfunktionen von Datenbank-Administratorfunktionen und
von Anwendungs-Administratorfunktionen
getrennt werden, da der Präprozessorprozess
Prozesse und Daten verwendet, welche von den Informationen getrennt
sind, die in Datenbank- und Anwendungsprozessen exponiert sind.
-
Der
erfindungsgemäße Präprozessor
sorgt folglich sowohl für
eine Verschlüsselung
als auch für eine
Entschlüsselung
jeglicher Bereiche der Datenbank, auf welche zugegriffen wird. Dies
stellt eine wertvolle Eigenschaft zur Verminderung der Last einer
verschlüsselten
Datenbank dar, welche aber auch genutzt werden kann, um für eine Verschlüsselung/Entschlüsselung
eines Datenbanksystems zu sorgen, welches überhaupt nicht an eine Unterstützung einer
solchen Verschlüsselung/Entschlüsselung
angepasst ist. Als solche liefert diese Ausführungsform der Erfindung ein
einfach implementierbares Verschlüsselungs-/Entschlüsselungssystem
für eine
beliebige Datenbank. Die Verschlüsselung
kann einer großen
Anzahl an Anwendungsservern zugeteilt und kann die geringere Anzahl
an Datenbankservern entsprechend entlastet werden.
-
Die
Entscheidung, welche Abfragen verschlüsselt/entschlüsselt werden
sollen, kann von einer Strategie (Policy) verwaltet werden, welche
dem Präprozessor
z. B. über
ein Schlüsselverwaltungssystem
zugänglich
ist. In Abhängigkeit
von dieser Strategie kann die Menge der von dem Präprozessor durchgeführten Entschlüsselung
variieren. Das erfindungsgemäße System
ist folglich auf einfache Weise skalierbar, um die Verschlüsselung/Entschlüsselung von
Abfragen von vielen verschiedenen Anwendungen zu behandeln. Da der
Präprozessor
mit verschiedenen DB-Servern verbunden sein kann, ist die Lösung ferner
unter Einschluss von verschiedenen Datenbanken skalierbar.
-
Die
Erfindung ist nicht auf zwei Präprozessoren
beschränkt,
sondern kann auf eine beliebige Anzahl an Präprozessoren erweitert werden.
-
Der
zweite Präprozessor
ist vorzugsweise an ein Abfangen einer Abfrage von der Anwendung
sowie an ein Parsen (Analysieren) dieser Abfrage, bevor sie an den
Dispatcher weitergeleitet wird, angepasst.
-
In
bevorzugter Ausführung
umfasst der zweite Präprozessor
Mittel zum Parsen einer Abfrage, welche einer vorherbestimmten Teilmenge
an Abfragen zugehörig
ist. Dies macht es dem Präprozessor möglich, die
abgefangene Abfrage zu evaluieren, wobei die Last des Proxys vermindert
wird, während
die Effizienz der Verschlüsselung/Entschlüsselung
verbessert wird.
-
In
diesem Fall kann das System ferner Mittel zum Abändern der erkannten Abfrage
umfassen, um verschlüsselte
Informationen von der Datenbank anzufordern und die abgeänderte Abfrage
an die Datenbank weiterzuleiten.
-
Gemäß einer
bevorzugten Ausführungsform ist
vorgesehen, dass das Mittel zum Erkennen einer DB-Abfrage zum Erkennen
einer Teilmenge der Standardabfragesprache (SQL, Standard Query
Language) ausgebildet ist. Die Abänderung kann dann beispielsweise
einen Austausch des Datenbanktabellennamens umfassen, wobei angezeigt
wird, dass ein verschlüsseltes
Ergebnis abgefragt wird.
-
Sowohl
der erste Präprozessor
als auch der zweite Präprozessor
können
in einem Datenbank-Managementsystem implementiert sein. Alternativ
kann der zweite Präprozessor
in einem Zwischenserver implementiert sein, welcher zwischen der
Anwendung und dem Datenbank-Managementsystem angeordnet ist. Der
Zwischenserver kann ein Proxy-Server sein, wobei zwischen dem Client
und dem Zwischenserver vorzugsweise eine SSL-Leitung vorgesehen
ist.
-
Kurze Beschreibung der Zeichnungen
-
Nachstehend
sind diese sowie weitere Aspekte der vorliegenden Erfindung anhand
von gegenwärtig
bevorzugten Ausführungsformen
unter Bezugnahme auf die beigefügten
Zeichnungen näher
erläutert.
Dabei zeigen:
-
1 ein
schematisches Blockschaltbild eines Datenbanksystems mit einem erfindungsgemäßen Präprozessor;
und
-
2 ein
Fließbild
einer Ausführungsform eines
erfindungsgemäßen Verfahrens,
welches zur Implementierung in dem System gemäß 1 geeignet
ist.
-
Detaillierte Beschreibung
-
1 zeigt
eine Datenbanksystemumgebung, in welcher die Erfindung implementiert
worden ist. Die beiden strichlinierten Umrisse 1 und 2 stellen jeweils
eine Clientseite und eine Serverseite dar. Die Clientseite 1 umfasst
eine Clientanwendung 3, während die Serverseite 2 ein
Datenbank-Managementsystem 6 einschließlich eines DB-Servers (z.
B. ein Secure-DataTM von Protegrity Inc.)
sowie ei ne Datenbank 7 umfasst. Die Serverseite 2 umfasst
des Weiteren ein Schlüsselverwaltungssystem 8 einschließlich beispielsweise
eines Sicherheitssystems (SS) (z. B. Secure.ServerTM von
Protegrity Inc.), eines Sicherheitsadministrationssystems (SAS)
(z. B. (z. B. Secure.ManagerTM von Protegrity
Inc.) und einer Datensicherheitserweiterung (Data Security Extension, DSE),
z. B. eines Typs, wie er ebenfalls von Protegrity Inc. erhältlich ist.
Das SAS wird von dem Administrator genutzt, um eine Policy-Datenbank 11 zu
verwalten, auf welche von dem Schlüsselverwaltungssystem 8 aus
zugegriffen werden kann, um festzustellen, welche Aktionen (z. B.
Lesen oder Schreiben in bestimmte(n) Tabellen der Datenbank 7)
einem individuellen Nutzer erlaubt sind.
-
Das
Datenbanksystem umfasst ferner einen ersten, auch als Back-End-Präprozessor
bezeichneten Präprozessor 12,
welcher zum Empfangen von Abfragen von der Anwendung 3 ausgebildet
ist. Der Abfrageprozessor kommuniziert mit dem DB-Server 6 und
ist zum Zugreifen auf Informationen in der Datenbank ausgebildet.
Ist die Datenbank 7 verschlüsselt, so ist der Back-End-Präprozessor
zum Behandeln von Verschlüsselungen/Entschlüsselungen
ausgebildet.
-
Zwischen
der Anwendung 3 und dem DB-Server ist darüber hinaus
ein auch als Front-End-Präprozessor
bezeichneter, zweiter Präprozessor 14 angeordnet.
Dieser Präprozessor
ist zum Abfangen einer beliebigen Abfrage ausgebildet, welche von
der Anwendung 3 an den Back-End-Präprozessor 12 übermittelt
worden ist. Der Front-End-Präprozessor 14 ist
vorzugsweise zum Erkennen einer Teilmenge der verwendeten Abfragesprache,
beispielsweise SQL, ausgebildet. Eine solche erkannte Teilmenge
kann einfache Abfragen, wie "Wähle das
Alter der Person" und "Gebe Personendaten
ein ('John', 'Smith', 34)", umfassen. Der Front-End-Präprozessor 14 ist
ferner zur Behandlung von Verschlüsselung/Entschlüsselung
ausgebildet, wodurch eine alternative Methode zur Verfügung steht,
um eine Verschlüsselung
der Datenbankinformationen zu ermöglichen.
-
Mit
den beiden Präprozessoren 12, 14 sowie mit
dem Schlüsselverwaltungssystem 8 ist
ein Dispatcher 16 verbunden, welcher zum Empfangen einer
beliebigen, von dem Front-End-Präprozessor
abgefangenen Abfrage ausgebildet ist, wobei er ferner zum Auswählen, welcher
Präprozessor
die Kommunikation mit der Datenbank 7 behandeln soll, auf
der Basis der Informationen gemäß der Policy-DB 11 ausgebildet
ist. Beim Treffen dieser Auswahl wird darüber hinaus festgelegt, welcher
Präprozessor
die Verschlüsselung/Entschlüsselung
behandeln soll.
-
Der
zweite Präprozessor 14 kann
als ein separater Prozess in dem Datenbanksystem implementiert sein,
oder er ist als ein Zwischenserver zwischen dem Client und dem Server,
beispielsweise als ein Proxy-Server, implementiert. Die gesamte
Serverseite 2 mit ihren verschiedenen Komponenten kann
in eine einzige Hardwareeinheit integriert oder unter verschiedenen
Einheiten verteilt vorgesehen sein.
-
Nachstehend
ist die Funktion des Systems gemäß 1 unter
Bezugnahme auf 2 näher erläutert.
-
In
einem Schritt S1 fängt
der Front-End-Präprozessor 14 zunächst eine
von der Clientanwendung 3 an die Datenbank 7 übermittelte
Abfrage ab und parst diese Abfrage (sofern dies möglich ist).
Ist das Parsen erfolgreich (Schritt S2), so wird die Abfrage an
den Dispatcher übermittelt
(Schritt S3). Im Falle des dargestellten Ausführungsbeispiels mit nur zwei
Präprozessoren
werden nicht erkannte Abfragen an den Back-End-Präprozessor 12 weitergeleitet (Schritt
S4). Im allgemeinen Fall einer Mehrzahl an Präprozessoren entscheidet der
Dispatcher, wohin eine Abfrage übermittelt
werden soll, welche von dem Front-End-Präprozessor nicht erkannt worden
ist.
-
Der
Dispatcher führt
die Übermittlung
der Verschlüsselung
aus (Schritt S5), d. h. die Abfrage wird in Teilabfragen unterteilt,
welche sich auf verschiedene Bereiche, z. B. auf verschiedene Spalten, der
Datenbank beziehen. Dabei ist es möglich, dass sich verschiedene
Teilabfragen auf Bereiche der Datenbank 7 mit unterschiedlichen
Sicherheits- und/oder
Verschlüsselungsstufen
beziehen.
-
Der
Dispatcher behandelt sodann die Authentifizierung und Autorisierung
des Nutzers (Schritt S6), indem auf das Schlüsselverwaltungssystem 8 zugegriffen
wird. Nach der Authentifizierung und Autorisierung übermittelt
der Dispatcher eine jede Teilabfrage an denjenigen Präprozessor 12, 14 (Schritt S7),
welcher von dem Schlüsselverwaltungssystem angezeigt
wird, um die Verschlüsselung
dieses speziellen Bereiches der Datenbank vorzunehmen.
-
Teilabfragen,
welche an den Back-End-Präprozessor 12 übermittelt
worden sind, werden mit einer beliebigen Verschlüsselung behandelt, welche in dem
Datenbanksystem 6 implementiert ist. Teilabfragen, welche
an den Front-End-Präprozessor 14 übermittelt
worden sind, werden jedoch mit einer zusätzlichen Verschlüsselung
behandelt, wodurch eine erhöhte
Verschlüsselungsstufe
für ausgewählte Bereiche
der Datenbank 7 ermöglicht
wird. Wie oben erwähnt,
kann eine solche zusätzliche
Verschlüsselung einem
bereits existierenden Datenbanksystem hinzugefügt werden, indem der Front-End-Präprozessor 14 und
der Dispatcher 16 zur Verfügung gestellt werden.
-
Ein
Falle eines Einfügevorgangs
("insert") verschlüsselt der
Front-End-Präprozessor 14 die
Daten in der Abfrage (Schritt S10), ändert die Abfrage ab (Schritt
S11), um die verschlüsselten
Daten einzuschließen,
und übermittelt
die Abfrage dann an die Datenbank, so dass die Tabelle mit den verschlüsselten
Daten aktualisiert wird (Schritt S12).
-
Im
Falle eines Abfragevorgangs ("request") kann der Front-End-Präprozessor 14 die
Abfrage abändern
und eine ab geänderte
Abfrage an die Datenbank 7 übermitteln (Schritt S13). Die
abgefragte Information wird aus der Datenbank 7 entnommen (Schritt
S14) und entschlüsselt
(Schritt S14). Das entschlüsselte
Ergebnis wird sodann an die Clientanwendung 3 zurück übermittelt
(Schritt S16).
-
Wird
beispielsweise die Abfrage "Wähle das Alter
der Person" erkannt
und wird von dem Dispatcher festgestellt, dass eine verschlüsselte Tabelle
involviert ist, so kann die Abfrage in "Wähle
das Alter der Person_verschl" abgeändert werden,
was impliziert, dass Daten aus einer verschlüsselten Tabelle in der Datenbank
ausgewählt
werden sollen. Wenn die verschlüsselten
Daten von der Datenbank 7 empfangen werden, so entschlüsselt der
Präprozessor 14 diese
Daten, bevor sie über
die Sicherheitsleitung an die Clientanwendung 3 übermittelt
werden.
-
In
gleicher Weise kann "Gebe
Personendaten ein 'John', 'Smith', 34" abgeändert werden
in "Gebe Personendaten_verschl
ein", was impliziert,
dass Daten in eine verschlüsselte
Tabelle eingegeben werden sollen. Zugleich führt der Präprozessor 14 die Verschlüsselung
der Datenfelder in der Abfrage durch, so dass die weitergeleitete
Abfrage ähnlich wie "Gebe Personendaten_verschl
ein 'xxxxx' 'xxxxx' xx" aussieht.
Diese Abfrage stellt sicher, dass verschlüsselte Daten in die Datenbank
eingegeben werden, ohne eine jegliche Verschlüsselung des DBMS 6 zu
erfordern.
-
Aus
den vorstehenden Ausführungen
wird klar, dass der Front-End-Präprozessor 14 die
gesamte Verschlüsselung/Entschlüsselung
in Bezug auf ausgewählte
Tabellen behandelt. Aus diesem Grund sei darauf hingewiesen, dass
in einem Fall, in welchem die Datenbank selbst nicht an die Behandlung einer
Verschlüsselung
angepasst ist, die Erfindung als solche eine verschlüsselte Schnittstelle
mit der Datenbank erzeugen kann, um eine Verschlüsselung/Entschlüsselung
von bestimmten Tabellen zu ermöglichen.
Welche Tabellen verschlüsselt
werden sollen, wird durch den Inhalt der Policy-Datenbank 11 geregelt.
-
Das
erfindungsgemäße Verfahren
unterscheidet sich von herkömmlichen
Verfahren in der Art und Weise der Kommunikation mit dem DB-Server 6. Im
ersten Fall (Abfrage wird nicht erkannt oder Tabelle wird nicht
ausgewählt,
um durch das Modul 12 verschlüsselt zu werden) muss jegliche
Verschlüsselung/Entschlüsselung
sowie Authentifizierung innerhalb des DB-Servers 6 durchgeführt werden,
während
im zweiten Fall (Abfrage wird erkannt und die Tabelle wird ausgewählt, um
durch das Modul 12 verschlüsselt/entschlüsselt zu
werden) die Verschlüsselung/Entschlüsselung
sowie die Au thentifizierung außerhalb des DB-Servers 6 durchgeführt wird,
wodurch die Verifikation der Authentifizierung erleichtert wird,
bevor eine Verschlüsselung/Entschlüsselung der
speziellen geschützten
Daten durchgeführt
wird.
-
Durch
das Festlegen der Teilmenge von Abfragen, welche von dem Präprozessor 14 erkannt werden,
sowie durch das Auswählen
einer Anzahl an Tabellen in der Datenbank, welche in ein Profil
in der Policy-Datenbank eingeschlossen werden sollen, ist es dem
Nutzer möglich
zu entscheiden, in welchem Ausmaß eine Authentifizierung sowie
eine Verschlüsselung/Entschlüsselung
in dem Präprozessor 14 stattfinden
soll.
-
Der
Präprozessor 14 ist
vorzugsweise eine Erweiterung (Add-on) für eine existierende Datenbank,
wobei er dem Nutzer ein Höchstmaß an Flexibilität bietet.
-
der
Präprozessor 14 muss
nicht irgend welche Syntaxfehler behandeln, da jegliche nicht erkannte
Abfrage (einschließlich
fehlerhafter Abfragen) einfach an das DBMA 6 weitergeleitet
wird (Schritt S4 in 2).
-
Dadurch
dass nur einfache Abfragen in die Teilmenge eingeschlossen werden,
ist eine Ausführungsform
der Erfindung sehr einfach und mit nur geringen Kosten implementierbar.
JOIN-Operationen müssen
nicht in dem Präprozessor
behandelt werden und vollständige
Tabellen müssen
nicht in den Präprozessor
geladen werden, um Berechnungen durchzuführen. Da in der Regel ein großer Anteil
der begehrten Abfragen einfache Abfragen sind, vermag eine solche
Implementierung mit geringer Komplexität einer Mehrzahl an Nutzern
eine zufriedenstellende Leistungsfähigkeit bieten.
-
Indes
besteht kein technischer Grund, die gesamte SQL-Sprache nicht in
die Teilmenge einzuschließen,
um eine effektive Festlegung der Tabellenauswahl in der Policy-Datenbank 11 dahingehend
zu ermöglichen,
welche Tabellen in dem Präprozessor 5 verschlüsselt/entschlüsselt werden
sollen.
-
Der
Präprozessor 14 kann
eine SSL-Verschlüsselung
(Secure Socket Layer) mit starker Authentifizierung unterstützen, um
eine SSL-Verbindung zwischen dem Client und dem Server zu ermöglichen.
Das für
die Authentifizierung verwendete Zertifikat kann mit dem erfassten
Datenbanknutzer abgeglichen werden, um für eine starke Authentifizierung
zu sorgen. In dem Fall, in welchem der Präprozessor 14 in demselben
Prozess wie das DBMS 6 beinhaltet ist, besitzt das DBMS
folglich die gesamte Kontrolle über
den Authentifizierungsvorgang. Indes ist es auch möglich, das
DBMS 6 und den Präprozessor 14 getrennt
voneinander zu implementieren, z. B. wenn der Präprozessor 14 als ein
Zwischenserver implementiert ist.
-
Dem
Fachmann ist offensichtlich, dass eine Vielzahl an Modifikationen
der vorstehend beschriebenen Ausführungsform möglich ist.
Solche Modifikationen können
sich beispielsweise auf Details des DBMS 6 und seiner Komponenten
oder auf Besonderheiten der Client-/Serverschnittstelle beziehen. So
kann z. B. der Präprozessor 14 von
dem Datenbankserver 2 körperlich
getrennt in einer anderen Einheit implementiert sein.
-
Derartige
Modifikationen des Systems weichen jedoch nicht von dem durch die
Ansprüche
bestimmten erfindungsge mäßen Konzept
ab, wobei die vorstehende Beschreibung keine Einschränkung der Ansprüche in einer
solchen Weise beabsichtigt.