GRANT vergibt folgende Privilegien:
Tabellen- und Spalten-Privilegien für Basistabellen und Views
Sonder-Privilegien für Datenbanken und Storage Groups
EXECUTE-Privilegien für Routinen
Ist die GRANT-Anweisung in einer CREATE SCHEMA-Anweisung enthalten, darf die GRANT-Anweisung keine Sonder-Privilegien vergeben.
Der aktuelle Berechtigungsschlüssel muss die angegebenen Privilegien vergeben dürfen:
Er ist der Berechtigungsschlüssel des universellen Benutzers.
Er ist Eigentümer der Tabelle, der Datenbank, der Storage Group bzw. der Routine.
Er besitzt die GRANT-Berechtigung zur Weitergabe der Privilegien.
Welcher Berechtigungsschlüssel Eigentümer ist, ist in den Views SCHEMATA, SPACES und STOGROUPS abgelegt. Ob der Berechtigungsschlüssel die GRANT-Berechtigung für ein Privileg besitzt, erfahren Sie aus den Views TABLE_PRIVILEGES, COLUMN_PRIVILEGES, USAGE_PRIVILEGES, CATALOG_PRIVILEGES und ROUTINE_PRIVILEGES (siehe Kapitel „Informationsschemata").
Nur der Berechtigungsschlüssel, der die Privilegien vergeben hat, der sog. Grantor, kann die Privilegien wieder entziehen.
Die GRANT-Anweisung hat mehrere Formate. Beispiele befinden sich beim jeweiligen Format.
Siehe auch
REVOKE, CREATE SCHEMA
GRANT-Format für Tabellen- und Spalten-Privilegien
GRANT
{ ALL PRIVILEGES |
tabellen_und_spalten_privileg ,...}
ON [TABLE]
tabelle
TO { PUBLIC |
berechtigungsschlüssel },...
[WITH GRANT OPTION]
tabellen_und_spalten_privileg ::=
{
SELECT |
DELETE |
INSERT |
UPDATE [(
spalte ,... )] |
REFERENCES [(
spalte ,... )]
}
ALL PRIVILEGES
Alle Tabellen- und Spalten-Privilegien werden vergeben, die der aktuelle Berechtigungsschlüssel vergeben darf. ALL PRIVILEGES umfasst die Privilegien SELECT, DELETE, INSERT, UPDATE und REFERENCES.
tabellen_und_spalten_privileg
Die Tabellen- und Spalten-Privilegien werden einzeln vergeben. Sie können mehrere Privilegien angeben.
ON [TABLE] tabelle
Name der Tabelle, für die Sie Privilegien vergeben wollen.
Wenn Sie die GRANT-Anweisung innerhalb einer CREATE SCHEMA-Anweisung verwenden, dürfen Sie den Tabellennamen nur mit den Datenbank- und Schemanamen aus der CREATE SCHEMA-Anweisung qualifizieren.
Die Tabelle kann eine Basistabelle oder ein View sein. Für einen nicht änderbaren View können Sie nur das Privileg SELECT vergeben.
TO PUBLIC
Die Privilegien werden der Allgemeinheit verliehen. Jeder Berechtigungsschlüssel besitzt zusätzlich zu seinen eigenen die Privilegien, die an PUBLIC verliehen wurden. Auch später hinzugefügte Berechtigungsschlüssel besitzen diese Privilegien.
TO berechtigungsschlüssel
Die Privilegien gelten für den Berechtigungsschlüssel berechtigungsschlüssel. Sie können mehrere Berechtigungsschlüssel angeben.
WITH GRANT OPTION
Die angegebenen Berechtigungsschlüssel erhalten zusätzlich zu den Privilegien die GRANT-Berechtigung. D.h. die Berechtigungsschlüssel sind berechtigt, die erhaltenen Privilegien an andere Berechtigungsschlüssel weiterzugeben. Die Klausel WITH GRANT OPTION dürfen Sie nicht in Verbindung mit PUBLIC verwenden.
WITH GRANT OPTION nicht angegeben:
Die angegebenen Berechtigungsschlüssel können die verliehenen Privilegien nicht weitergeben.
tabellen_und_spalten_privileg
Angabe der einzelnen Tabellen- und Spalten-Privilegien.
SELECT
Privileg, das das Lesen von Sätzen der Tabelle erlaubt.
DELETE
Privileg, das das Löschen von Sätzen der Tabelle erlaubt.
INSERT
Privileg, das das Einfügen von Sätzen in die Tabelle erlaubt.
UPDATE [(spalte,...)]
Privileg, das das Ändern von Sätzen der Tabelle erlaubt.
Das Ändern kann auf die angegebenen Spalten eingeschränkt werden.
spalte muss ein Spaltenname der angegebenen Tabelle sein. Sie können mehrere Spalten angeben.
(spalte,...) nicht angegeben:
Es ist das Ändern von allen Spalten der Tabelle erlaubt. Auch später hinzugefügte Spalten dürfen geändert werden.
REFERENCES [(spalte,...)]
Privileg, das die Definition von Referenzbedingungen erlaubt, die sich auf die Tabelle beziehen.
Die Referenzierung kann auf die angegebenen Spalten eingeschränkt werden.
spalte muss ein Spaltenname der angegebenen Tabelle sein. Sie können mehrere Spalten angeben.
(spalte,...) nicht angegeben:
Es ist das Referenzieren von allen Spalten der Tabelle erlaubt. Auch später hinzugefügte Spalten dürfen referenziert werden.
Beispiel
Das Beispiel vergibt alle Tabellen-Privilegien für BILDER an den Berechtigungsschlüssel UTIANW1 und die Tabellen-Privilegien SELECT, DELETE, INSERT, UPDATE für BESCHREIBUNG an den Berechtigungsschlüssel UTIANW2. Die Berechtigungsschlüssel müssen zuvor erzeugt werden.
GRANT ALL PRIVILEGES ON bilder TO utianw1
GRANT SELECT, DELETE, INSERT, UPDATE ON beschreibung TO utianw2
GRANT-Format für Sonder-Privilegien
GRANT { ALL SPECIAL PRIVILEGES |
sonder_privileg ,...}
ON { CATALOG
catalog | STOGROUP
stogroup }
TO { PUBLIC |
berechtigungsschlüssel },...
[WITH GRANT OPTION]
sonder_privileg ::=
{
CREATE USER |
CREATE SCHEMA |
CREATE STOGROUP |
UTILITY
|
USAGE
}
ALL SPECIAL PRIVILEGES
Alle Sonder-Privilegien werden vergeben, die der aktuelle Berechtigungsschlüssel vergeben darf. ALL SPECIAL PRIVILEGES umfasst die Sonder-Privilegien.
sonder_privileg
Die Sonder-Privilegien werden einzeln vergeben. Sie können mehrere Sonder-Privilegien angeben.
ON CATALOG catalog
Name der Datenbank, für die Sie Sonder-Privilegien vergeben wollen.
ON STOGROUP stogroup
Name der Storage Group, für die Sie das Privileg USAGE vergeben wollen. Der einfache Name der Storage Group kann durch einen Datenbanknamen qualifiziert werden.
TO
Siehe "GRANT - Privilegien vergeben".
WITH GRANT OPTION
Siehe "GRANT - Privilegien vergeben".
sonder_privileg
Angabe der einzelnen Sonder-Privilegien.
CREATE USER
Sonder-Privileg, das das Definieren und Löschen von Berechtigungsschlüsseln erlaubt. Sie dürfen das Privileg CREATE USER nur für eine Datenbank vergeben.
CREATE SCHEMA
Sonder-Privileg, das das Definieren von Datenbank-Schemata erlaubt. Sie dürfen das Privileg CREATE SCHEMA nur für eine Datenbank vergeben.
CREATE STOGROUP
Sonder-Privileg, das das Definieren von Storage Groups erlaubt. Sie dürfen das Privileg CREATE STOGROUP nur für eine Datenbank vergeben.
UTILITY
Sonder-Privileg, das die Verwendung von Utility-Anweisungen erlaubt. Sie dürfen das Privileg UTILITY nur für eine Datenbank vergeben.
USAGE
Sonder-Privileg, das die Verwendung der Storage Group erlaubt. Sie dürfen das Privileg USAGE nur für eine Storage Group vergeben.
Beispiele
Das Beispiel vergibt das Sonderprivileg CREATE SCHEMA an einen bereits bestehenden Berechtigungsschlüssel UTIANW.
GRANT CREATE SCHEMA ON CATALOG auftragkunden TO utianw
Das Beispiel vergibt alle Sonder-Privilegien für die Datenbank AUFTRAGKUNDEN an den Berechtigungsschlüssel UTIVERW.
Zusätzlich wird das Sonder-Privileg an UTIVERW vergeben, das die Verwendung der Storage Group STOGROUP1 erlaubt.
GRANT ALL SPECIAL PRIVILEGES ON CATALOG auftragkunden TO utiverw GRANT USAGE ON STOGROUP stogroup1 TO utiverw
GRANT-Format für EXECUTE-Privilegien (Prozedur)
GRANT EXECUTE ON SPECIFIC PROCEDURE
prozedur
TO { PUBLIC |
berechtigungsschlüssel },...
[WITH GRANT OPTION]
prozedur ::=
routine
EXECUTE ON SPECIFIC PROCEDURE prozedur
Name der Prozedur, für die das Privileg weitergegeben werden soll. Der einfache Prozedurname kann durch einen Datenbank- und Schemanamen qualifiziert werden.
Wenn Sie die GRANT-Anweisung innerhalb einer CREATE SCHEMA-Anweisung verwenden, dann dürfen Sie den Prozedurnamen nur mit den Datenbank- und Schemanamen aus der CREATE SCHEMA-Anweisung qualifizieren.
TO
Siehe "GRANT - Privilegien vergeben".
WITH GRANT OPTION
Siehe "GRANT - Privilegien vergeben".
Beispiel
Das Privileg, die Prozedur myproc
ausführen zu dürfen, wird an die Allgemeinheit vergeben.
GRANT EXECUTE ON SPECIFIC PROCEDURE myproc TO PUBLIC
GRANT-Format für EXECUTE-Privilegien (UDF)
GRANT EXECUTE ON SPECIFIC FUNCTION
udf
TO { PUBLIC |
berechtigungsschlüssel },...
[WITH GRANT OPTION]
udf ::=
routine
EXECUTE ON SPECIFIC FUNCTION udf
Name der UDF, für die das Privileg weitergegeben werden soll. Der einfache UDF-Name kann durch einen Datenbank- und Schemanamen qualifiziert werden.
Wenn Sie die GRANT-Anweisung innerhalb einer CREATE SCHEMA-Anweisung verwenden, dann dürfen Sie den UDF-Namen nur mit den Datenbank- und Schemanamen aus der CREATE SCHEMA-Anweisung qualifizieren.
TO
Siehe "GRANT - Privilegien vergeben".
WITH GRANT OPTION
Siehe "GRANT - Privilegien vergeben".
Beispiel
Das Privileg, die UDF myudf
ausführen zu dürfen, wird an die Allgemeinheit vergeben.
GRANT EXECUTE ON SPECIFIC FUNCTION myudf TO PUBLIC