tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Name des Autors: Alexander Meister Vergleich der Datenbankmanagementsysteme MySQL und Oracle unter der Titel der Arbeit: besonderen Berücksichtigung der gesetzlichen Anforderungen an den Datenschutz Hochschule und Fachhochschule für Oekonomie und Management Neuss Studienort: Inhaltsverzeichnis • 1 Abkürzungsverzeichnis • 2 Abbildungsverzeichnis • 3 Tabellenverzeichnis • 4 Einleitung • 5 Gesetzliche Anforderungen ♦ 5.1 Bundesdatenschutzgesetz ♦ 5.2 Gesetz über die Errichtung des Bundesamtes für Sicherheit in der Informationstechnik • 6 Scoring-Modell ♦ 6.1 Allgemeine Vergleichskriterien ♦ 6.2 Datenschutzrechtliche Vergleichskriterien ♦ 6.3 Entwickelte Scorecard • 7 Datenbankmanagementsysteme im Vergleich ♦ 7.1 MySQL ♦ 7.2 Oracle ♦ 7.3 Vergleich • 8 Fazit • 9 Fußnoten • 10 Anhang A • 11 Literaturverzeichnis 1 Abkürzungsverzeichnis Abkürzung BDSG BSI BSIG DB DBMS FGAC ODBC RFID SSL TDE UAC XML Bedeutung Bundesdatenschutzgesetz Bundesamt für Sicherheit in der Informationstechnik Gesetz über die Errichtung des Bundesamtes für Sicherheit in der Informationstechnik Datenbank Datenbankmanagementsystem Fine Grained Access Control Open Database Connectivity Radio Frequency Identification Secure Socket Layer Transparent Data Encryption User Account Control Extensible Markup Language Inhaltsverzeichnis 1 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung 2 Abbildungsverzeichnis Abb.-Nr. Abbildung 1 Cypherlock zur Zutrittskontrolle 2 Marktanteil Betriebssystemversionen 3 Schematische Darstellung der Kontrollen 3 Tabellenverzeichnis Tab.-Nr. 1 2 3 4 5 Tabelle Beispielvergabe von Berechtigungen Entwickelte Scorecard Privilegienvergabe in MySQL Scorecard MySQL Scorecard Oracle 4 Einleitung Die Öffentlichkeit in der Bundesrepublik Deutschland stellt sich nach den Datenschutzskandalen der letzten Monate die Frage, wie sicher personenbezogene Daten in Unternehmen wirklich sind. Nach der unrechtmäßigen Überprüfung von Mitarbeitern der Deutschen Bahn oder dem Diebstahl von 17 Millionen Kundendaten bei T-Mobile wird in der Öffentlichkeit der Ruf nach mehr Datenschutz laut. Oft wird jedoch in der Öffentlichkeit vernachlässigt, dass bereits zahlreiche Gesetze und Regularien zum personenbezogenen Datenschutz existieren. Ein Datenbankmanagementsystem (DBMS) unterstützt Unternehmen in der Verwaltung einer Datenbank (DB). Im Rahmen dieser Hausarbeit sollen zunächst die gesetzlichen Anforderungen an ein DBMS, welches personenbezogene Daten verwaltet, dargestellt werden. Aus den Ergebnissen soll dann ein Scoring-Modell entwickelt werden, welches insbesondere diese gesetzlichen Anforderungen berücksichtigt. Um einen Gesamtüberblick über das DBMS zu geben, werden auch allgemeine Vergleichskriterien für ein DBMS in das Scoring-Modell mit einbezogen. Im weiteren Verlauf der Hausarbeit sollen das DBMS MySQL und das DBMS Oracle mit Hilfe einer Scorecard bewertet und verglichen werden. Diese DBMS wurden vom Autor aufgrund der häufigen Verwendung in der Praxis ausgewählt[1]. Die Darstellung der Gesetzeslage wird sich aufgrund des Umfangs der Hausarbeit im Wesentlichen auf das Bundesdatenschutzgesetz (BDSG) und das Gesetz über die Errichtung des Bundesamtes für Sicherheit in der Informationstechnik (BSIG) beschränken. Wird in der Hausarbeit von MySQL gesprochen, ist die Version ?MySQL 5.1 Community Server? inklusive der frei verfügbaren Tools (z.B. Workbench) gemeint[2]. Oracle bezeichnet im Rahmen dieser Arbeit die Version ?Oracle Database 10g Release 2 (10.2.0.1)?[3]. Weiterhin wird in der Hausarbeit nicht die Umsetzung der technischen Mechanismen in einem DBMS erläutert, diese werden jeweils nur genannt. 5 Gesetzliche Anforderungen ?IT-Sicherheitsrecht ist kein ?eigenes? Gesetz, sondern die Summe aller Normen, die der Verwirklichung der Ziele der IT-Sicherheit dienen.[4]? Auch für den Datenschutz, als Bestandteil der IT-Sicherheit, gibt es kein 2 Abbildungsverzeichnis 2 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung eigenes, einzelnes Gesetz. Eines haben jedoch alle Gesetze gemein: die Grundlage für den Datenschutz in der Form der Verfassungsartikel: • ?Die Würde des Menschen ist unantastbar. Sie zu achten und zu schützen ist Verpflichtung aller staatlichen Gewalt.[5]? • ?Jeder hat das Recht auf die freie Entfaltung seiner Persönlichkeit, soweit er nicht die Rechte anderer verletzt und nicht gegen die verfassungsmäßige Ordnung oder das Sittengesetz verstößt.[6]? Aus den Verfassungsartikeln lässt sich das so genannte Persönlichkeitsrecht ableiten[7]. Auf der Grundlage dieses Persönlichkeitsrechts existieren das BDSG und das BSIG, welche nachfolgend näher mit ihren Anforderungen an ein DBMS beschrieben werden. 5.1 Bundesdatenschutzgesetz Das Ziel des BDSG wird in §1 Absatz 1 BDSG wie folgt beschrieben: ?Zweck dieses Gesetzes ist es, den einzelnen davor zu schützen, dass er durch den Umgang mit seinen personenbezogenen Daten in seinem Persönlichkeitsrecht beeinträchtigt wird.[8]? Um dieses Ziel zu erreichen, verlangt der Gesetzgeber in §9 BDSG technische und organisatorische Maßnahmen zu treffen, um die Ausführung des Gesetzes zu gewährleisten. Besonders genannt wird die Anlage zu § 9 Satz 1 BDSG, welche konkrete Vorschriften zur automatisierten Verarbeitung von personenbezogenen Daten gibt[9]. In dieser Anlage werden verschiedene Kontrollverfahren vom Gesetzgeber verlangt[10]. Da ein DBMS personenbezogene Daten automatisiert verarbeitet, sind diese Kontrollverfahren auch als gesetzliche Anforderungen an ein DBMS zu verstehen. Abbildung 1: Cypherlock zur Zutrittskontrolle • Zutrittskontrolle Die Zutrittskontrolle soll Unbefugten den Zutritt zu Datenverarbeitungsanlagen verwehren. In der Praxis besteht diese Zutrittskontrolle meist aus physikalischen Hindernissen, welche nur Zutrittsberechtigte passieren können. Als Zutrittskontrolle werden mechanische oder digitale Schließanlagen eingesetzt, in den letzten Jahren aber auch Biometrie oder Radio Frequency Identification (RFID)[11]. Ein DBMS kann naturgemäß keine Zutrittskontrolle gewährleisten. • Zugangskontrolle Die Zugangskontrolle muss sicherstellen, dass das DBMS nur von befugten Personen genutzt werden 5 Gesetzliche Anforderungen 3 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung kann. Die Zugangskontrolle wird in einem DBMS oft über Nutzeraccounts mit zugehörigem Passwort realisiert. • Zugriffskontrolle In der Praxis wird auf die Daten einer DB von vielen Nutzern zugegriffen. Der Gesetzgeber fordert, dass der einzelne Nutzer der DB nur den Ausschnitt der Daten sehen, kopieren, verändern und entfernen kann, für die er eine Zugriffsberechtigung hat. Unzulässig ist es, dass alle Nutzer des DBMS Zugriff auf alle Daten der DB haben. Der Datenbankadministrator ist hier teilweise als Ausnahme anzusehen. In einem DBMS wird die Zugriffskontrolle über Nutzerberechtigungen umgesetzt. Nutzer Nutzer A Nutzer B Nutzer C Berechtigung alle Datensätze lesen Datensätze, welche mit A beginnen lesen und verändern Datensätze, welche mit B beginnen kopieren und entfernen Tabelle 1: Beispielvergabe von Berechtigungen • Weitergabekontrolle Über die Einrichtung einer Weitergabekontrolle muss sichergestellt werden, dass bei der Datenübertragung (bspw. vom Server zum Client) oder der Speicherung von Daten auf Datenträgern (z.B. Festplatten, CDs, DVDs) personenbezogene Daten nicht unbefugt gelesen, kopiert, verändert oder entfernt werden können. Hier kommt der Einsatz von Datenverschlüsselungen in Betracht. Weiter fordert der Gesetzgeber, dass festgestellt werden kann, an welchen Stellen eine Übermittlung von personenbezogenen Daten vorgesehen ist. Dies kann durch ein DBMS nicht realisiert werden, da es lediglich Daten verwaltet, unabhängig von ihrem Typ. Es empfiehlt sich die Verwendung von personenbezogenen Daten in einem DBMS extern gesondert zu dokumentieren. • Eingabekontrolle Bei der Verwendung von einem DBMS muss sichergestellt werden, dass nachträglich überprüft und festgestellt werden kann, wie und von wem Daten eingegeben, verändert oder entfernt worden sind. Für eine Eingabekontrolle ist es erforderlich, dass Zutritt, Zugangs- und Zugriffskontrolle bereits vorhanden sind[12]. • Auftragskontrolle Es muss gewährleistet werden, dass personenbezogene Daten, die in einem Auftrag verarbeitet werden, nur entsprechend den Weisungen des Auftraggebers verarbeitet werden können. • Verfügbarkeitskontrolle Das BDSG fordert, dass personenbezogene Daten gegen zufällige Zerstörung oder Verlust geschützt werden. Diese Anforderung kann z.B. über Backups erfüllt werden. • Trennung des Zwecks Es wird gefordert, dass zu unterschiedlichen Zwecken erhobene Daten getrennt verarbeitet werden können. So sollten z.B. Daten die für Werbezwecke erhoben wurden und Daten für Aufträge getrennt verarbeitet werden. 5.1 Bundesdatenschutzgesetz 4 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung 5.2 Gesetz über die Errichtung des Bundesamtes für Sicherheit in der Informationstechnik Die Tatsache, dass es seit 1991 ein eigenes Bundesamt für Sicherheit in der Informationstechnik gibt, macht den hohen Stellenwert der IT-Sicherheit in Deutschland klar. Aus §2 Absatz 2 BSIG lassen sich die Schutzziele für die IT-Sicherheit ableiten, welche selbstverständlich auch für ein DBMS gelten. ?Sicherheit in der Informationstechnik im Sinne dieses Gesetzes bedeutet die Einhaltung bestimmter Sicherheitsstandards, die die Verfügbarkeit, Unversehrtheit oder Vertraulichkeit von Informationen betreffen, durch Sicherheitsvorkehrungen [...] [13]? • Verfügbarkeit Unter Datenverfüugbarkeit wird verstanden, dass die gespeicherten Daten grundsätzlich jederzeit für Zugriffe verfügbar sind. Bei einem DBMS muss auch die Zeitspanne zwischen Anforderung und Lieferung der Daten beachtet werden. Die Anforderung an die Verfügbarkeit ist ähnlich wie die Anforderung der Verfügbarkeitskontrolle aus dem BDSG zu sehen. • Unversehrtheit (Integrität) Die Integrität in einer DB gilt dann als gewährleistet, wenn keine Änderungen an Daten durchgeführt werden können, welche nicht nachvollziehbar sind. Auch hier sind Überschneidungen mit dem BDSG (Eingabekontrollen) zu erkennen. • Vertraulichkeit Die Vertraulichkeit von Daten ist gewährleistet, wenn diese vor unbefugtem Zugang, Zugriff, Manipulation und Nutzung geschützt sind. Auch hier sind Parallelen zum BDSG erkennbar. Im Gegensatz zum BDSG werden im BSIG keine konkreten Kontrollmechanismen zur Umsetzung genannt. Das Bundesamt für Sicherheit in der Informationstechnik (BSI) gibt jedoch den so genannten IT-Grundschutz-Katalog heraus, welcher Maßnahmen zur IT-Sicherheit beinhaltet[14]. Aus den Maßnahmenkatalogen sollten bei der Verwendung eines DBMS insbesondere die in Anhang A aufgeführten Maßnahmen beachtet werden[15]. 6 Scoring-Modell Um das DBMS MySQL mit dem DBMS Oracle objektiv vergleichen zu können, wird ein Scoring-Modell entwickelt. Zunächst werden allgemein anerkannte Vergleichskriterien für ein DBMS definiert. Aus den gesetzlichen Anforderungen an ein DBMS, die om vorherigen Kapitel herausgearbeitet wurden, werden Kriterien für einen Vergleich abgeleitet und definiert. Für jedes Kriterium ist eine Ausprägung zwischen 1 (schwache Ausprägung) und 9 (starke Ausprägung) möglich. Jedes Kriterium wird in der Gesamtbewertung unterschiedlich gewichtet. Die Gewichtung der allgemeinen Vergleichskriterien beträgt in der Summe 0,3. Um die gesetzlichen Anforderungen an den Datenschutz besonders zu berücksichtigen, werden die datenschutzrechtlichen Vergleichskriterien in der Summe mit 0,7 gewichtet. Mit der entwickelten Scorecard sollen die Ergebnisse der Untersuchung der DBMS messbar gemacht werden. 6.1 Allgemeine Vergleichskriterien 5.2 Gesetz über die Errichtung des Bundesamtes für Sicherheit in der Informationstechnik 5 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Abbildung 2: Marktanteil Betriebssystemversionen • Unterstützte Betriebssysteme Mit diesem Kriterium wird bewertet, ob das DBMS auf den 3 Betriebssystemen mit dem höchsten Marktanteil betrieben werden kann[16]. Es wird nicht bewertet, wie performant der Einsatz auf den einzelnen Betriebssystemen ist. Das Kriterium unterstützte Betriebssysteme wird in der Gesamtbewertung mit 0,05 gewichtet. • Support/Dokumentation Über das Kriterium Support/Dokumentation wird bewertet, wie umfangreich frei verfügbare Dokumentationen sind. Das Kriterium Support/Dokumentation wird in der Gesamtbewertung mit 0,05 gewichtet. • Benutzerfreundlichkeit Über dieses Kriterium werden die verfügbaren Administrationstools für das DBMS bewertet. Bewertet werden Tools des DBMS zur Gestaltung der DB (Tabellen, Beziehungen, View, etc.). Auch graphische Frontends des DBMS fließen in die Bewertung mit ein. Das Kriterium Administrationstools wird mit 0,10 in der Gesamtbewertung gewichtet. • Skalierbarkeit Das Kriterium Skalierbarkeit bewertet, welche Möglichkeiten das DBMS zur Anpassung an Anwendungen bietet. Das Kriterium Skalierbarkeit wird in der Gesamtbewertung mit 0,10 gewichtet. 6.2 Datenschutzrechtliche Vergleichskriterien 6.1 Allgemeine Vergleichskriterien 6 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Abbildung 3: Schematische Darstellung der Kontrollen • Zugangskontrolle Anhand dieses Kriteriums wird bewertet, ob das DBMS Über Zugangskontrollen verfügt. Weiter wird bewertet, wie die Zugangskontrollen umgesetzt sind. Dieses Kriterium wird fÜr die Gesamtbewertung mit 0,10 gewichtet[17]. • Zugriffskontrolle Bewertet wird, wie die Zugriffe von Anwendungen und Nutzern auf die DB reglementiert werden kÖnnen und wie restriktiv die Rechtevergabe gestaltet werden kann. Da die im BDSG geforderte Auftragskontrolle und die geforderte Zwecktrennung fÜr erhobene Daten Über Zugriffskontrollen gestaltet werden können, fließen diese Aspekte in das Bewertungskriterium Zugriffskontrolle mit ein. Die im BSIG geforderte Vertraulichkeit wird aufgrund der starken Parallelen zu der geforderten Zugriffskontrolle aus dem BDSG ebenfalls mit diesem Kriterium bewertet. Das Kriterium Zugriffskontrolle wird, aufgrund des Umfangs und der erhöhten Bedeutung für den Datenschutz, in der Gesamtbewertung mit 0,20 gewichtet[18]. • Weitergabekontrolle Das Kriterium Weitergabekontrolle bewertet, ob der Datenaustausch zwischen der DB und den Anwendungen/Benutzern verschlüsselt werden kann. Weiter wird bewertet, ob die Speicherung der Daten verschlüsselt werden kann. Dieses Kriterium wird für die Gesamtbewertung mit 0,10 gewichtet[19]. • Integrität Über das Kriterium Integrität wird bewertet, ob Mechanismen im DBMS vorhanden sind, die die Integrität der DB gewährleisten. Wichtig ist, dass nachvollziehbar ist wer wann welche Eingaben getätigt hat und ob diese Eingaben gültig waren. Weiter werden Mechanismen bewertet, welche die 6.2 Datenschutzrechtliche Vergleichskriterien 7 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Datenbankkonsistenz sicherstellen sollen. Die geforderte Eingabekontrolle aus dem BDSG und die Integrität aus dem BSIG werden in diesem Kriterium zusammengefasst. Das Kriterium Eingabekontrolle wird in der Gesamtbewertung mit 0,15 gewichtet[20]. • Verfügbarkeit Das Kriterium Verfügbarkeit bewertet, ob das DBMS über Tools verfügt, die Backups von einem bestehenden Datenbestand erstellen können. Weiterhin werden über dieses Kriterium Mechanismen des DBMS bewertet, welche zu einer Steigerung der Performance (Zugriffszeit) beitragen können. Nicht bewertet wird die gesamte Performance des DBMS. Das Kriterium Verfügbarkeit wird in der Gesamtbewertung mit 0,15 gewichtet[21]. 6.3 Entwickelte Scorecard Tabelle 2 zeigt die aufgrund der gewählten Kriterien entwickelte Scorecard. Eingetragen sind die maximal möglichen Werte. Scorecard Gewichtung Allgemeine Vergleichskriterien Unterstützte Betriebssysteme 0,05 Support/Dokumentation 0,05 Benutzerfreundlichkeit 0,10 Skalierbarkeit 0,10 Datenschutzrechtliche Vergleichskriterien Zugangskontrolle 0,10 Zugriffskontrolle 0,20 Weitergabekontrolle 0,10 Integrität 0,15 Verfügbarkeit 0,15 Ausprägung Gewichtete Ausprägung 9 9 9 9 0,45 0,45 0,90 0,90 9 9 9 9 9 0,90 1,80 0,90 1,35 1,35 Ergebnis 9 Ergebnis in % 100 Tabelle 2: Entwickelte Scorecard 7 Datenbankmanagementsysteme im Vergleich 7.1 MySQL MySQL lässt sich unter Windows XP problemlos installieren und betreiben. Unter Windows Vista muss für die Installation die User Account Control (UAC) deaktiviert werden[22]. MySQL lässt sich nach dem offiziellen 6.3 Entwickelte Scorecard 8 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Handbuch unter Mac OS X 10.5 betreiben[23]. Unter http://dev.mysql.com/doc/ befindet sich das Referenzhandbuch. Die Dokumentation steht unter der GNU General Public License. Der Support für den Community Server beschränkt sich auf den Community Support[24]. Einige Features, wie z.B. Update-Benachrichtigung oder die automatisierte Zustellung von technischen Warnhinweisen, sind mit dem Community Server nicht verfügbar[25]. Über die MySQL workbench[26] lässt sich die Datenmodellierung vornehmen. Die GUI-Tools[27] lassen eine einfache Administration von MySQL zu. Grundsätzlich existieren aufgrund der GNU General Public License zahlreiche frei verfügbare Administrations- und Modellierungstools für MySQL. Unter anderem können Java, .NET und C++ Anwendungen MySQL über die entsprechenden "Connectors" ansprechen. Auch Open Database Connectivity (ODBC) oder die Extensible Markup Language (XML) werden von MySQL unterstützt. Die frei verfügbaren Treiber sorgen für die Skalierbarkeit von MySQL. Bei MySQL wird bei jedem Versuch von Nutzern/Anwendungen, sich mit dem Server zu verbinden, zuerst überprüft, ob eine Verbindung mit der DB gestattet ist. Dafür werden die Anmeldedaten mit der in MySQL vorhandenen Tabelle user verglichen. Abgeglichen werden der Host, der User und das Passwort. Ist ein Host oder ein User nicht in der Tabelle user eingetragen oder ist das Passwort falsch, wird die Verbindung zum Server nicht gestattet. MySQL sieht vor, dass jeder Nutzer/jede Anwendung eine eigene ID erhält, für die unterschiedliche Rechte vergeben werden können. Für die Zugriffskontrolle in MySQL spielen die Tabellen user, db, host, tables priv und columns priv aus der DB mysql die Hauptrolle. Über diese Tabellen werden Nutzern/Anwendungen die in MySQL so genannten Privilegien gewährt[28]. Privilegien können u.A. für das Auslesen, Ändern, Löschen und Hinzufügen von Daten gewährt werden. Ob ein Zugriff auf Daten gestattet wird, hängt von den eingeräumten Privilegien ab. Ist ein Privileg nicht gewährt, wird von MySQL überprüft, ob in einer untergeordneten Tabelle das spezifische Recht gewährt ist. Die Rechtevergabe kann also mit MySQL sehr detailliert und restriktiv gestaltet werden. So lässt sich auch eine Auftragskontrolle oder eine Zwecktrennung von Daten vornehmen. Die Gestaltung von Benutzerrollen lässt sich in MySQL nur über Umwege, namentlich wildcards, realisieren[29] [30]. Tabelle Privelegien user globale Privilegien, Anwendung auf alle DB auf dem Server db, host Privilegien auf DB-Ebene tables priv, columns priv Privilegien auf Tabellen und Spaltenebene Tabelle 3: Privilegienvergabe in MySQL Grundsätzlich ist MySQL darauf ausgelegt, dass andere Komponenten in der Infrastruktur die Verschlüsselung von Daten übernehmen, auch wenn es bestimmte Mechanismen bereits mit einer Standardinstallation mitliefert. MySQL unterstützt verschiedene Secure Socket Layer (SSL) Verschlüusselungsmethoden zwischen Server und angebundenen Clients. Ausdrücklich darauf hingewiesen wird im Referenzhandbuch, dass die Verschlüsselung der Daten die Geschwindigkeit des Servers stark beeinträchtigen kann[31]. Explizit genannt werden im Referenzhandbuch OpenSSL[32] und yaSSL[33] zur Anwendung am MySQL Server. Weiter kann MySQL so konfiguriert werden, dass eine Authentifizierung mit X509-Zertifikat[34] vom Client verlangt wird. 7.1 MySQL 9 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung MySQL kann bei jeder Anfrage an die Datenbank überprüfen, ob die Konsistenz der Datenbank bei Ausführung der Anfrage verletzt werden würde. Dazu betrachtet das DBMS jede Anfrage an die Datenbank als Transaktion. Diese Transaktion wird mit timestamp, NutzerID und einigen weiteren Daten in Logfiles gespeichert. Über die Logfiles lässt sich als Nebeneffekt auch nachvollziehen, wer wann welche Eingaben getätigt hat. Ist die Transaktion nach den eingerichteten Regeln zulässig, so wird die Transaktion ausgeführt, ein so genanntes commit. Würde diese Transaktion die Konsistenz der Datenbank verletzen, verweigert MySQL die Ausführung der Transaktion, ein so genanntes rollback. Parallelen Schreibzugriff auf einen Datensatz, der die Konsistenz der Datenbank gefährdet, verhindert MySQL über Locking. Demnach kann z.B. jeweils immer nur ein Nutzer schreibenden Zugriff auf einen Datensatz haben. MySQL bringt mit der Installation einige Möglichkeiten für Backups mit. Die erste ist der Konsolenbefehl mysqldump. Über ihn können gesamte Datenbanken in eine eigene Datei gespeichert werden. Einzelne Tabellen lassen sich über den Befehl backup table sichern. Auch der select into outfile Befehl kommt für eine Datensicherung in Betracht[35]. MySQL unterstützt stored procedures, views und trigger. Die Verwendung von diesen Techniken kann wesentlich zu einer Verringerung der Zugriffszeiten auf Daten führen. Scorecard MySQL Gewichtung Allgemeine Vergleichskriterien Unterstützte Betriebssysteme 0,05 Support/Dokumentation 0,05 Benutzerfreundlichkeit 0,10 Skalierbarkeit 0,10 Datenschutzrechtliche Vergleichskriterien Zugangskontrolle 0,10 Zugriffskontrolle 0,20 Weitergabekontrolle 0,10 Integrität 0,15 Verfügbarkeit 0,15 Ausprägung Gewichtete Ausprägung 9 6 9 9 0,45 0,30 0,90 0,90 9 6 6 9 9 0,90 1,20 0,60 1,35 1,35 Ergebnis 7,95 Ergebnis in % 83,33 Tabelle 4: Scorecard MySQL 7.2 Oracle Oracle lässt sich sowohl unter Windows XP als auch unter Windows Vista installieren und betreiben. Ein Betrieb von Oracle 10g (Release 2) unter Mac OS X 10.5 ist offziell nicht möglich und es wird auch kein Support dafür angeboten. Die Dokumentation ist online unter http://www.oracle.com/pls/db102/homepage verfügbar, jedoch nur in englischer Sprache. Weiter sind online noch zahlreiche Tutorials hinterlegt, welche den Einstieg in Oracle erleichtern sollen. Um Support von Oracle zu beziehen, ist grundsätzlich der Abschluss eines Support-Vertrages nötig. 7.2 Oracle 10 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Eine Installation von Oracle beinhaltet zahlreiche Tools zur Administration. Herzstück ist der so genannte Enterprise Manager. Er bietet eine Web-Oberfläche, über die alle Einstellungen am DBMS vorgenommen werden können. Besonders genannt werden sollten aber auch die zahlreichen Assistenten, welche den Nutzer komfortabel durch einzelne Prozesse leiten. Oracle kann an Java, .NET, C++ Anwendungen angebunden werden. Auch ODBC und XML werden von Oracle standardmäßig unterstützt. Die Skalierbarkeit ist also, teilweise über nachträglich zu installierende Treiber, ausreichend sichergestellt. In Oracle bekommt jeder Nutzer/jede Anwendung eine User-ID zugewiesen. Über diese User-ID und das zugehörige Passwort identifiziert sich der Nutzer/die Anwendung gegenüber dem Server. Die Zugangskontrolle ist in Oracle also ausreichend umgesetzt. Jeder Benutzer/jede Anwendung kann in Oracle objektbezogene Rechte und Systemrechte besitzen. Dem Nutzer/der Anwendung werden, ähnlich wie in MySQL,Rechte zum Auslesen, Ändern, Löschen und Hinzufügen von Daten gewährt. Oracle unterstützt die Rechtevergabe detailiert bis auf Spaltenebene über die Tabelle dba col privs. Hier werden die einzelnen Berechtigungen gewährt. Zusätzlich zu der Rechtevergabe auf User-Ebene unterstützt Oracle auch die Einrichtung von Rollen. Eine Rolle beinhaltet dann immer mehrere Einzelrechte. Ein Nutzer oder eine Anwendung kann immer mehreren Rollen zugeordnet werden. Hierbei ist zu beachten, dass für jede DB, die auf dem Server betrieben wird, eigene Rollen erstellt werden können[36]. Somit lässt sich eine Auftragskontrolle oder eine Zwecktrennung von Daten umsetzen. Ein weiteres Feature bei Oracle ist die so genannte Fine Grained Access Control (FGAC). Hier werden Policies definiert und Benutzern zugeordnet. Über diese Policies lässt sich der Zugriff von einzelnen Nutzern bis auf Zeilen- und Spaltenebene reglementieren. Da die Zugriffskontrolle über Policies in der Datenbank selbst geregelt wird und nicht in Tabellen ausgelagert ist, gilt es als erschwert, die Zugriffskontrolle in Oracle zu umgehen[37]. Oracle ist klar darauf ausgelegt, schon über das DBMS umfangreiche Möglichkeiten zur Verschlüsselung von Daten und zur verschlüsselten Übertragung von Daten zu bieten. Über den so genannten Wallet Manager unterstützt Oracle die Verwendung von SSL-Übertragungen und die Authentifizierung via X509[38]. Mit dem Release 2 hat Oracle die Transparent Data Encryption (TDE) eingeführt. Hiermit können Daten direkt automatisch bei der Speicherung verschlüsselt werden. Beim Auslesen werden die Daten automatisch wieder entschlüsselt. TDE lässt sich auch für Übertragungen im Netzwerk benutzen[39]. Die Schlüssel werden außerhalb des DBMS abgelegt, was die Sicherheit zusätzlich erhöht. Eine weitere Möglichkeit, Daten zu verschlüsseln, bietet Oracle mit dem Package dbms crypto. Hierüber lassen sich Hashes und die Algorithmen MD4, MD5 und SHA-1 zur Verschlüsselung nutzen[40]. Oracle arbeitet zur Sicherung der Konsistenz der DB mit Transaktionen. Abgeschlossene oder offene Transaktionen werden in redo log Dateien gespeichert. Würde die Konsistenz der DB verletzt, wird die verursachende Transaktion über die redo log Dateien identifiziert und rückgängig gemacht (rollback). In so genannten Control Files speichert Oracle Informationen über die Struktur der Datenbank, die bei Bedarf wieder hergestellt werden kann. Oracle unterstützt das Verfahren des Locking, welches den gleichzeitigen schreibenden Zugriff auf Datensätze verhindert. Für Backups bietet Oracle mehrere Methoden an. Eine Möglichkeit ist das Data Pump. Weitere Möglichkeiten Backups einer bestehenden DB zu erstellen, bietet der Oracle Recovery Manager[41]. Oracle unterstützt stored procedures, views und trigger. Scorecard Oracle 7.2 Oracle 11 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Gewichtung Allgemeine Vergleichskriterien Unterstützte Betriebssysteme 0,05 Support/Dokumentation 0,05 Benutzerfreundlichkeit 0,10 Skalierbarkeit 0,10 Datenschutzrechtliche Vergleichskriterien Zugangskontrolle 0,10 Zugriffskontrolle 0,20 Weitergabekontrolle 0,10 Integrität 0,15 Verfügbarkeit 0,15 Ausprägung Gewichtete Ausprägung 6 3 9 7 0,30 0,15 0,90 0,70 9 9 9 9 9 0,90 1,80 0,90 1,35 1,35 Ergebnis 8,35 Ergebnis in % 92,77 Tabelle 5: Scorecard Oracle 7.3 Vergleich Die erreichten Scores von MySQL mit 7,95 und Oracle mit 8,35 sind in etwa gleich. Beide Systeme beinhalten Maßnahmen, welche zur Erfüllung der gesetzlichen Anforderungen beitragen. Keines der beiden Systeme vernachlässigt einen geforderten Teilaspekt der gesetzlichen Forderungen gänzlich. Kleine Unterschiede zwischen MySQL und Oracle sind lediglich in der Umsetzung der Maßnahmen zu sehen. So ist z.B. die Zugriffskontrolle in MySQL auf die Gewährung von Privilegien beschränkt, während Oracle auch rollenbasierte Privilegienvergabe unterstützt. Im Ganzen kann gesagt werden, dass Oracle und MySQL aus datenschutzrechtlicher Sichtweise durchaus vergleichbar sind. 8 Fazit Das DBMS MySQL und das DBMS Oracle unterscheiden sich in den gewichteten Kriterien kaum. Beide DBMS erfüllen die gesetzlichen Anforderungen an den Datenschutz und sind in dieser Hinsicht absolut vergleichbar. Im Verlauf der Hausarbeit hat sich gezeigt, dass die DBMS selbst nicht an erster Stelle für die einleitend genannten Datenschutzskandale verantwortlich sein können. Die Verletzungen der Persönlichkeitsrechte haben offensichtlich andere Ursachen. Dies kann z.B. eine mangelnde Umsetzung der von den DBMS zur Verfügung gestellten Kontrollen sein. Auch andere Aspekte, wie z.B. eine schlechte Zutrittskontrolle, welche über ein DBMS nicht realisiert werden kann, kommen in Betracht. Auch bewusste Verletzungen der Persönlichkeitsrechte sind denkbar. Diese Ursachen könnten das Thema einer weiteren Hausarbeit sein. Abschließend ist festzustellen, dass MySQL und Oracle mit ihren Kontrollmöglichkeiten einen großen Anteil an einem ganzheitlichen IT-Sicheheitskonzept für den Bereich Datenbankmanagement abdecken können. Ein weiterer Teil eines IT-Sicherheitskonzeptes sollte sicherlich durch andere Maßnahmen abgedeckt werden. 7.3 Vergleich 12 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung 9 Fußnoten 1. ? Vgl. Schauer(2009), o.S. 2. ? Download unter: http://dev.mysql.com/downloads/ 3. ? Download unter: http://www.oracle.com/technology/software/products/database/index.html 4. ? Vgl. Hoffmann (2009), o.S. 5. ? Vgl. Art. 1(1) GG 6. ? Vgl. Art. 2 (1) GG 7. ? Vgl. Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (2007), S.11 8. ? Vgl. Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (2007), §1 Abs. 1 BDSG 9. ? Vgl. Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (2007), §9 BDSG 10. ? Vgl. Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (2007), Anlage zu §9 Satz 1 BDSG 11. ? Vgl. Haluschak (2009), o.S. 12. ? Vgl. Kron (o.J.), o.S. 13. ? Vgl. Regierung der Bundesrepublik Deutschland (o.J.), §2 Absatz 2 BSIG 14. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. a), o.S. 15. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. b), o.S. 16. ? Vgl. Net Applications (2009), o.S. 17. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. b), M 2.128 18. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. b), M 2.129, M 2.132, M 4.67 19. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. b), M 4.72 20. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. b), M 2.130, M 2.133, M 4.68 21. ? Vgl. Bundesamt für Sicherheit in der Informationstechnik (o.J. b), M 2.134, M 2.138, M 6.49, M 6.51 22. ? Vgl. Kofler (2008), S.32f 23. ? Vgl. MySQL AB (2006), S.108ff 24. ? Verfügbar unter http://www.mysql.de/support/community_support.html 25. ? Vgl. Sun Microsystems, Inc (o.J. a), o.S. 26. ? Download unter: http://dev.mysql.com/downloads/workbench/5.1.html 27. ? Download unter: http://dev.mysql.com/downloads/gui-tools/5.0.html 28. ? Vgl. Kofler (2005), Kapitel 9 29. ? Vgl. Raymans (2002), S.413 30. ? Vgl. Reese (2002), S.109ff 31. ? Vgl. Sun Microsystems, Inc (o.J. b), o.S. 32. ? Vgl. Sun Microsystems, Inc (o.J. c), o.S. 33. ? Vgl. Sun Microsystems, Inc (o.J. d), o.S. 34. ? Vgl. C.H. Ostfeld SAS (o.J.), o.S. 35. ? Vgl. Zawodny (2004), Kapitel 9 36. ? Vgl. Raymans (2002), S.427 37. ? Vgl. Günther (2007), o.S. 38. ? Vgl. Ahrends (2005), S.399ff 39. ? Vgl. Deutsche Oracle-Anwendergruppe e.V. (2007), S.55ff 40. ? Vgl. Haas (2006), S.145ff 41. ? Vgl. Gschoßmann (2008), Kapitel 2 10 Anhang A Auszug aus Maßnahmenkatalog BSI 9 Fußnoten 13 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung Maßnahmen Organisation M 2.124 M 2.125 M 2.126 M 2.127 M 2.128 M 2.129 M 2.130 M 2.131 M 2.132 M 2.133 M 2.134 M 2.135 M 2.137 M 2.138 Maßnahmen Hardware / Software M 4.67 M 4.68 M 4.69 M 4.70 M 4.71 M 4.72 M 4.73 Maßnahmen Notfallvorsorge M 6.48 M 6.49 M 6.50 M 6.51 Geeignete Auswahl einer Datenbank-Software Installation und Konfiguration einer Datenbank Erstellung eines Datenbanksicherheitskonzeptes Inferenzprävention Zugangskontrolle einer Datenbank Zugriffskontrolle einer Datenbank Gewährleistung der Datenbankintegrität Aufteilung von Administrationstätigkeiten bei Datenbanksystemen Regelung für die Einrichtung von Datenbankbenutzern/-benutzergruppen Kontrolle der Protokolldateien eines Datenbanksystems Richtlinien für Datenbank-Anfragen Gesicherte Datenübernahme in eine Datenbank Beschaffung eines geeigneten Datensicherungssystems Strukturierte Datenhaltung Sperren und Löschen nicht benötigter Datenbank-Accounts Sicherstellung einer konsistenten Datenbankverwaltung Regelmäßiger Sicherheitscheck der Datenbank Durchführung einer Datenbanküberwachung Restriktive Handhabung von Datenbank-Links Datenbank-Verschlüsselung Festlegung von Obergrenzen für selektierbare Datensätze Verhaltensregeln nach Verlust der Datenbankintegrität Datensicherung einer Datenbank Archivierung von Datenbeständen Wiederherstellung einer Datenbank 11 Literaturverzeichnis Monographien Ahrends (2005) Ahrends Johannes / Lenz Dierk / Schwanke Patrick / Unbescheid Günther: Oracle 10g für den D Addison-Wesley München 2005 Deutsche Deutsche Oracle-Anwendergruppe e.V.: DOAG Oracle-Jahrbuch 2007/2008. Praxisleitfaden und Oracle-Anwendergruppe Praxisleitfaden und Partnerkatalog für die Oracle-Welt, Hanser-Verlag 2008 e.V. (2007) Gschoßmann Christine / Langenegger Klaus: Das Oracle Backup und Recovery-Praxisbuch: Für Gschoßmann (2008) Addison-Wesley München 2008 Haas (2006) Haas Frank: Oracle Security in der Praxis: Sicherheit für Ihre Oracle-Datenbank, Hanser Fachbu Kofler (2008) Kofler Michael / Öggl Bernd: PHP 5.3 & MySQL 5.1: Grundlagen, Programmiertechniken, Beis Kofler (2005) Kofler Michael: MySQL 5. Einführung, Programmierung, Referenz, 3.Auflage, Addison-Wesley 10 Anhang A 14 tenbankmanagementsysteme_MySQL_und_Oracle_unter_der_besonderen_Berücksichtigung_des_gesetzlichen_Anforderung MySQL AB (2006) Raymans (2002) Reese (2002) Zawodny (2004) Internet-Quellen Bundesamt für Sicherheit in der Informationstechnik (o.J. a) Bundesamt für Sicherheit in der Informationstechnik (o.J. b) C.H. Ostfeld SAS (o.J.) Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (2007) MySQL AB: Das offizielle MySQL 5-Handbuch: Konfiguration, Administration, Entwicklung u Raymans Heinz-Gerd: Nitty Gritty SQL, Addison-Wesley München 2002 Reese George / Yarger Randy J. / King Tim: MySQL. Einsatz und Programmierung, 2.Auflage, Zawodny Jeremy D. / Balling Derek J.: High Performance MySQL. Optimierung, Datensicherun Bundesamt für Sicherheit in der Informationstechnik (Hrsg.): IT-Grundschutz-Katalog, http://ww Bundesamt für Sicherheit in der Informationstechnik (Hrsg.): IT-Grundschutzkatalog - Maßnahm http://www.bsi.bund.de/gshb/deutsch/download/massnahmen.zip (08.05.2009 18:48) C.H. Ostfeld SAS (Hrsg.): X.509-Zertifikate, http://www.pentaware.com/pw_de/X509.htm (08.0 Der Bundesbeauftragte für den Datenschutz und die Informationsfreiheit (Hrsg.): Bundesdatensc http://www.bfdi.bund.de/cln_027/nn_531948/SharedDocs/Publikationen/Infobroschueren/INFO (14.03.2009, 20:57) Günther Klaus: Oracle Zugriffskontrolle: Fine Grained Access Control (FGAC), Februar 2007, http://www.ordix.de/ORDIXNews/2_2007/Datenbanken/fine_grained_access_control.html (28.0 Haluschak Bernhard: Zutrittskontrolle Serverräume wirkungsvoll vor unbefugtem Zutritt schütze Haluschak (2009) http://www.tecchannel.de/server/hardware/1780627/server_serverraeume_rechenzentrum_zutrit Dr. Hoffann Mathis: IT-Sicherheit - ein Überblick, Veranstaltung des AKIT e.V., 06.07.2006, Hoffmann (2006) http://www.kegom.de/site/fcke_files/File/IT-Sicherheit_Dr.Hoffmann06.07.06.pdf?PHPSESSID Kron Gerhard (Hrsg.): Artikel über Eingabekontrollen, http://www.kronsoft.de/DSGlossar/Gloss Kron (o.J.) 11:54) Net Applications (Hrsg.): Operating System Market Share, http://marketshare.hitslink.com/opera Net Applications (2009) 15:16) Regierung der Regierung der Bundesrepublik Deutschland (Hrsg.): Gesetz über die Errichtung des Bundesamte Bundesrepublik http://www.bsi.bund.de/bsi/bsiges.pdf (08.05.2009, 17:04) Deutschland (o.J.) Dr. Schauer Manfred: Open Source auf der Überholspur, Juni 2006, http://www.joinvision.com/ Schauer (2009) 17:44) Sun Microsystems, Inc Sun Microsystems, Inc (Hrsg.): Was soll ich einsetzen: MySQL Enterprise oder MySQL Comm (o.J. a) http://www.mysql.de/products/which-edition.html (08.05.2009 19:33) Sun Microsystems, Inc Sun Microsystems, Inc (Hrsg.): Verwendung sicherer Verbindungen, http://dev.mysql.com/doc/r (o.J. b) Sun Microsystems, Inc Sun Microsystems, Inc (Hrsg.): Verwendung von SSL-Verbindungen mit OpenSSL, http://dev.m (o.J. c) (08.05.2009 20:41) Sun Microsystems, Inc Sun Microsystems, Inc (Hrsg.): Verwendung von SSL-Verbindungen mit yaSSL, http://dev.mys (o.J. d) (08.05.2009 20:41) Günther (2007) 11 Literaturverzeichnis 15