Datenbanken Online Lexikon TH Köln, Campus Gummersbach
Aktuelle Änderungen - Suchen:

DAC

Das DAC besteht auf definierten Regeln, welche zu einem Subjekt s die möglichen Zugriffsregeln t auf ein Objekt o definieren. Zusätzlich wird über das Prädikat p ein Zugriffsfenster auf die Datenerzeugt. Dies kann zum Beispiel dadurch implementiert werden, das automatisch vom DBMS bestimmte Abfragen an die Where-Clause angehängt wird, so das ein Subjekt niemals die Möglichkeit hat diese zu Ändern. Ein boolscher Wert f gibt an ob das Subjekt dieses Recht an ein zweites Subjekt weitergeben darf.

Daraus ergibt sich folgendes Quintupel an Informationen für ein Zugriffsrecht:

Zugriffsrecht = Quintupel (o, s, t, p f)

  • o – Menge der Objekte, die dieses Recht betrifft
  • s – Menge der Subjekte, die dieses Recht in Anspruch nehmen dürfen
  • t – Menge der Zugriffsrechte (lesen, schreiben, löschen) die dem Subjekt zugewiesen wird
  • p – Zugriffsfenster auf o (schränkt die Menge von Objekten ein)
  • f – Darf die Menge von Subjekten dieses Recht weitergeben

Eine Tabelle mit Zugriffsinformationen könnte beispielsweise so aussehen:

Subjekte/ObjekteTabelle 1Tabelle 3 Spalte 1
Ben. DieterR, W, D, FR
Ben. HelmutR, WR, W, D, F
Prozess XRR, W, D, F
Prozess YR, W, DR, W, D

Wobei R das Recht zum Lesen, W das Recht zum Schreiben, D das Recht zum Löschen und F das Recht bedeutet dieses Recht an weitere Subjekte weiterzugeben.

Das große Problem beim DAC ist es, das im Normalfall das Subjekt, welches die Daten erzeugt hat, auch derjenige ist, welcher die Rechte auf diese Daten definiert und administriert. Im Firmenumfeld wird also der Mitarbeiter, der diese Daten generiert auch dafür zuständig sein, die Rechte für diese Daten zu verwalten, was in vielen Fällen nicht sinnvoll ist.

Dadurch, dass die Vergabe von Rechten nicht an zentraler Stelle durchgeführt wird, ergibt sich zusätzlich das Problem, das nicht klar ersichtlich ist, was passiert, wenn ein Subjekt einem anderen Subjekt ein Recht wieder nimmt. Was passiert, wenn das zweite (jetzt ohne Recht) Subjekt, dieses Recht bereits an ein weiteres Subjekt weitergegeben hatte? Was passiert wenn ein Subjekt s2 welches vom Subjekt s1 ein Recht bekam versucht, s1 dieses Recht zu nehmen? Es ist sehr schwierig bei diesem Rechte-Wirr-Warr die Übersicht zu behalten.

Das DAC wird in SQL durch die Befehle GRANT und REVOKE abgebildet.