Eine REVOKE
-Anweisung wird verwendet, um Berechtigungen – einschließlich Rollen – von Benutzern und anderen Datenbankobjekten zu entziehen.
Eine REVOKE
-Anweisung wird verwendet, um Berechtigungen – einschließlich Rollen – von Benutzern und anderen Datenbankobjekten zu entziehen.
REVOKE
Widerrufen von Berechtigungen oder Rollenzuweisungen
DSQL, ESQL
REVOKE [GRANT OPTION FOR] <privileges>
FROM <grantee_list>
[{GRANTED BY | AS} [USER] grantor]
<privileges> ::=
!! Vgl. GRANT
-Syntax !!
REVOKE [ADMIN OPTION FOR] <role_granted> FROM <role_grantee_list> [{GRANTED BY | AS} [USER] grantor] <role_granted_list> ::= !! Vgl.GRANT
-Syntax !! <role_grantee_list> ::= !! Vgl.GRANT
-Syntax !!
REVOKE ALL ON ALL FROM <grantee_list>
<grantee_list> ::=
!! Vgl. GRANT
-Syntax !!
Parameter | Beschreibung |
---|---|
grantor |
Der erteilende Benutzer, in dessen Namen die Berechtigung(en) widerrufen werden |
Die REVOKE
-Anweisung entzieht Benutzern, Rollen und anderen Datenbankobjekten Berechtigungen, die mit der GRANT
-Anweisung gewährt wurden.Siehe GRANT
für detaillierte Beschreibungen der verschiedenen Rechtetypen.
Nur der Benutzer, der die Berechtigung erteilt hat, kann sie widerrufen.
DEFAULT
-KlauselWenn die DEFAULT
-Klausel angegeben wird, wird die Rolle selbst nicht widerrufen, nur ihre DEFAULT
-Eigenschaft wird entfernt, ohne die Rolle selbst zu widerrufen.
FROM
-KlauselDie FROM
-Klausel gibt eine Liste von Benutzern, Rollen und anderen Datenbankobjekten an, denen die aufgezählten Berechtigungen entzogen werden.Mit dem optionalen Schlüsselwort USER
in der FROM
-Klausel können Sie genau angeben, welchem Typ die Berechtigung entzogen werden soll.Wenn kein Schlüsselwort USER
(oder ROLE
) angegeben ist, sucht der Server zunächst nach einer Rolle mit diesem Namen, und wenn keine solche Rolle vorhanden ist, werden dem Benutzer mit diesem Namen die Berechtigungen ohne weitere Prüfung entzogen.
Tip
|
|
Important
|
Widerrufen von Privilegien von Benutzer
PUBLIC Privilegien, die dem speziellen Benutzer mit dem Namen |
GRANT OPTION
Die optionale GRANT OPTION FOR
-Klausel entzieht dem Benutzer die Berechtigung, anderen Benutzern, Rollen oder Datenbankobjekten die angegebenen Berechtigungen zu gewähren (wie zuvor mit WITH GRANT OPTION
gewährt).Es entzieht die angegebene Berechtigung nicht selbst.
Eine Verwendung der REVOKE
-Anweisung besteht darin, Rollen zu entfernen, die einem Benutzer oder einer Benutzergruppe durch eine GRANT
-Anweisung zugewiesen wurden.Bei mehreren Rollen und/oder mehreren Grantees folgt auf das Verb REVOKE
die Liste der Rollen, die aus der nach der FROM
-Klausel angegebenen Benutzerliste entfernt werden.
Die optionale ADMIN OPTION FOR
-Klausel bietet die Möglichkeit, dem Berechtigten die Berechtigung “Administrator” zu entziehen, die Möglichkeit, anderen Benutzern dieselbe Rolle zuzuweisen, ohne die Berechtigung des Berechtigten für die Rolle zu widerrufen.
Mehrere Rollen und Empfänger können in einer einzigen Anweisung verarbeitet werden.
GRANTED BY
-RechtenEin Privileg, das unter Verwendung der GRANTED BY
-Klausel gewährt wurde, wird intern explizit dem durch diese ursprüngliche GRANT
-Anweisung bezeichneten Gewährer zugewiesen.Nur dieser Benutzer kann die gewährte Berechtigung widerrufen.Mit der GRANTED BY
-Klausel können Sie Berechtigungen entziehen, als ob Sie der angegebene Benutzer wären.Um eine Berechtigung mit GRANTED BY
zu entziehen, muss der aktuelle Benutzer entweder mit vollen Administratorrechten oder als der Benutzer, der durch diese GRANTED BY
-Klausel als grantor bezeichnet wird, angemeldet sein.
Note
|
Nicht einmal der Besitzer einer Rolle kann |
Die nicht standardmäßige AS
-Klausel wird als Synonym der GRANTED BY
-Klausel unterstützt, um die Migration von anderen Datenbanksystemen zu vereinfachen.
ALL ON ALL
Die REVOKE ALL ON ALL
-Anweisung ermöglicht es einem Benutzer, alle Privilegien (einschließlich Rollen) für alle Objekte von einem oder mehreren Benutzern, Rollen oder anderen Datenbankobjekten zu widerrufen.Es ist eine schnelle Möglichkeit zum “Löschen” von Berechtigungen, wenn der Zugriff auf die Datenbank für einen bestimmten Benutzer oder eine bestimmte Rolle gesperrt werden muss.
Wenn der aktuelle Benutzer mit vollen administrator Berechtigungen in der Datenbank angemeldet ist, entfernt REVOKE ALL ON ALL
alle Berechtigungen, egal wer sie gewährt hat.Andernfalls werden nur die vom aktuellen Benutzer gewährten Berechtigungen entfernt.
Note
|
Die Klausel |
REVOKE
-BeispieleWiderruf der Privilegien zum Auswählen und Einfügen in die Tabelle (oder View) SALES
REVOKE SELECT, INSERT ON TABLE SALES
FROM USER ALEX;
Widerruf der Berechtigung zum Auswählen aus der Tabelle CUSTOMER
der Rollen MANAGER
und ENGINEER
und dem Benutzer IVAN
:
REVOKE SELECT ON TABLE CUSTOMER
FROM ROLE MANAGER, ROLE ENGINEER, USER IVAN;
Entziehen der Rolle ADMINISTRATOR
die Berechtigung, anderen Benutzern oder Rollen Berechtigungen für die Tabelle CUSTOMER
zu erteilen:
REVOKE GRANT OPTION FOR ALL ON TABLE CUSTOMER
FROM ROLE ADMINISTRATOR;
Widerruf der Berechtigung zum Auswählen aus der Tabelle COUNTRY
und der Berechtigung zum Verweisen auf die Spalte NAME
der Tabelle 'COUNTRY' von jedem Benutzer über den speziellen Benutzer PUBLIC
:
REVOKE SELECT, REFERENCES (NAME) ON TABLE COUNTRY
FROM PUBLIC;
Entzug des Privilegs zur Auswahl aus der Tabelle EMPLOYEE
von dem Benutzer IVAN
, das dem Benutzer ALEX
gewährt wurde:
REVOKE SELECT ON TABLE EMPLOYEE
FROM USER IVAN GRANTED BY ALEX;
Widerruf der Berechtigung zum Aktualisieren der Spalten FIRST_NAME
und LAST_NAME
der Tabelle EMPLOYEE
von dem Benutzer IVAN
:
REVOKE UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
FROM USER IVAN;
Widerruf der Berechtigung zum Einfügen von Datensätzen in die Tabelle EMPLOYEE_PROJECT
aus der Prozedur ADD_EMP_PROJ
:
REVOKE INSERT ON EMPLOYEE_PROJECT
FROM PROCEDURE ADD_EMP_PROJ;
Widerruf der Berechtigung zum Ausführen der Prozedur ADD_EMP_PROJ
aus der Rolle MANAGER
:
REVOKE EXECUTE ON PROCEDURE ADD_EMP_PROJ
FROM ROLE MANAGER;
Widerruf der Berechtigung, anderen Benutzern aus der Rolle MANAGER
das EXECUTE
-Privileg für die Funktion GET_BEGIN_DATE
zu erteilen:
REVOKE GRANT OPTION FOR EXECUTE
ON FUNCTION GET_BEGIN_DATE
FROM ROLE MANAGER;
Widerrufen des EXECUTE
-Privilegs für das Paket DATE_UTILS
von Benutzer ALEX
:
REVOKE EXECUTE ON PACKAGE DATE_UTILS
FROM USER ALEX;
Aufheben des USAGE
-Privilegs für die Sequenz GEN_AGE
aus der Rolle MANAGER
:
REVOKE USAGE ON SEQUENCE GEN_AGE
FROM ROLE MANAGER;
Widerrufen des USAGE
-Privilegs für die Sequenz GEN_AGE
vom Trigger TR_AGE_BI
:
REVOKE USAGE ON SEQUENCE GEN_AGE
FROM TRIGGER TR_AGE_BI;
Widerrufen des USAGE
-Privilegs für die Ausnahme E_ACCESS_DENIED
aus dem Paket PKG_BILL
:
REVOKE USAGE ON EXCEPTION E_ACCESS_DENIED
FROM PACKAGE PKG_BILL;
Widerruf der Berechtigung zum Erstellen von Tabellen von Benutzer JOE
:
REVOKE CREATE TABLE
FROM USER Joe;
Widerruf der Berechtigung zum Ändern einer Prozedur von Benutzer JOE
:
REVOKE ALTER ANY PROCEDURE
FROM USER Joe;
Widerruf der Berechtigung zum Erstellen von Datenbanken vom Benutzer SUPERUSER
:
REVOKE CREATE DATABASE
FROM USER Superuser;
Entziehen der Rollen DIRECTOR
und MANAGER
vom Benutzer IVAN
:
REVOKE DIRECTOR, MANAGER FROM USER IVAN;
Entziehen Sie dem Benutzer ALEX
das Recht, anderen Benutzern die Rolle MANAGER
zu erteilen:
REVOKE ADMIN OPTION FOR MANAGER FROM USER ALEX;
Entziehen aller Privilegien (einschließlich Rollen) für alle Objekte von dem Benutzer IVAN
:
REVOKE ALL ON ALL
FROM USER IVAN;
Nachdem diese Anweisung von einem Administrator ausgeführt wurde, hat der Benutzer IVAN
keinerlei Privilegien, außer denen, die durch PUBLIC
gewährt wurden.
Widerrufen der DEFAULT
-Eigenschaft der DIRECTOR
-Rolle vom Benutzer ALEX
, während die Rolle selbst gewährt bleibt:
REVOKE DEFAULT DIRECTOR
FROM USER ALEX;