Privilegienspezifikation (priv_spec)
Eine Privilegienspezifikation (
priv_spec ) definiert eine Rolle bzw. eine Menge von Privilegien für entsprechend angegebene Tabellen.Syntax
<priv_spec> ::= ALL [PRIV[ILEGES]] ON [TABLE] <table_name>,...
| <privilege>,... ON [TABLE] <table_name>,... | <role_name>
Erläuterung
Keine der angegebenen Tabellen darf eine temporäre Basistabelle sein.
Der
Benutzer muß die Berechtigung besitzen, die Privilegien auf den angegebenen Tabellen zu vergeben ( GRANT-Anweisung) bzw. zu widerrufen ( REVOKE-Anweisung). Für Basistabellen besitzt der Eigentümer der Tabelle diese Berechtigung.Bei View-Tabellen (siehe
Tabelle) besitzt auch der Eigentümer nicht immer die Berechtigung, alle Privilegien zu vergeben bzw. zu widerrufen. Welche Privilegien er für eine View-Tabelle vergeben bzw. widerrufen darf, wird vom Datenbanksystem beim Erzeugen der Tabelle festgestellt. Das Resultat hängt vom Typ der Tabelle sowie den Privilegien ab, die der Benutzer auf den in der View-Tabelle selektierten Tabellen besitzt. Der Eigentümer einer Tabelle kann die Privilegien, die er vergeben bzw. widerrufen darf, durch Selektieren der Systemtabelle DOMAIN.PRIVILEGES erfragen.Eine Liste aller Privilegien, die vergeben werden können, finden Sie in
Privileg-Typ.Wenn als Privilegienspezifikation eine Rolle angegeben ist, muß sie existieren und der aktuelle Benutzer muß Eigentümer der Rolle sein.
ALL [PRIV[ILEGES]]
Alle Privilegien, die der Benutzer auf Tabellen vergeben darf, werden an die angegebenen Benutzer, Benutzergruppen und Rollen vergeben (GRANT-Anweisung) bzw. widerrufen (REVOKE-Anweisung).
Wenn ein Benutzer, der nicht Eigentümer der Tabelle ist, in einer REVOKE-Anweisung ALL spezifiziert, entzieht er dem angegebenen Benutzer alle von ihm für diese Tabelle vergebenen Privilegien.