Firebird Documentation IndexFirebird 2.5 SprachreferenzSicherheit → SQL-Berechtigungen
Firebird Home Firebird Home Zurück: BenutzerauthentifizierungFirebird Documentation IndexNach oben: SicherheitWeiter: Zusatzinformationen

SQL-Berechtigungen

Inhaltsverzeichnis

Der Objektinhaber
Statements zur Erteilung von Privilegien
Anweisungen zum widerrufen von Privilegien

Die zweite Stufe von Firebirds Sicherheitsmodell sind SQL-Berechtigungen. Während ein erfolgreicher Login — die erste Stufe — den Zugriff eines Benutzers auf den Server und auf alle Datenbanken unter diesem Server autorisiert, bedeutet dies nicht, dass er Zugriff auf Objekte in beliebigen Datenbanken hat. Wenn ein Objekt erstellt wird, haben nur der Benutzer, der dieses erstellt hat (also der Besitzer), und Administratoren Zugriff darauf. Der Benutzer braucht Privilegien auf jedem Objekt, auf das er zugreifen muss. Grundsätzlich müssen die Berechtigungen explizit an einen Benutzer durch den Objektbesitzer oder einen Administrator der Datenbank gewährt werden.

Ein Privileg besteht aus einem DML-Zugriffstyp (SELECT, INSERT, UPDATE, DELETE, EXECUTE und REFERENZEN), den Namen eines Datenbankobjekts (Tabelle, View, Prozedur, Rolle) und den Namen des Benutzers (Benutzer, Prozedur, Trigger, Rolle), dem es gewährt wird. Es stehen verschiedene Mittel zur Verfügung, um mehrere Arten von Zugriff auf ein Objekt für mehrere Benutzer in einer einzigen GRANT-Anweisung zu gewähren. Privilegien können von einem Benutzer mit REVOKE-Anweisungen entzogen werden.

Privilegien werden in der Datenbank gespeichert, auf die sie zutreffen und gelten nicht für andere Datenbanken.

Der Objektinhaber

Der Benutzer, der ein Datenbankobjekt erstellt, wird zum Besitzer. Nur der Besitzer eines Objekts und Benutzer mit Administratorrechten in der Datenbank, einschließlich des Datenbankeigentümers, können das Datenbankobjekt ändern oder löschen.

Einige Eigentumsnachteile

Jeder authentifizierte Benutzer kann auf jede Datenbank zugreifen und jedes gültige Datenbankobjekt erstellen. Bis zu diesem Release wurde das Problem nicht beseitigt.

Da nicht alle Datenbankobjekte mit einem Besitzer — Domänen, externen Funktionen(UDFs), BLOB-Filtern, Generatoren(Sequenzen) und Ausnahmen — assoziiert sind, müssen autorisierte Objekte auf einem Server, der nicht ausreichend geschützt ist, als anfällig angesehen werden.

SYSDBA, der Datenbankeigentümer oder der Eigentümer des Objekts können Privilegien gewähren und von anderen Benutzern widerrufen, einschließlich Berechtigungen, um anderen Benutzern Privilegien zu gewähren. Der Prozess der Erteilung und des Widerrufs von SQL-Privilegien ist mit folgenden zwei Statements implementiert:

                    GRANT <privilege> ON <OBJECT-TYPE> <object-name> 
                    TO { <user-name> | ROLE <role-name> }

                    REVOKE <privilege> ON <OBJECT-TYPE> <object-name> 
                    FROM { <user-name> | ROLE <role-name> }
                

Der <OBJECT-TYPE> ist nicht für jede Art von Privileg erforderlich. Für einige Arten von Privilegien stehen zusätzliche Parameter zur Verfügung, entweder als Optionen oder als Anforderungen.

Statements zur Erteilung von Privilegien

Inhaltsverzeichnis

GRANT

Eine GRANT-Anweisung wird für die Erteilung von Privilegien — einschließlich Rollen — für Benutzer und andere Datenbankobjekte verwendet.

GRANT

Benutzt für: Privilegien und Rollen zuordnen

Verfügbar in: DSQL, ESQL

Syntax: 

                            GRANT {
                                <privileges> ON [TABLE] {tablename | viewname} 
                            | EXECUTE ON PROCEDURE procname
                            }
                            TO <grantee_list>
                            [WITH GRANT OPTION]} | [{GRANTED BY | AS} [USER] grantor];

                            GRANT <role_granted>
                            TO <role_grantee_list> [WITH ADMIN OPTION]
                            [{GRANTED BY | AS} [USER] grantor]

                            <privileges> ::= ALL [PRIVILEGES] | <privilege_list>

                            <privilege_list> ::= {<privilege> [, <privilege> [, … ] ] }

                            <privilege> ::=
                            SELECT |
                            DELETE |
                            INSERT |
                            UPDATE [(col [, col [, …] ] ) ] |
                            REFERENCES (col [, …])

                            <grantee_list> ::= {<grantee> [, <grantee> [, …] ]}

                            <grantee>  ::=
                            [USER] username | [ROLE] rolename |  GROUP Unix_group
                            | PROCEDURE procname | TRIGGER trigname | VIEW viewname | PUBLIC

                            <role_granted> ::= rolename [, rolename …]

                            <role_grantee_list> ::= [USER] <role_grantee> [,[USER] <role_grantee> [, …]]

                            <role_grantee> ::= {username | PUBLIC }
                        

Tabelle 10.6. GRANT Statement Parameter

Parameter Beschreibung
tablename Der Name der Tabelle für welches das Privileg gilt
viewname Der Name der View für welches das Privileg gilt
procname Der Name der gespeicherten Prozedur für welches das EXECUTE-Privileg gilt oder den Namen der Prozedur für die das Privileg gewährt werden soll
col Die Tabellenspalte, für die das Privileg gelten soll
Unix_group Der Name einer Benutzergruppe in einem POSIX-Betriebssystem
username Den Benutzernamen, dem die Berechtigungen gewährt werden oder denen die Rolle zugeordnet ist
rolename Rollenamen
trigname Triggername
grantor Der Benutzer der das Privileg gewährt.


Eine GRANT-Anweisung gewährt ein oder mehrere Berechtigungen für Datenbankobjekte für Benutzer, Rollen, gespeicherte Prozeduren, Trigger oder Views.

Ein regulärer authentifizierter Benutzer hat keine Berechtigungen für jedes Datenbankobjekt, bis es explizit gewährt wurde. Es wird entweder an den einzelnen Benutzer oder an alle Benutzer, die als Benutzer PUBLIC gebündelt wurden, gewährt. Wenn ein Objekt erstellt wird, haben nur der Benutzer, der es erstellt hat (der Eigentümer) und Administratoren Berechtigungen hierauf und können anderen Benutzern, Rollen oder Objekten Privilegien gewähren.

Für verschiedene Arten von Metadatenobjekten gelten unterschiedliche Privilegien. Die verschiedenen Arten von Privilegien werden später separat beschrieben.

Die TO-Klausel

Die TO-Klausel wird für die Auflistung der Benutzer, Rollen und Datenbankobjekte (Prozeduren, Trigger und Views) verwendet, denen die in <privileges> aufgezählten Privilegien gewährt werden sollen. Die Klausel ist zwingend erforderlich.

Mit den optionalen Schlüsselwörtern USER und ROLE in der TO-Klausel können Sie genau festlegen, wer oder was das Privileg gewährt hat. Wenn ein USER- oder ROLE-Schlüsselwort nicht angegeben ist, prüft der Server auf eine Rolle mit diesem Namen und wenn es keine gibt, werden die Berechtigungen dem Benutzer ohne weitere Überprüfung gewährt.

Berechtigungen in einem ROLE-Objekt zusammenfassen

Eine Rolle ist ein „Container“-Objekt, das verwendet werden kann, um eine Sammlung von Privilegien zu verpacken. Die Verwendung der Rolle wird dann jedem Benutzer gewährt, der diese Berechtigungen erfordert. Eine Rolle kann auch einer Liste von Benutzern zugewiesen werden.

Die Rolle muss bestehen, bevor Privilegien gewährt werden können. Siehe CREATE ROLE im DDL-Kapitel für die Syntax und die Regeln. Die Rolle wird gepflegt durch die Erteilung von Privilegien und, wenn notwendig, deren Entzug. Wenn eine Rolle gelöscht wird (siehe DROP ROLE) verlieren alle Benutzer die durch die Rolle erworbenen Privilegien. Alle Privilegien, die zusätzlich zu einem betroffenen Benutzer über eine andere Grant-Anweisung gewährt wurden, bleiben erhalten.

Ein Benutzer, der eine Rolle erhält, muss diese Rolle mit seinen Anmeldeinformationen versehen, um die zugehörigen Berechtigungen auszuführen. Alle anderen Berechtigungen, die dem Benutzer eingeräumt werden, sind nicht von der Anmeldung mit einer Rolle betroffen.

Mehr als eine Rolle kann demselben Benutzer gewährt werden, aber die Anmeldung mit mehreren Rollen gleichzeitig wird nicht unterstützt.

Eine Rolle kann nur einem Benutzer zugewiesen werden.

Bitte beachten Sie:

  • Wenn eine GRANT-Anweisung ausgeführt wird, wird die Sicherheitsdatenbank nicht auf die Existenz des gewährenden Benutzers geprüft. Dies ist kein Fehler: SQL-Berechtigungen betreffen die Kontrolle des Datenzugriffs für authentifizierte Benutzer, sowohl native als auch vertrauenswürdige und vertrauenswürdige Betriebssystembenutzer werden nicht in der Sicherheitsdatenbank gespeichert.
  • Wenn Sie einem Datenbankobjekt, z.B. einer Prozedur, einem Trigger oder einer View, ein Privileg gewähren, müssen Sie den Objekttyp zwischen dem Schlüsselwort TO und dem Objektnamen angeben.
  • Obwohl die Schlüsselwörter USER und ROLE optional sind, ist es ratsam, sie zu verwenden, um Unklarheiten zu vermeiden.
Der PUBLIC-Benutzer

Firebird hat einen vordefinierten Benutzer namens PUBLIC, der alle Benutzer repräsentiert. Berechtigungen für Operationen auf einem bestimmten Objekt, die dem Benutzer PUBLIC gewährt werden, können von jedem Benutzer ausgeübt werden, der bei der Anmeldung authentifiziert wurde.

Wichtig

Wenn dem Benutzer PUBLIC Privilegien gewährt werden, sollten sie auch vom Benutzer PUBLIC widerrufen werden.

Die WITH GRANT OPTION-Klausel

Die optionale WITH GRANT OPTION-Klausel ermöglicht es den Benutzern, die in der Benutzerliste angegeben sind, die in der Berechtigungsliste angegebenen Berechtigungen anderen Benutzern zuzuweisen.

Achtung

Es ist möglich, diese Option dem Benutzer PUBLIC zuzuordnen. Dies sollte aber niemals getan werden!

Die GRANTED BY-Klausel

Standardmäßig werden, wenn Berechtigungen in einer Datenbank gewährt werden, der aktuelle Benutzer als Gewährender aufgezeichnet. Die GRANTED BY-Klausel ermöglicht es dem aktuellen Benutzer, diese Privilegien als anderer Benutzer zu erteilen.

Wenn die REVOKE-Anweisung verwendet wird, wird es fehlschlagen, wenn der aktuelle Benutzer nicht der Benutzer ist, der in der GRANTED BY-Klausel verwendet wurde.

Alternative Syntax mit AS <username>

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

Die Klauseln GRANTED BY und AS können nur vom Datenbankeigentümer und Administratoren verwendet werden. Der Objektbesitzer kann diese nicht verwenden, es sei denn, er hat auch Administratorrechte.

Privilegien auf Tabellen und Views

In der Theorie gewährt eine GRANT-Anweisung eine Berechtigung für einen Benutzer oder Objekt. In der Praxis erlaubt die Syntax, dass mehrere Berechtigungen mehreren Benutzern in einer GRANT-Anweisung erteilt werden können.

Syntax-Auszug: 

                                ...
                                <privileges> ::= ALL [PRIVILEGES] | <privilege_list>

                                <privilege_list> ::= {<privilege> [, <privilege> [, … ] ] }

                                <privilege> ::= {
                                SELECT |
                                DELETE |
                                INSERT |
                                UPDATE [(col [,col [, …])] ] ) ] |
                                REFERENCES (col [, col [, …] ] )
                                }
                            

Tabelle 10.7. Liste der Berechtigungen auf Tabellen

Privileg Beschreibung
SELECT Erlaubt den Benutzer oder das Objekt, Daten aus der Tabelle oder der View zu löschen
INSERT Erlaubt den Benutzer oder das Objekt Zeilen in die Tabelle oder View hinzuzufügen(INSERT)
UPDATE Erlaubt den Benutzer oder das Objekt Zeilen in der Tabelle oder View zu aktualisieren(UPDATE), die optional auf bestimmte Spalten beschränkt ist
col (Optional) Name einer Spalte, auf die das UPDATE-Privileg des Benutzers beschränkt ist
DELETE Erlaubt den Benutzer oder das Objekt, Zeilen aus der Tabelle oder der View zu löschen(DELETE)
REFERENCES Erlaubt dem Benutzer oder Objekt, die angegebenen Spalten der Tabelle über einen Fremdschlüssel zu verweisen. Wenn der primäre oder eindeutige Schlüssel, auf den der Fremdschlüssel der anderen Tabelle verweist, zusammengesetzt ist, müssen alle Spalten des Schlüssels angegeben werden.
col (Zwingend notwendig) Name einer Spalte im referenzierten Fremdschlüssel
ALL Kombiniert SELECT, INSERT, UPDATE, DELETE und REFERENCES Privilegien in einem einzigen Paket


Beispiele für GRANT <Privilegien> auf Tabellen: 

  1. SELECT und INSERT-Berechtigungen für den Benutzer ALEX:
                                        GRANT SELECT, INSERT ON TABLE SALES
                                        TO USER ALEX;
                                    
  2. Das SELECT-Privileg für die MANAGER-, ENGINEER-Rollen und für den Benutzer IVAN:
                                        GRANT SELECT ON TABLE CUSTOMER
                                        TO ROLE MANAGER, ROLE ENGINEER, USER IVAN;
                                    
  3. Alle Privilegien für die Rolle des ADMINISTRATORS, zusammen mit der Befugnis, denselben Privilegien zu gewähren:
                                        GRANT ALL ON TABLE CUSTOMER
                                        TO ROLE ADMINISTRATOR
                                        WITH GRANT OPTION;
                                    
  4. Die SELECT- und REFERENZ-Berechtigungen für die NAME-Spalte für alle Benutzer und Objekte:
                                        GRANT SELECT, REFERENCES (NAME) ON TABLE COUNTRY
                                        TO PUBLIC;
                                    
  5. Das SELECT-Privileg wird dem Benutzer IVAN vom Benutzer ALEX erteilt:
                                        GRANT SELECT ON TABLE EMPLOYEE
                                        TO USER IVAN
                                        GRANTED BY ALEX;
                                    
  6. Gewähren der UPDATE-Berechtigung für die Spalten FIRST_NAME, LAST_NAME:
                                        GRANT UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
                                        TO USER IVAN;
                                    
  7. Gewähren der INSERT-Berechtigung für die gespeicherte Prozedur ADD_EMP_PROJ:
                                        GRANT INSERT ON EMPLOYEE_PROJECT
                                        TO PROCEDURE ADD_EMP_PROJ;
                                    
Das EXECUTE-Privileg

Das EXECUTE-Privileg gilt für gespeicherte Prozeduren. Es erlaubt dem Gewährenden, die gespeicherte Prozedur auszuführen und ggf. seine Ausgabe abzurufen. Im Falle von auswählbaren gespeicherten Prozeduren wirkt es etwas wie ein SELECT-Privileg, sofern dieser Stil der gespeicherten Prozedur in Reaktion auf eine SELECT-Anweisung ausgeführt wird.

Beispiel:  Gewähren des EXECUTE-Privilegs auf einer gespeicherten Prozedur zu einer Rolle:

                                    GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ
                                    TO ROLE MANAGER;
                                

Rollen zuordnen

Die Zuweisung einer Rolle ist vergleichbar mit der Gewährung eines Privilegs. Eine oder mehrere Rollen können einem oder mehreren Benutzern zugewiesen werden, einschließlich dem user PUBLIC , mit einer GRANT-Anweisung.

Die WITH ADMIN OPTION-Klausel

Mit der optionalen WITH ADMIN OPTION-Klausel können die in der Benutzerliste angegebenen Benutzer die für andere Benutzer angegebene Rolle(n) erteilen.

Achtung

Es ist möglich, diese Option dem Benutzer PUBLIC zuzuordnen. Dies sollte aber niemals getan werden!

Beispiele der Rollenzuweisung: 

  1. Zuweisen der DIRECTOR- und MANAGER-Rollen dem Benutzer IVAN:
                                        GRANT DIRECTOR, MANAGER TO USER IVAN;
                                    
  2. Zuweisen der ADMIN-Rolle dem Benutzer ALEX mit der Berechtigung, diese Rolle anderen Benutzern zuzuordnen:
                                        GRANT MANAGER TO USER ALEX WITH ADMIN OPTION;
                                    

Siehe auch:   REVOKE

Anweisungen zum widerrufen von Privilegien

Inhaltsverzeichnis

REVOKE

Eine REVOKE-Anweisung wird zum Widerrufen von Berechtigungen, einschließlich Rollen, von Benutzern und anderen Datenbankobjekten verwendet.

REVOKE

Benutzt für:  Widerrufen von Privilegien oder Rollenzuweisungen

Verfügbar in: DSQL, ESQL

Syntax: 

                            REVOKE [GRANT OPTION FOR] {
                            <privileges> ON [TABLE] {tablename | viewname} |
                            EXECUTE ON PROCEDURE procname }
                            FROM <grantee_list>
                            [{GRANTED BY | AS} [USER] grantor];

                            REVOKE [ADMIN OPTION FOR] <role_granted>
                            FROM {PUBLIC | <role_grantee_list>}
                            [{GRANTED BY | AS} [USER] grantor];

                            REVOKE ALL ON ALL FROM <grantee_list>

                            <privileges> ::= ALL [PRIVILEGES] | <privilege_list>

                            <privilege_list> ::= {<privilege> [, <privilege> [, … ] ] }

                            <privilege> ::=
                            SELECT |
                            DELETE |
                            INSERT |
                            UPDATE [(col [, col [, col [,…] ] ] ) ] |
                            REFERENCES (col [, col [, …] ] )

                            <grantee_list> ::= {<grantee> [, <grantee> [, …] ]}

                            <grantee>  ::=
                            [USER] username | [ROLE] rolename |  GROUP Unix_group
                            | PROCEDURE procname | TRIGGER trigname | VIEW viewname | PUBLIC

                            <role_granted> ::= rolename [, rolename …]

                            <role_grantee_list> ::= [USER] <role_grantee> [,[USER] <role_grantee> [, …]]

                            <role_grantee> ::= {username | PUBLIC }
                        

Tabelle 10.8. REVOKE Anweisung Parameter

Parameter Beschreibung
tablename Der Name der Tabelle wo das Privileg widerrufen werden soll
viewname Der Name der View wo das Privileg widerrufen werden soll
procname Der Name der Prozedur wo das EXECUTE-Privileg widerrufen werden soll oder der Name der Prozedur wo die Privilegien widerrufen werden sollen
trigname Triggername
col Der Name der Spalte wo das Privileg widerrufen werden soll
username Der Benutzerame oder Rolle wo das Privileg widerrufen werden soll
rolename Rollenname
Unix_group Der Name einer Benutzergruppe in einem POSIX-Betriebssystem
grantor Der Gewährende-Benutzer, in dessen Namen das Privileg abgelehnt wird


Die REVOKE-Anweisung wird verwendet, um Privilegien von Benutzern, Rollen, gespeicherten Prozeduren, Triggern und Views zu widerrufen, die mit der GRANT-Anweisung gewährt wurden. Siehe GRANT für eine detaillierte Beschreibung der verschiedenen Arten von Privilegien.

Nur der Benutzer, der das Privileg erteilt hat, kann ihn widerrufen.

Die FROM-Klausel

Die FROM-Klausel wird verwendet, um die Liste der Benutzer, Rollen und Datenbankobjekte (Prozeduren, Trigger und Views) anzugeben, die die aufgezählten Privilegien widerrufen haben. Mit den optionalen USER und ROLE Schlüsselwörter in der FROM-Klausel können Sie genau festlegen, welcher Typ das Privileg widerrufen soll. Wenn ein USER oder ROLE Schlüsselwort nicht angegeben ist, prüft der Server auf eine Rolle mit diesem Namen und wenn es keine gibt, werden die Berechtigungen vom Benutzer ohne weitere Überprüfung widerrufen.

Tipps

  • Obwohl die Schlüsselwörter USER und ROLE optional sind, ist es ratsam, sie zu verwenden, um Unklarheiten zu vermeiden.
  • Die Anweisung GRANT prüft nicht auf die Existenz des Benutzers, von dem die Berechtigungen widerrufen werden.
  • Wenn Sie ein Privileg aus einem Datenbankobjekt widerrufen, müssen Sie seinen Objekttyp angeben

Widerruf von Berechtigungen des Benutzers PUBLIC

Privilegien, die dem speziellen Benutzer PUBLIC gewährt wurden, müssen vom Benutzer PUBLIC widerrufen werden. Benutzer PUBLIC bietet eine Möglichkeit, allen Benutzern gleichzeitig Privilegien zu gewähren, aber es ist nicht „eine Gruppe von Benutzern“.

Widerrufen derGRANT OPTION

Die optionale GRANT OPTION FOR-Klausel widerruft das Privileg des Benutzers, Berechtigungen zu gewähren für die Tabelle, die View, die Trigger oder die gespeicherte Prozedur für andere Benutzer oder Rollen. Es widerruft nicht das Privileg, mit dem die Grant-Option verbunden ist.

Entfernen der Berechtigung von einer oder mehreren Rollen

Eine Verwendung der Anweisung REVOKE besteht darin, Rollen zu entfernen, die einem Benutzer oder einer Gruppe von Benutzern durch eine GRANT-Anweisung zugewiesen wurden. Im Fall von mehreren Rollen und/oder mehreren Gewährenden folgt dem Verzeichnis REVOKE die Liste der Rollen, die aus der Liste der Benutzer entfernt werden, die nach der FROM-Klausel angegeben sind.

Die optionale ADMIN OPTION FOR-Klausel bietet die Möglichkeit, die „Administratorrechte“ des Gewährenden zu widerrufen, somit die Möglichkeit den anderen Benutzern dieselbe Rolle zuzuweisen, ohne das Privileg des Gewährenden der Rolle zu widerrufen.

Mehrere Rollen und Gewährende können in einer einzigen Anweisung verarbeitet werden.

Widerrufen von Privilegien von GRANTED BY

Ein Privileg, dass mit der GRANTED BY-Klausel erteilt wurde, wird intern explizit dem von dieser ursprünglichen GRANT-Anweisung bezeichneten Gewährenden zugeschrieben. Um ein Privileg zu widerrufen, dass durch diese Methode erhalten wurde, muss der aktuelle Benutzer entweder mit vollständigen Administratorrechten angemeldet sein oder als der Benutzer, der als<Gewährender> durch diese GRANTED BY-Klausel ist.

Anmerkung

Die gleiche Regel gilt, wenn die Syntax, die in der ursprünglichen GRANT-Anweisung verwendet wird, das synonym AS verwendet, um die Klausel anstelle des Standards GRANTED BY einzuführen.

Widerrufen von ALL ON ALL

Wenn der aktuelle Benutzer mit Administrator-rechte in der Datenbank angemeldet ist, kann die Anweisung

                                REVOKE ALL ON ALL FROM <grantee_list>
                            

verwendet werden, um alle Privilegien (einschließlich Rollenmitgliedschaften) auf alle Objekte von einem oder mehreren Benutzern und/oder Rollen zu widerrufen. Alle Privilegien für den Benutzer werden entfernt, unabhängig davon, wer sie gewährt hat. Es ist ein schneller Weg die Privilegien zu entfernen, wenn der Zugriff auf die Datenbank für einen bestimmten Benutzer oder eine Rolle gesperrt werden muss.

Wenn der aktuelle Benutzer nicht als Administrator angemeldet ist, werden nur die Berechtigungen aufgehoben, die ursprünglich von diesem Benutzer erteilt wurden.

Die Anweisung REVOKE ALL ON ALL kann nicht verwendet werden, um Berechtigungen zu widerrufen, die für gespeicherte Prozeduren, Trigger oder Views gewährt wurden.

Anmerkung

Die GRANTED BY-Klausel wird nicht unterstützt.

Beispiele für REVOKE

  1. Widerruf der Privilegien zum Lesen und Einfügen in die SALES:
                                REVOKE SELECT, INSERT ON TABLE SALES FROM USER ALEX;
                            
  2. Widerruf des Privilegs für das Lesen der CUSTOMER-Tabelle vom MANAGER- und ENGINEER-Rollen und vom Benutzer IVAN:
                                REVOKE SELECT ON TABLE CUSTOMER
                                FROM ROLE MANAGER, ROLE ENGINEER, USER IVAN;
                            
  3. Widerruf von der Rolle des ADMINISTRATORS die Befugnis, anderen Benutzern oder Rollen irgendwelche Privilegien auf der CUSTOMER-Tabelle zu gewähren:
                                REVOKE GRANT OPTION FOR ALL ON TABLE CUSTOMER
                                FROM ROLE ADMINISTRATOR;
                            
  4. Widerrufen des Privileges zum Lesen der COUNTRY-Tabelle und die Referenz auf die NAME-Spalte der COUNTRY-Tabelle von jedem Benutzer zu verweisen, über den speziellen Benutzer PUBLIC:
                                REVOKE SELECT, REFERENCES (NAME) ON TABLE COUNTRY
                                FROM PUBLIC;
                            
  5. Das Privileg zum Lesen der EMPLOYEE-Tabelle aus dem Benutzer IVAN, das vom Benutzer ALEX erteilt wurde, widerrufen:
                                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 EMPLOYEE-Tabelle vom Benutzer IVAN:
                                REVOKE UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
                                FROM USER IVAN;
                            
  7. Zurückziehen 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. Das Privileg zur Ausführung des Vorgangs ADD_EMP_PROJ aus der MANAGER-Rolle widerrufen:
                                REVOKE EXECUTE ON PROCEDURE ADD_EMP_PROJ
                                FROM ROLE MANAGER;
                            
  9. Widerruf der DIRECTOR- und MANAGER-Rollen vom Benutzer IVAN:
                                REVOKE DIRECTOR, MANAGER FROM USER IVAN;
                            
  10. Widerrufen Sie dem Benutzer ALEX die Berechtigung, die MANAGER-Rolle anderen Benutzern zuzuordnen:
                                REVOKE ADMIN OPTION FOR MANAGER FROM USER IVAN;
                            
  11. Widerruf aller Privilegien (einschließlich Rollen) auf alle Objekte vom Benutzer IVAN:
                                REVOKE ALL ON ALL FROM IVAN;
                            
    Nachdem diese Anweisung ausgeführt wurde, hat der Benutzer IVAN überhaupt keine Privilegien.

Siehe auch:  GRANT

Zurück: BenutzerauthentifizierungFirebird Documentation IndexNach oben: SicherheitWeiter: Zusatzinformationen
Firebird Documentation IndexFirebird 2.5 SprachreferenzSicherheit → SQL-Berechtigungen