REVOKE-Anweisung (revoke_statement)
Die REVOKE-Anweisung (
revoke_statement) widerruft Privilegien.Syntax
<revoke_statement> ::= REVOKE <priv_spec>,... FROM <grantee>,... [<cascade_option>]
| REVOKE EXECUTE ON <dbproc_name> FROM <grantee>,...
| REVOKE SELECT ON <sequence_name> FROM <grantee>,... [<cascade_option>]
Erläuterung
Der Eigentümer einer Tabelle kann jedem
Benutzer die für diese Tabelle vergebenen Privilegien entziehen.Ist ein Benutzer nicht Eigentümer der Tabelle, kann er nur die Privilegien entziehen, die er selbst vergeben hat.
Wenn für eine Tabelle das SELECT-Privileg ohne Angabe von Spaltennamen vergeben wurde, dann wird durch
REVOKE SELECT (<column_name>,...) das SELECT-Privileg (siehe Privileg-Typ) für die angegebenen Spalten entzogen, das SELECT-Privileg für die nicht vorkommenden Spalten der Tabelle besteht anschließend weiter. Entsprechendes gilt für das UPDATE-, REFERENCES- und SELUPD-Privileg.Die REVOKE-Anweisung kann kaskadieren, d.h. wird einem Benutzer ein Privileg entzogen, so kann das dazu führen, daß dieses Privileg weiteren Benutzern entzogen wird, die dieses Privileg von dem angegebenen Benutzer erhalten haben.
Seien U1, U2 und U3 Benutzer.
U1 vergibt an U2 die Privilegienmenge P WITH GRANT OPTION.
U2 vergibt an U3 die Privilegienmenge P' (P'<=P).
Wenn U1 dem Benutzer U2 die Privilegienmenge P'' (P''<=P) entzieht, so wird dem Benutzer U3 implizit die Privilegienmenge (P'*P'') entzogen.
REVOKE EXECUTE
Durch REVOKE EXECUTE wird dem durch
grantee identifizierten Benutzer die Berechtigung entzogen, die angegebene Datenbankprozedur auszuführen. Die Berechtigung zur Ausführung kann nur vom Eigentümer der Datenbankprozedur entzogen werden.