Rollen zuweisen
Das Zuweisen einer Rolle ähnelt dem Erteilen einer Berechtigung.Eine oder mehrere Rollen können einem oder mehreren Benutzern zugewiesen werden, einschließlich des Benutzer PUBLIC
, mit einer GRANT
-Anweisung.
Das Zuweisen einer Rolle ähnelt dem Erteilen einer Berechtigung.Eine oder mehrere Rollen können einem oder mehreren Benutzern zugewiesen werden, einschließlich des Benutzer PUBLIC
, mit einer GRANT
-Anweisung.
WITH ADMIN OPTION
-KlauselDie optionale WITH ADMIN OPTION
-Klausel ermöglicht es den in der Benutzerliste angegebenen Benutzern, anderen Benutzern die angegebene(n) Rolle(n) zu erteilen.
Caution
|
Es ist möglich, diese Option |
Bei kumulativen Rollen kann ein Benutzer die WITH ADMIN OPTION
einer sekundären Rolle nur dann ausüben, wenn allen Zwischenrollen auch WITH ADMIN OPTION
gewährt wird.Das heißt, GRANT ROLEA TO ROLE ROLEB WITH ADMIN OPTION
, GRANT ROLEB TO ROLE ROLEC
, GRANT ROLEC TO USER USER1 WITH ADMIN OPTION
erlaubt USER1
nur, ROLEC
anderen Benutzern oder Rollen zu gewähren, während GRANT ROLEB TO ROLE ROLEC WITH ADMIN OPTION
es USER1
ermöglicht ROLEA
, ROLEB
und ROLEC
anderen Benutzern zu gewähren.
Dem Benutzer IVAN
die Rollen DIRECTOR
und MANAGER
zuweisen:
GRANT DIRECTOR, MANAGER
TO USER IVAN;
Zuweisen der Rolle MANAGER
an den Benutzer ALEX
mit der Berechtigung, diese Rolle anderen Benutzern zuzuweisen:
GRANT MANAGER
TO USER ALEX WITH ADMIN OPTION;
Zuweisen der Rolle DIRECTOR
dem Benutzer ALEX
als Standardrolle:
GRANT DEFAULT DIRECTOR
TO USER ALEX;
Die Rolle MANAGER
der Rolle DIRECTOR
zuweisen:
GRANT MANAGER
TO ROLE DIRECTOR;
WITH GRANT OPTION
-KlauselDie optionale WITH GRANT OPTION
-Klausel ermöglicht es den in der Benutzerliste angegebenen Benutzern, anderen Benutzern die in der Berechtigungsliste angegebenen Berechtigungen zu erteilen.
Caution
|
Diese Option kann dem Benutzer |
GANTED BY
-KlauselWenn Berechtigungen in einer Datenbank gewährt werden, wird standardmäßig der aktuelle Benutzer als Erteilender aufgezeichnet.Die GRANTED BY
-Klausel ermöglicht es dem aktuellen Benutzer, diese Privilegien als anderen Benutzer zu erteilen.
Wenn die REVOKE
-Anweisung verwendet wird, schlägt sie fehl, wenn der aktuelle Benutzer nicht der Benutzer ist, der in der GRANTED BY
-Klausel genannt wurde.
Die GRANTED BY
(und AS
)-Klausel kann nur vom Datenbankbesitzer und anderen Administratoren verwendet werden.Der Objektbesitzer kann GRANTED BY
nur verwenden, wenn er auch über Administratorrechte verfügt.
AS username
Die nicht standardmäßige AS
-Klausel wird als Synonym der GRANTED BY
-Klausel unterstützt, um die Migration von anderen Datenbanksystemen zu vereinfachen.
Für Tabellen und Views ist es im Gegensatz zu anderen Metadatenobjekten möglich, mehrere Privilegien gleichzeitig zu erteilen.
SELECT
Erlaubt dem Benutzer oder Objekt, Daten aus der Tabelle oder Ansicht auszuwählen
INSERT
Erlaubt dem Benutzer oder Objekt, Zeilen in die Tabelle oder Ansicht einzufügen
DELETE
Ermöglicht dem Benutzer oder Objekt das Löschen von Zeilen aus der Tabelle oder Ansicht or
UPDATE
Erlaubt dem Benutzer oder Objekt, Zeilen in der Tabelle oder Ansicht zu aktualisieren, optional auf bestimmte Spalten beschränkt specific
REFERENCES
Erlaubt dem Benutzer oder Objekt, die Tabelle über einen Fremdschlüssel zu referenzieren, optional beschränkt auf die angegebenen Spalten.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.
ALL [PRIVILEGES]
Kombiniert die Privilegien SELECT
, INSERT
, UPDATE
, DELETE
und REFERENCES
in einem einzigen Paket
GRANT <privilege>
auf TabellenSELECT
- und INSERT
-Berechtigungen für Benutzer ALEX
:
GRANT SELECT, INSERT ON TABLE SALES
TO USER ALEX;
Das SELECT
-Privileg für die Rollen MANAGER
sowie ENGINEER
und für den Benutzer IVAN
:
GRANT SELECT ON TABLE CUSTOMER
TO ROLE MANAGER, ROLE ENGINEER, USER IVAN;
Alle Berechtigungen für die Rolle "ADMINISTRATOR", zusammen mit der Berechtigung, anderen dieselben Berechtigungen zu erteilen:
GRANT ALL ON TABLE CUSTOMER
TO ROLE ADMINISTRATOR
WITH GRANT OPTION;
Die SELECT
- sowie REFERENCES
-Privilegien in der Spalte NAME
für alle Benutzer und Objekte:
GRANT SELECT, REFERENCES (NAME) ON TABLE COUNTRY
TO PUBLIC;
Das SELECT
-Privileg wird dem Benutzer IVAN
vom Benutzer ALEX
gewährt:
GRANT SELECT ON TABLE EMPLOYEE
TO USER IVAN
GRANTED BY ALEX;
Gewähren der Berechtigung UPDATE
für die Spalten FIRST_NAME
, LAST_NAME
:
GRANT UPDATE (FIRST_NAME, LAST_NAME) ON TABLE EMPLOYEE
TO USER IVAN;
Gewähren der INSERT
-Berechtigung für die gespeicherte Prozedur ADD_EMP_PROJ
:
GRANT INSERT ON EMPLOYEE_PROJECT
TO PROCEDURE ADD_EMP_PROJ;
EXECUTE
-BerechtigungDas Privileg EXECUTE
gilt für gespeicherte Prozeduren, gespeicherte Funktionen (einschließlich UDFs) und Pakete.Es ermöglicht dem Empfänger, das angegebene Objekt auszuführen und gegebenenfalls seine Ausgabe abzurufen.
Im Fall von auswählbaren gespeicherten Prozeduren verhält es sich insofern wie ein SELECT
-Privileg, insofern diese Art von gespeicherter Prozedur als Reaktion auf eine SELECT
-Anweisung ausgeführt wird.
Note
|
Bei Paketen kann das `EXECUTE'-Privileg nur für das gesamte Paket vergeben werden, nicht für einzelne Unterprogramme. |
EXECUTE
-PrivilegsEiner Rolle das Privileg EXECUTE
für eine gespeicherte Prozedur gewähren:
GRANT EXECUTE ON PROCEDURE ADD_EMP_PROJ
TO ROLE MANAGER;
Einer Rolle das Privileg EXECUTE
für eine gespeicherte Funktion gewähren:
GRANT EXECUTE ON FUNCTION GET_BEGIN_DATE
TO ROLE MANAGER;
Gewähren des EXECUTE
-Privilegs für ein Paket an den Benutzer PUBLIC
:
GRANT EXECUTE ON PACKAGE APP_VAR
TO USER PUBLIC;
Erteilen des EXECUTE
-Privilegs für eine Funktion an ein Paket:
GRANT EXECUTE ON FUNCTION GET_BEGIN_DATE
TO PACKAGE APP_VAR;
USAGE
-PrivilegUm 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 |
Note
|
Für Sequenzen (Generatoren) gewährt das Privileg |
USAGE
-PrivilegsEiner Rolle das Privileg USAGE
für eine Sequenz gewähren:
GRANT USAGE ON SEQUENCE GEN_AGE
TO ROLE MANAGER;
Gewähren des USAGE
-Privilegs für eine Sequenz an einen Trigger:
GRANT USAGE ON SEQUENCE GEN_AGE
TO TRIGGER TR_AGE_BI;
Gewähren des Privilegs USAGE
für eine Ausnahme für ein Paket:
GRANT USAGE ON EXCEPTION
TO PACKAGE PKG_BILL;
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.
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 |
Erlaube dem Benutzer JOE
, Tabellen zu erstellen
GRANT CREATE TABLE
TO USER Joe;
Erlaube dem Benutzer JOE
, jede Prozedur zu ändern
GRANT ALTER ANY PROCEDURE
TO USER Joe;
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.
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
|
|
Gewähren von SUPERUSER
die Berechtigung zum Erstellen von Datenbanken:
GRANT CREATE DATABASE
TO USER Superuser;
Gewähren Sie JOE
das Recht, ALTER DATABASE
für die aktuelle Datenbank auszuführen:
GRANT ALTER DATABASE
TO USER Joe;
Gewähren Sie FEDOR
das Recht, die aktuelle Datenbank zu löschen:
GRANT DROP DATABASE
TO USER Fedor;