FirebirdSQL logo

Eine REVOKE-Anweisung wird verwendet, um Berechtigungen – einschließlich Rollen – von Benutzern und anderen Datenbankobjekten zu entziehen.

REVOKE

Verwendet für

Widerrufen von Berechtigungen oder Rollenzuweisungen

Verfügbar in

DSQL, ESQL

Syntax (Privilegien widerrufen)
REVOKE [GRANT OPTION FOR] <privileges>
  FROM <grantee_list>
  [{GRANTED BY | AS} [USER] grantor]

<privileges> ::=
  !! Vgl. GRANT-Syntax !!
Syntax (Privilegien widerrufen)
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 !!
Syntax (revoking all)
REVOKE ALL ON ALL FROM <grantee_list>

<grantee_list> ::=
  !! Vgl. GRANT-Syntax !!
Table 1. REVOKE-Anweisungsparameter
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.

docnext count = 7

Die DEFAULT-Klausel

Wenn die DEFAULT-Klausel angegeben wird, wird die Rolle selbst nicht widerrufen, nur ihre DEFAULT-Eigenschaft wird entfernt, ohne die Rolle selbst zu widerrufen.

Die FROM-Klausel

Die 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
  • Obwohl das Schlüsselwort USER optional ist, ist es ratsam, es zu verwenden, um Mehrdeutigkeiten bei Rollen zu vermeiden.

  • Die REVOKE-Anweisung prüft nicht, ob der Benutzer existiert, dem die Privilegien entzogen werden.

  • Wenn Sie einem anderen Datenbankobjekt als USER oder ROLE ein Privileg entziehen, müssen Sie dessen Objekttyp angeben

Important
Widerrufen von Privilegien von Benutzer PUBLIC

Privilegien, die dem speziellen Benutzer mit dem Namen PUBLIC gewährt wurden, müssen dem Benutzer PUBLIC entzogen werden.Der Benutzer PUBLIC bietet eine Möglichkeit, allen Benutzern gleichzeitig Berechtigungen zu erteilen, aber es ist keine „Gruppe von Benutzern“.

Widerrufen von 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.

Entfernen der Berechtigung für eine oder mehrere Rollen

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.

Widerrufen von GRANTED BY-Rechten

Ein 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 GRANTED BY verwenden, es sei denn, er hat Administratorrechte.

Die nicht standardmäßige AS-Klausel wird als Synonym der GRANTED BY-Klausel unterstützt, um die Migration von anderen Datenbanksystemen zu vereinfachen.

Widerrufen von 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 GRANTED BY wird nicht unterstützt

REVOKE-Beispiele

  1. Widerruf der Privilegien zum Auswählen und Einfügen in die Tabelle (oder View) SALES

    REVOKE SELECT, INSERT ON TABLE SALES
      FROM USER ALEX;
  2. 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;
  3. 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;
  4. 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;
  5. 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;
  6. 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;
  7. 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;
  8. 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;
  9. 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;
  10. Widerrufen des EXECUTE-Privilegs für das Paket DATE_UTILS von Benutzer ALEX:

    REVOKE EXECUTE ON PACKAGE DATE_UTILS
      FROM USER ALEX;
  11. Aufheben des USAGE-Privilegs für die Sequenz GEN_AGE aus der Rolle MANAGER:

    REVOKE USAGE ON SEQUENCE GEN_AGE
      FROM ROLE MANAGER;
  12. 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;
  13. 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;
  14. Widerruf der Berechtigung zum Erstellen von Tabellen von Benutzer JOE:

    REVOKE CREATE TABLE
      FROM USER Joe;
  15. Widerruf der Berechtigung zum Ändern einer Prozedur von Benutzer JOE:

    REVOKE ALTER ANY PROCEDURE
      FROM USER Joe;
  16. Widerruf der Berechtigung zum Erstellen von Datenbanken vom Benutzer SUPERUSER:

    REVOKE CREATE DATABASE
      FROM USER Superuser;
  17. Entziehen der Rollen DIRECTOR und MANAGER vom Benutzer IVAN:

    REVOKE DIRECTOR, MANAGER FROM USER IVAN;
  18. Entziehen Sie dem Benutzer ALEX das Recht, anderen Benutzern die Rolle MANAGER zu erteilen:

    REVOKE ADMIN OPTION FOR MANAGER FROM USER ALEX;
  19. 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.

  20. Widerrufen der DEFAULT-Eigenschaft der DIRECTOR-Rolle vom Benutzer ALEX, während die Rolle selbst gewährt bleibt:

    REVOKE DEFAULT DIRECTOR
      FROM USER ALEX;
Siehe auch

GRANT