Databases Reference
In-Depth Information
Teil ihrer
select
-Rechte an die Rolle
public
übertragen. Es gibt zwei sinnvolle
Möglichkeiten, wie sich das RDBMS verhalten kann:
Die
revoke
-Anweisung wird unbeanstandet ausgeführt. Mit dem Entzug der
select
-Rechte von den Entenhausenern verliert auch die Gruppe
public
die Leserechte an der Tabelle
mitarbeiter_detail
und somit auch an der
View.
Das RDBMS stellt die Verkettung der Rechte fest und weigert sich, die Anwei-
sung auszuführen.
Uns fällt auf, dass die Situation ganz ähnlich wie bei Datensätzen ist, die durch
die referenzielle Integrität aneinander gebunden sind. Für beide Fälle bietet uns
SQL auch für die
revoke
-Anweisung die passenden Optionen:
revoke select on mitarbeiter_detail
from entenhausener cascade
Die Rechte werden kaskadierend entzogen, so dass die View für die Benutzer mit
Rolle
public
unbrauchbar wird. Die Anweisung
revoke select on mitarbeiter_detail
from entenhausener restrict
weist das RDBMS hingegen zurück, da Abhängigkeiten vorhanden sind. Es wird
kein Recht entzogen.
Der SQL-Standard ermöglicht mit
cascade
und
restrict
zwei Möglichkeiten
für die Bearbeitung von Verkettungen. Keine von beiden ist aber als Standard vor-
geschrieben, so dass bei einigen RDBMS kaskadiert und bei anderen verweigert
wird, wenn wir nichts anderes angeben.
Allesklar?
Mit den DCL-Anweisungen
grant
und
revoke
können Benutzern Rechte
verliehen und entzogen werden.
Das RDBMS hat eine eigene Benutzerverwaltung oder nutzt die Verwaltung
des Betriebssystems.
Welche Standardberechtigungen ein Benutzer hat, hängt vom RDBMS ab.
Mit dem Rollenkonzept können Benutzer zu Gruppen zusammengefasst
werden. Rechte können rollenweise verliehen und entzogen werden.
Werden einem Benutzer Rechte mit dem Zusatz
with grant option
verliehen, kann er sie auch an andere Benutzer weitergeben.
Durch den Zusatz
with grant option
sind Ketten von Rechtevergaben
möglich. Durch die Zusätze
restict
und
cascade
kann eingestellt wer-
den, wie beim Entzug der Rechte verfahren wird.