11.1
Grundlegende Features und Maßnahmen
263
11.1 Grundlegende Features und Maßnahmen
Obwohl es eine Reihe von anderen Möglichkeiten gibt, ist die häufigste Form der
Benutzerverwaltung das Anlegen von Usern in der Datenbank. Die Zugriffskon-
trolle über die Benutzerverwaltung ist die Grundlage eines guten Sicherheitsstan-
dards.
11.1.1 Benutzer, Rollen und Profile
Jeder Datenbankbenutzer benötigt einen Account in der Datenbank. Die Authenti-
fizierung kann über ein in der Datenbank verschlüsselt gespeichertes Passwort,
das Betriebssystem oder andere externe Methoden wie LDAP erfolgen. Privilegien
können dem Benutzer direkt oder über Rollen zugewiesen werden. Rollen können
Privilegien oder andere Rollen enthalten.
Profile sind Vorgaben über das Verhalten von Sitzungen, beschränken die Benut-
zung von Systemressourcen und legen Passwort-Policies fest. Jeder Benutzer
besitzt genau ein Profil. Standardmäßig wird das Profil DEFAULT zugewiesen,
das automatisch beim Erstellen der Datenbank angelegt wird. Die Verwaltung von
Benutzer, Rollen und Profilen kann mit SQL*Plus oder dem Oracle Enterprise
Manager erfolgen.
Benutzer und Rollen verwalten
Ein Benutzer wird mit dem Befehl »CREATE USER« angelegt. Um einen Benut-
zer anlegen zu können, müssen Sie das CREATE USER-Privileg besitzen, das Sie
mit der DBA-Rolle automatisch besitzen.
Im folgenden Beispiel wird ein Benutzer mit dem Namen mitp angelegt und der
Default-Tablespace USERS zugewiesen. In der Klausel IDENTIFIED BY wird das
Passwort festgelegt und verschlüsselt in der Datenbank gespeichert.
Tipp
Weisen Sie Benutzern Privilegien möglichst nicht direkt, sondern über Rollen
zu. Das verbessert die Übersichtlichkeit und vereinfacht die Wartung. Es gibt nur
wenige Ausnahmen, die aus technischen Gründen eine direkte Zuweisung erfor-
derlich machen.
Vorsicht
Das Privileg CREATE USER ist sehr mächtig. Achten Sie darauf, dass möglichst
wenige Administratoren dieses Privileg besitzen.
Kapitel 11
Sicherheit und Überwachung
264
Wenn Sie jetzt versuchen, sich mit dem Benutzer anzumelden, dann erhalten Sie
eine Fehlermeldung:
Der Benutzer wurde zwar erstellt, aber es wurden ihm keine Rechte zugewiesen.
Um sich an der Datenbank anmelden zu können, benötigt ein Benutzer mindes-
tens das Privileg CREATE SESSION.
Jetzt kann sich der Benutzer anmelden, er hat jedoch keine Rechte, weitere Aktivi-
täten auf der Datenbank auszuführen. Welche weiteren Privilegien er bekommt, ist
abhängig von der Rolle, die er in der Datenbank bzw. der Applikation spielen soll.
Die folgende Rolle ersetzt die RESOURCE-Rolle von Oracle:
SQL> CREATE USER mitp
2 IDENTIFIED BY mitp
3 DEFAULT TABLESPACE users;
Benutzer wurde erstellt.
Listing 11.1: Einen Benutzer in der Datenbank anlegen
SQL> CONNECT mitp/mitp
ERROR:
ORA-01045: user MITP lacks CREATE SESSION privilege; logon denied
Achtung: Sie sind nicht mehr mit ORACLE verbunden.
SQL> CONNECT / as sysdba
Connect durchgeführt.
SQL> GRANT CREATE SESSION TO mitp;
Benutzerzugriff (Grant) wurde erteilt.
SQL> CONNECT mitp/mitp
Connect durchgeführt.
Hinweis
Häufig wurden in der Praxis neuen Benutzern die Standardrollen CONNECT
und RESOURCE zugewiesen. Damit war der Benutzer in der Lage, gewisse Stan-
dardaktivitäten wie das Anlegen und Ändern von Objekten durchzuführen, und
er erhielt Quotas an allen Tablespaces. Vermeiden Sie möglichst die Verwendung
dieser Rollen. Zum einen sind sie, zumindest bis zur Version 10g, fragwürdig im
Hinblick auf die Sicherheit. Ein weiterer Aspekt ist, dass Oracle die Rollen zur
Verbesserung der Sicherheit in neuen Versionen ändert. So besitzt die Rolle
CONNECT seit der Version 10g nur noch das Privileg CREATE SESSION. Damit
haben Sie bei der Migration einen zusätzlichen Anpassungsaufwand. Erstellen
Sie eigene Rollen, die dann bei der Migration ohne Anpassung übernommen
werden können.
11.1
Grundlegende Features und Maßnahmen
265
Da der Benutzer das Privileg CREATE TABLE erhalten hat, sollte er in der Lage
sein, eine Tabelle anzulegen. Probieren wir es aus:
Der Benutzer hat zwar das Recht, Tabellen anzulegen, besitzt jedoch keine Quota
am Tablespace USERS, die ihm als Default-Tablespace zugewiesen wurde. Nach
Freigabe der Quota kann er die Tabelle anlegen.
Benutzer benötigen keine Quota für Temporary Tablespaces und UNDO-Tablespa-
ces. Diese Segmente können ohne zusätzliche Privilegien erstellt werden und wer-
den von Oracle verwaltet.
SQL> CREATE ROLE schema_user;
Rolle wurde erstellt.
SQL> GRANT CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR,
2 CREATE PROCEDURE,
3 CREATE SEQUENCE, CREATE TABLE, CREATE TRIGGER, CREATE TYPE
4 TO schema_user;
Benutzerzugriff (Grant) wurde erteilt.
SQL> GRANT schema_user TO mitp;
Benutzerzugriff (Grant) wurde erteilt.
SQL> CREATE TABLE buch(
2 isbn VARCHAR2(20),
3 title VARCHAR2(100));
FEHLER in Zeile 1:
ORA-01536: Speicherplatz-Zuteilung für Tablespace 'USERS' überschritten
SQL> ALTER USER mitp QUOTA 10M ON users;
Benutzer wurde geändert.
Hinweis
Quota werden häufig vernachlässigt, und es werden den Benutzern unbegrenzte
Ressourcen an den Tablespaces zugewiesen. Bedenken Sie jedoch, dass Quota ein
Security-Feature sind. Ohne Beschränkung könnte ein Benutzer Tablespaces oder
Dateisysteme zu 100% füllen und damit ein »Denial of Service« verursachen.
Wichtig
In Oracle 11g wurde die Funktionalität »Deferred Segment Creation« eingeführt.
Damit wird das erste Extent nicht beim Erstellen der Tabelle, sondern mit dem
Einfügen des ersten Satzes angelegt. Wenn Deferred Segment Creation aktiviert
ist (Standard), dann tritt der Fehler ORA-01536 nicht beim Anlegen der Tabelle,
sondern mit der ersten Transaktion auf.

Get Oracle 12c - Das umfassende Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.