Multi-Level-Security: Mit DB2 einfacher als mit Oracle 10g

25.10.2006
Von Heinz Axel Pürner

Erweiterung des Beispiels

Bisher wurden die Zeilen als Einheit betrachtet und gegen unbefugten Zugriff geschützt. Allerdings sind die Spalten nicht von gleicher Sensitivität: Angaben wie Namen, Telefonnummer oder Abteilungszugehörigkeit könnten allen Firmenangehörigen zugänglich gemacht werden, die Gehaltsdaten aber nur den Sachbearbeitern der Personalabteilung. Das heißt, die Sicherheitseinstufung erfolgt auf Spalten- und Zeilenebene.

In DB2 können mit LBAC auch Spalten durch Vorgabe eines festen Labels geschützt werden. Zum Beispiel können die Spalten Tarifgruppe, Grundgehalt, Zulage und L_Bonus durch Labels für alle Mitarbeiter außerhalb der Personalabteilung gesperrt werden. Greifen nicht berechtigte Mitarbeiter auf diese Spalten zu, so erhalten sie eine Fehlermeldung. Zusätzlich werden die Zeilen noch nach den bisher definierten Kriterien geschützt, so dass weiterhin Manager nur die Mitarbeiter ihrer Abteilung selektieren können.

In Oracle können die Label-Prüfungen auf bestimmte Spalten beschränkt werden, so dass ein Anwender alle Zeilen lesen kann, wenn er nur die ungeschützten Spalten aufruft. Werden die geschützten Spalten selektiert, gelten die Label-Berechtigungen, und es werden nur die Zeilen angezeigt, für die der Benutzer bezogen auf die geschützten Spalten auch berechtigt wurde. Die Realisierung dieser Funktion ist aber nicht mehr mit Hilfe des Policy Managers möglich, sondern muss direkt über die Prozedur-Aufrufe definiert werden. Ein Schutz von Spalten zusätzlich zu dem Schutz auf Zeilenebene ist in OLS nicht vorgesehen, kann aber durch Eigenprogrammierung mit VPD auch realisiert werden.