Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

GRANT - Privilegien vergeben

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