Verantwortlich für Initiierung: Leiter IT, IT-Sicherheitsmanagement
Verantwortlich für Umsetzung: Administrator, Anwendungsentwickler
Um den Zugriff auf ein Datenbanksystem besser kontrollieren zu können und um die Performance zu verbessern, ist die Festlegung von Obergrenzen für bestimmte Parameter sinnvoll. Dabei sind vor allem die folgenden Punkte zu beachten:
Festlegung von Obergrenzen für selektierbare Datensätze
Insbesondere wenn große Datenmengen in einer Datenbank abgelegt wurden, sollte eine maximale Anzahl von Datensätzen definiert werden, die im Rahmen eines Datenzugriffs selektiert werden können.
Existieren solche Obergrenzen nicht, so kann ein Benutzer gezielt oder unbeabsichtigt beliebig umfangreiche Selects durchführen. Dies behindert nicht nur den einzelnen Benutzer in seiner Arbeit, sondern führt auch bei allen anderen Benutzern der Datenbank zu langen Wartezeiten. Werden die Datensätze dabei selektiert, um diese zu modifizieren, so sind sie solange für alle anderen Benutzer gesperrt, bis diese Transaktion beendet ist.
Die Obergrenzen müssen im Rahmen der Anwendungen definiert werden, die auf die Datenbank zugreifen. Dabei müssen geeignete Kontrollen bzw. Sperren realisiert werden, die die Einhaltung der Obergrenzen überwachen. Stellt eine Anwendung Suchfunktionalitäten bereit, so sollte die uneingeschränkte Suche generell abgelehnt und die Eingabe von Suchkriterien gefordert werden.
Festlegung von Ressourcenbeschränkungen
Eine weitere Möglichkeit, die von einigen Herstellern angeboten wird, ist die Unterstützung von Ressourcenbeschränkungen in Bezug auf die Benutzung einer Datenbank. So können beispielsweise die Anzahl von Anmeldungen pro Benutzerkennung, der maximale Anspruch auf CPU-Zeit pro Anmeldung, die Gesamtdauer einer Datenbankverbindung, die maximal zulässige inaktive Zeit während einer Anmeldung und vieles mehr definiert werden.
Beispiele:
Mit folgendem Kommando wird in einer Oracle-Datenbank für die Datenbankkennung "Meier" der temporäre Tablespace "Temp" auf 100 MB begrenzt:
ALTER USER Meier TEMPORARY TABLESPACE Temp QUOTA 100M ON Temp;
Mit dem nachfolgenden Befehl wird ein Profile "Tester" erstellt, das die Anzahl der Sessions, die maximale CPU-Zeit pro Session, die maximale Zeit einer Datenbankverbindung und die maximale Leerlaufzeit (IDLE) begrenzt. Dieses Profile kann dann einzelnen Benutzern zugeordnet werden.
CREATE PROFILE Tester LIMIT
SESSIONS PER USER 2,
CPU_PER_SESSION 6000,
IDLE_TIME 30,
CONNECT_TIME 500;
Eine Ingres-Datenbank erlaubt beispielsweise für Benutzer und Gruppen das Setzen von Grenzen für die maximale Ein- und Ausgabe je Abfrage oder für die Anzahl von Sätzen pro Abfrage.
Weiterhin kann auch die Anzahl der Benutzer beschränkt werden, die gleichzeitig auf die Datenbank zugreifen dürfen. Durch deren Begrenzung mittels Parametereinstellungen im DBMS kann gewährleistet werden, daß die maximal zur Verfügung stehende Zahl an Lizenzen für die Datenbank-Software nicht überschritten wird. Außerdem verursachen viele parallel zugreifende Benutzer eine hohe Arbeitslast, dem der Datenbankserver eventuell nicht gewachsen ist, wodurch sich die durchschnittliche Dauer einer Transaktion verlängert. Ist in diesem Fall aus bestimmten Gründen eine Erweiterung der Ressourcen des Datenbanksystems nicht möglich oder nicht gewünscht, schafft hier eine Begrenzung der maximal möglichen parallelen Benutzerzugriffe ebenfalls Abhilfe.
Die diesbezüglichen Anforderungen sollten bereits während der Auswahl einer Datenbank-Standardsoftware geklärt werden, um gegebenenfalls ein Konzept zur Umsetzung der Ressourcenbeschränkungen zu erstellen (siehe M 2.124 Geeignete Auswahl einer Datenbank-Software).
Ergänzende Kontrollfragen:
© Copyright by Bundesamt für Sicherheit in der Informationstechnik 2000