Eine Privilegienspezifikation (priv_spec) definiert eine Rolle bzw. eine Menge von Privilegien für entsprechend angegebene Tabellen.
<priv_spec> ::= ALL [PRIV[ILEGES]] ON [TABLE] <table_name>,...
| <privilege>,... ON [TABLE] <table_name>,... |
<role_name>
table_name, privilege, role_name
Keine der angegebenen Tabellen darf eine temporäre Basistabelle sein.
Der Benutzer muss 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 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, muss sie existieren und der aktuelle Benutzer muss Eigentümer der Rolle sein.
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.