## Rollen

Eine Rolle ist eine Zusammenfassung von Privilegien, die Datenbankbenutzern, Benutzergruppen oder anderen Rollen zugewiesen werden können.

Während Privilegien immer gelten, müssen Rollen für einzelne Datenbanksitzungen explizit aktiviert werden. Jeder Benutzer, an den Rollen vergeben wurden, kann auch festlegen, welche der Rollen in jeder seiner Datenbanksitzungen aktiv sein soll. Diese Festlegung kann nach Eröffnen einer Datenbanksitzung geändert werden.

### Voraussetzungen

Sie benötigen die Demo-Daten für das SQL-Tutorial.

Starten Sie das Query Tool SQL Studio als Datenbankadministrator MONA mit dem Kennwort RED und melden Sie sich an die Demo-Datenbankinstanz DEMODB an.

### Anlegen einer Rolle

Eröffnen Sie eine Datenbanksitzung für den Datenbankadministrator MONA und verwenden Sie die CREATE ROLE-Anweisung für das Anlegen einer Rolle.

CREATE ROLE role_1

//

CREATE ROLE role_2

//

CREATE ROLE role_3

Die Rollen ROLE_1, ROLE_2 und ROLE_3 werden angelegt.

Siehe auch:

SQL-Referenzhandbuch, CREATE ROLE-Anweisung (create_role_statement)

### Vergeben von Privilegien

Eröffnen Sie eine Datenbanksitzung für den Datenbankadministrator MONA und verwenden Sie die GRANT-Anweisung für die Vergabe von Privilegien.

GRANT SELECT, UPDATE, INSERT ON hotel.city TO role_1

Der Datenbankadministrator MONA verwaltet die Ortstabelle. Er entscheidet, dass der Rolle ROLE_1 die Rechte SELECT, UPDATE und INSERT für die Tabelle city zugeordnet werden.

GRANT DELETE ON hotel.city TO role_2

Der Rolle ROLE_2 wird das Recht DELETE für die Tabelle city zugeordnet.

GRANT DELETE, ALTER ON hotel.city TO role_3

Der Rolle ROLE_3 werden die Rechte DELETE und ALTER für die Tabelle city zugeordnet.

Siehe auch:

SQL-Referenzhandbuch, GRANT-Anweisung (grant_statement)

### Zuweisen einer Rolle

Legen Sie gegebenenfalls die Datenbankbenutzer DAVID und BORIS an, wie in Datenbankbenutzer und ihre Privilegien beschrieben.

Eröffnen Sie eine Datenbanksitzung für den Datenbankadministrator MONA und v erwenden Sie die GRANT-Anweisung, um einem anderen Datenbankbenutzer die gewünschten Rollen zuzuweisen.

GRANT role_1 TO david

//

GRANT role_2 TO david

//

GRANT role_3 to boris

Die Rollen ROLE_1 und ROLE_2 werden dem Datenbankbenutzer DAVID zugewiesen.

Die Rolle ROLE_3 wird dem Datenbankbenutzer BORIS zugewiesen.

### Festlegen, welche Rolle verwendet werden soll

Eröffnen Sie eine Datenbanksitzung für den Datenbankadministrator MONA. Verwenden Sie die ALTER USER-Anweisung, um festzulegen, welche der Rollen, die einem Datenbankbenutzer zugeordnet wurden, beim Eröffnen einer Datenbanksitzung verwendet werden sollen.

ALTER USER david DEFAULT ROLE role_1

ALTER USER boris DEFAULT ROLE role_3

Für den Datenbankbenutzer DAVID soll die Rolle ROLE_1, für BORIS die Rolle ROLE_3 beim Eröffnen seiner Datenbanksitzung aktiviert werden.

Siehe auch:

SQL-Referenzhandbuch, ALTER USER-Anweisung (alter_user_statement)

Während einer Datenbanksitzung können Sie mit Hilfe der SET-Anweisung weitere einem Datenbankbenutzer zugeordnete Rollen aktivieren.

Eröffnen Sie eine Datenbanksitzung für den Datenbankbenutzer DAVID.

SET ROLE ALL

Alle Rollen (ROLE_1 und ROLE_2) sollen aktiviert werden.

Siehe auch:

SQL-Referenzhandbuch, SET-Anweisung (set_statement)

### Entziehen von Privilegien

Eröffnen Sie eine Datenbanksitzung für den Datenbankadministrator MONA und verwenden Sie die REVOKE-Anweisung für das Entziehen von Privilegien.

REVOKE DELETE ON hotel.city FROM ROLE_3

Der Rolle ROLE_3 wird das Privileg DELETE entzogen.

Siehe auch:

SQL-Referenzhandbuch, REVOKE-Anweisung (revoke_statement)

Systemtabellen auswerten, ROLES, SESSION_ROLES, ROLEPRIVILEGES

### Löschen von Rollen

Eröffnen Sie eine Datenbanksitzung für den Datenbankadministrator MONA und v erwenden Sie die DROP ROLE-Anweisung, um Rollen zu löschen.

DROP ROLE ROLE_3

Die Rolle ROLE_3 wird gelöscht.

Siehe auch:

SQL-Referenzhandbuch, DROP ROLE-Anweisung (drop_role_statement)

Weitere Beispiele zur Autorisierung