## Datenbankbenutzer und ihre Privilegien

Datenbankadministratoren können weitere Datenbankbenutzer anlegen und Privilegien vergeben.

### 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 von Datenbankbenutzern

Verwenden Sie die CREATE USER-Anweisung für das Anlegen weiterer Datenbankbenutzer.

CREATE USER david PASSWORD blue RESOURCE

Der Datenbankadministrator MONA hat den Datenbankbenutzer DAVID mit dem Kennwort BLUE erzeugt. Für diesen Datenbankbenutzer wurde die Datenbankbenutzerklasse RESOURCE festgelegt.

CREATE USER boris PASSWORD pink STANDARD

Der Datenbankadministrator MONA hat den Datenbankbenutzer BORIS mit dem Kennwort PINK erzeugt. Für diesen Datenbankbenutzer wurde die Datenbankbenutzerklasse STANDARD festgelegt.

Siehe auch:

SQL-Referenzhandbuch, CREATE USER-Anweisung (create_user_statement)

### Ändern der Datenbankbenutzerklasse

Verwenden Sie die ALTER USER-Anweisung für das Ändern der Datenbankbenutzerklasse.

ALTER USER boris RESOURCE

Für den Datenbankbenutzer BORIS wird die Datenbankbenutzerklasse RESOURCE festgelegt.

Siehe auch:

SQL-Referenzhandbuch, ALTER USER-Anweisung (alter_user_statement)

### Ändern des Kennwortes

Verwenden Sie die ALTER PASSWORD-Anweisung, um das Kennwort eines Datenbankbenutzers zu ändern.

● Melden Sie sich als Datenbanksystemadministrator (Vorschlagswerte: DBADMIN/SECRET) an.
ALTER PASSWORD boris red
Das Kennwort des Datenbankbenutzer BORIS wird in RED verändert.

Sie können auch folgende Möglichkeit der ALTER PASSWORD-Anweisung verwenden:

● Melden Sie sich als Datenbankbenutzer BORIS (BORIS/RED) an.
ALTER PASSWORD red TO pink
Das Kennwort des Datenbankbenutzer BORIS wird in PINK verändert.

Siehe auch:

SQL-Referenzhandbuch, ALTER PASSWORD-Anweisung (alter_password_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, DELETE, INSERT ON hotel.customer TO david

Der Datenbankadministrator MONA verwaltet die Kundentabelle im Schema HOTEL. Er entscheidet, dass der RESOURCE-Benutzer DAVID das Recht besitzen soll, die Kundendaten zu pflegen, jedoch keine Änderung an der Struktur der Tabelle vornehmen kann.

GRANT SELECT ON hotel.customer TO PUBLIC

Alle im System befindlichen Datenbankbenutzer sollen die Möglichkeit besitzen, lesend auf die Daten der Kundentabelle zuzugreifen. Die Privilegienvergabe für alle Datenbankbenutzer kann mit Hilfe des Schlüsselwortes PUBLIC erfolgen.

Überprüfen Sie die Vergabe der Privilegien z.B. anhand der Informationen in der Systemtabelle TABLEPRIVILEGES. Melden Sie sich dazu als Benutzer DAVID an die Datenbankinstanz DEMODB an.

SELECT * FROM DOMAIN.TABLEPRIVILEGES
WHERE schemaname = 'HOTEL' AND tablename = 'CUSTOMER'

Ergebnis

SCHEMANAME | OWNER | TABLENAME | GRANTOR | GRANTEE | PRIVILEGE | IS_GRANTABLE
HOTEL | MONA | CUSTOMER | MONA | DAVID | SELECT | NO
HOTEL | MONA | CUSTOMER | MONA | DAVID | UPDATE | NO
HOTEL | MONA | CUSTOMER | MONA | DAVID | INSERT | NO
HOTEL | MONA | CUSTOMER | MONA | DAVID | DELETE | NO
HOTEL | MONA | CUSTOMER | MONA | PUBLIC | SELECT | NO

Siehe auch:

SQL-Referenzhandbuch, GRANT-Anweisung (grant_statement)

Systemtabellen auswerten, TABLEPRIVILEGES

### 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 customer FROM david

Der RESOURCE-Benutzer DAVID soll Zeilen der Kundentabelle nicht löschen dürfen.

Siehe auch:

SQL-Referenzhandbuch, REVOKE-Anweisung (revoke_statement)

### Löschen von Datenbankbenutzern

Verwenden Sie die DROP USER-Anweisung, um Datenbankbenutzer zu löschen.

DROP USER boris

Wenn keine CASCADE-Option oder die Option CASCADE angegeben wird, werden zusammen mit dem Datenbankbenutzer alle Synonyme und Tabellen des zu löschenden Benutzers, sowie alle darauf basierenden Indizes, Privilegien, View-Tabellen usw. gelöscht.

Siehe auch:

SQL-Referenzhandbuch, DROP USER-Anweisung (drop_user_statement)

Weitere Beispiele zur Autorisierung