FirebirdSQL logo
 ROLEAnweisungen zum Widerrufen von Berechtigungen 

Beispiele für die Gewährung des EXECUTE-Privilegs

  1. Einer Rolle das Privileg EXECUTE für eine gespeicherte Prozedur gewähren:

    GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ
      TO ROLE MANAGER;
  2. Einer Rolle das Privileg EXECUTE für eine gespeicherte Funktion gewähren:

    GRANT EXECUTE ON FUNCTION GET_BEGIN_DATE
      TO ROLE MANAGER;
  3. Gewähren des EXECUTE-Privilegs für ein Paket an den Benutzer PUBLIC:

    GRANT EXECUTE ON PACKAGE APP_VAR
      TO USER PUBLIC;
  4. Erteilen des EXECUTE-Privilegs für eine Funktion an ein Paket:

    GRANT EXECUTE ON FUNCTION GET_BEGIN_DATE
      TO PACKAGE APP_VAR;

Das USAGE-Privileg

Um andere Metadatenobjekte als Tabellen, Ansichten, gespeicherte Prozeduren oder Funktionen, Trigger und Pakete verwenden zu können, ist es notwendig, dem Benutzer (oder Datenbankobjekten wie Trigger, Prozedur oder Funktion) das USAGE-Privileg für diese Objekte zu gewähren.

Da Firebird gespeicherte Prozeduren und Funktionen, Trigger und Paketroutinen mit den Rechten des Aufrufers ausführt, ist es notwendig, dass entweder der Benutzer oder die Routine selbst das USAGE-Privileg besitzt.

Note

In Firebird 3.0 und Firebird 4.0 ist das Privileg USAGE nur für Ausnahmen und Sequenzen verfügbar (in gen_id(gen_name, n) oder `nächster Wert für gen_name).Die Unterstützung des USAGE-Privilegs für andere Metadatenobjekte könnte in zukünftigen Versionen hinzugefügt werden.

Note

Für Sequenzen (Generatoren) gewährt das Privileg USAGE nur das Recht, die Sequenz mit der Funktion GEN_ID oder NEXT VALUE FOR zu inkrementieren.Die Anweisung SET GENERATOR ist ein Synonym für ALTER SEQUENCE …​ RESTART WITH …​ und gilt als DDL-Anweisung.Standardmäßig haben nur der Besitzer der Sequenz und Administratoren die Rechte für solche Operationen.Das Recht, den Anfangswert einer beliebigen Sequenz zu setzen, kann mit GRANT ALTER ANY SEQUENCE gewährt werden, was für allgemeine Benutzer nicht empfohlen wird.

docnext count = 5

Beispiele für die Gewährung des USAGE-Privilegs

  1. Einer Rolle das Privileg USAGE für eine Sequenz gewähren:

    GRANT USAGE ON SEQUENCE GEN_AGE
      TO ROLE MANAGER;
  2. Gewähren des USAGE-Privilegs für eine Sequenz an einen Trigger:

    GRANT USAGE ON SEQUENCE GEN_AGE
      TO TRIGGER TR_AGE_BI;
  3. Gewähren des Privilegs USAGE für eine Ausnahme für ein Paket:

    GRANT USAGE ON EXCEPTION
      TO PACKAGE PKG_BILL;

DDL Privileges

Standardmäßig können nur Administratoren neue Metadatenobjekte erstellen;Das Ändern oder Löschen dieser Objekte ist auf den Eigentümer des Objekts (seinen Ersteller) und Administratoren beschränkt.DDL-Berechtigungen können verwendet werden, um anderen Benutzern Berechtigungen für diese Vorgänge zu erteilen.

Verfügbare DDL-Berechtigungen
CREATE

Ermöglicht die Erstellung eines Objekts des angegebenen Typs

ALTER ANY

Ermöglicht die Änderung jedes Objekts des angegebenen Typs

DROP ANY

Ermöglicht das Löschen jedes Objekts des angegebenen Typs

ALL [PRIVILEGES]

Kombiniert die Berechtigungen CREATE, ALTER ANY und DROP ANY für den angegebenen Typ

Note

Es gibt keine separaten DDL-Berechtigungen für Trigger und Indizes.Die erforderlichen Berechtigungen werden von der Tabelle oder Sicht geerbt.Das Erstellen, Ändern oder Löschen eines Triggers oder Index erfordert das Privileg ALTER ANY TABLE oder ALTER ANY VIEW.

Beispiele für die Gewährung von DDL-Berechtigungen

  1. Erlaube dem Benutzer JOE, Tabellen zu erstellen

    GRANT CREATE TABLE
      TO USER Joe;
  2. Erlaube dem Benutzer JOE, jede Prozedur zu ändern

    GRANT ALTER ANY PROCEDURE
      TO USER Joe;

Datenbank-DDL-Berechtigungen

Die Syntax für die Vergabe von Berechtigungen zum Erstellen, Ändern oder Löschen einer Datenbank weicht von der normalen Syntax für die Vergabe von DDL-Berechtigungen für andere Objekttypen ab.

Verfügbare Datenbank-DDL-Berechtigungen
CREATE

Ermöglicht die Erstellung einer Datenbank

ALTER

Ermöglicht die Änderung der aktuellen Datenbank

DROP

Ermöglicht das Löschen der aktuellen Datenbank

ALL [PRIVILEGES]

Kombiniert die Berechtigungen ALTER und DROP.ALL beinhaltet nicht das CREATE-Privileg.

Die Berechtigungen ALTER DATABASE und DROP DATABASE gelten nur für die aktuelle Datenbank, während die DDL-Berechtigungen ALTER ANY und DROP ANY für andere Objekttypen für alle Objekte des angegebenen Typs in der aktuellen Datenbank gelten.Die Berechtigung zum Ändern oder Löschen der aktuellen Datenbank kann nur von Administratoren erteilt werden.

Das Privileg CREATE DATABASE ist ein besonderes Privileg, da es in der Sicherheitsdatenbank gespeichert wird.Eine Liste von Benutzern mit dem Privileg CREATE DATABASE ist in der virtuellen Tabelle SEC$DB_CREATORS verfügbar.Nur Administratoren in der Sicherheitsdatenbank kann die Berechtigung zum Anlegen einer neuen Datenbank erteilen.

Note

SCHEMA ist derzeit ein Synonym für DATABASE;dies kann sich in einer zukünftigen Version ändern, daher empfehlen wir immer DATABASE zu verwenden

Beispiele für die Gewährung von Datenbank-DDL-Berechtigungen

  1. Gewähren von SUPERUSER die Berechtigung zum Erstellen von Datenbanken:

    GRANT CREATE DATABASE
      TO USER Superuser;
  2. Gewähren Sie JOE das Recht, ALTER DATABASE für die aktuelle Datenbank auszuführen:

    GRANT ALTER DATABASE
      TO USER Joe;
  3. Gewähren Sie FEDOR das Recht, die aktuelle Datenbank zu löschen:

    GRANT DROP DATABASE
      TO USER Fedor;