Oracle: Benutzerverwaltung

Aus Wikibooks

Wechseln zu: Navigation, Suche
Wikibooks buchseite.svg Zurück zu " Datenbank starten " | One wikibook.svg Hoch zu " Inhaltsverzeichnis " | Wikibooks buchseite.svg Vor zu " Tablespace verwalten "


Inhaltsverzeichnis

[Bearbeiten] Durch Installation angelegte Benutzer

Wenn eine Oracle-Datenbank installiert wird, dann werden die folgenden Benutzer eingerichtet:


User-ID durch die Installation vergebenes Passwort Verwendung
SYS CHANGE_ON_INSTALL Systemstart und Betrieb
SYSTEM MANAGER Administration

Der User SYS hat die DBA-Rolle und das SYSDBA-Recht. Er kann sich an der Datenbank-Instanz anmelden, wenn diese noch nicht hochgefahren ist. SYS darf den STARTUP-Befehl ausführen. SYS kann nicht nur die Datenbank administrieren, sondern darf auch alle Tabelleninhalte der anderen Benutzer anzeigen lassen. Der User SYS kann selber Tabellen erstellen. Diese Möglichkeit sollte nur dafür genutzt werden, um Tabellen zu erstellen, die vom System oder für die Systemverwaltung genutzt werden.

Der User SYSTEM hat ebenfalls die DBA-Rolle und das SYSDBA-Recht. Er kann jedoch - im Vergleich zum SYS - nicht die Tabellen der anderen Benutzer anzeigen.

Die oben angegebenen Passwörter werden bei einer Installstion bis zur Version 9 automatisch vergeben. Ab der Version 10g muss man die Initial-Passwörter während der Installation selber bestimmen.

Weiter User-ID's, die bei der Installation zusätzlicher Komponenten erstellt werden:

User-ID durch die Installation vergebenes Passwort Verwendung
SCOTT TIGER Bis zur Version 8 wurde der User SCOTT immer als Beispiel-User mitinstalliert.

Seit der Version 9 (?) wird er nur noch dann erstellt, wenn die Beispiel-Datenbank SAMPLE installiert wird.

SYSMAN CHANGE_ON_INSTALL für die Administration der Datenbank aus dem Oracle Enterprise Manager
DBSNMP DBSNMP für Zugriffe aus dem Oracle Enterprise Manager
CTXSYS CTXSYS für die Administration der Text-Extender-Funktionen
DIP DIP Administration der Directory Integration Platform (DIP), die Änderungen im OID (Oracle Internet Directory) mit Applikationen in der Datenbank synchronisieren kann
DMSYS DMSYS für die Administration der data mining-Funktionen
EXFSYS EXFSYS für die Administration der Expression-Filter-Indizierungs-Funktionen
MDDATA MDDATA für die Administration der Oracle Spatial- und Geodaten-Funktionen
MDSYS MDSYS für die Administration der Oracle Spatial- und interMedia-Locator-Funktionen
MGMT_VIEW wird generiert wird für die Kontrolle durch den Oracle Enterprise Manager benutzt
OLAPSYS MANAGER für die Administration der OLAP metadata-Strukturen
ORDPLUGINS ORDPLUGINS der Oracle interMedia User
ORDSYS ORDSYS der Oracle interMedia Administrator Account
OUTLN OUTLN für die Administration der Tuning-Statistiken
SI_INFORMTN_SCHEMA SI_INFORMTN_SCHEMA für die Administration der Oracle interMedia-Funktionen

[Bearbeiten] Einen neuen Benutzer anlegen

Dem Benutzer muss ein Default-Tablespace zugewiesen werden. Falls dieser noch nicht existiert, oder falls der User einen eigenen Default-Tablespace erhalten soll, dann muss dieser zuvor eingerichtet werden.

create tablespace sjm 
   DATAFILE 'c:\oracle\oradata\oracle\sjm.dbf' size 5M reuse
   DEFAULT STORAGE (INITIAL 10K NEXT 50K 
                    MINEXTENTS 1 MAXEXTENTS 999) 
   ONLINE;
create user jm               -- Die User-ID lautet: jm
   identified by geheim      -- Passwort
   default tablespace sjm
   temporary tablespace sjm
   profile default 
   account unlock            -- Der Account soll nicht gesperrt sein
   quota 1M on sjm           -- Der User darf 1MB Platz verbrauchen
;

Die Minimalangaben zum Einrichten eines neuen Users sind der Name des Users und sein Passwort.

Einige Berechtigungen für den User jm vergeben:

grant connect to jm;               -- Connect-Berechtigung (erst dann ist ein Connect möglich)
grant create procedure to jm;      -- Prozeduren erstellen
grant create trigger to jm;        -- Trigger erstellen
grant create sequence to jm;       -- Sequence erstellen
grant create public synonym to jm; -- Synonyme erstellen
grant drop public synonym to jm;   -- Synonyme löschen
grant execute on sys.sp1 to jm;    -- Prozedur sys.sp1 ausführen 
grant select on pr_tab to jm;      -- Lesezugriffe auf Tabelle pr_tab
grant create tablespace to jm;     -- Tablespace erstellen

Anmeldung als der neu erstellte User jm:

connect jm/geheim;

Bei der externen Autorisierung übernimmt das Betriebssystem die Passwortprüfung für die Autentifizierung. In diesem Fall wird innerhalb der Oracle-Datenbank kein Passwort für einen Benutzer gespeichert bzw. überprüft. Der Benutzer muss lediglich der Oracle-Datenbank bekannt gemacht werden.

create user jmex 
   identified externally
   default tablespace sjm
   temporary tablespace sjm
   profile default 
   account unlock
   quota 1M on sjm
;

Passwort ändern:

alter user jm identified by tiger;

Das Passwort des eigenen Users kann man immer ändern. Das Passwort eines anderen Users kann nur der Administrator ändern.

[Bearbeiten] Einen bestehenden Benutzer löschen

Sollten für den Benutzer bereits abhängige Daten existieren, muss die 'cascade' Option angegeben werden um alle Abhängigkeiten mitzulöschen.

drop user username cascade;

[Bearbeiten] Systemprivilegien

Systemprivilegien sind Rechte zur Administration der Datenbank. Sie sind unabhängig von bestimmten Objekten (z.B. Tabellen, Spalten, Indices)

Welche Systemprivilegien hat ein User erhalten?

 select * from user_sys_privs;
 select * from dba_sys_privs;
 select * from session_privs;

[Bearbeiten] Objektprivilegien

Objektprivilegien sind Berechtigungen zur Administration bestimmter Datenbank-Objekte. Bei der Vergabe dieser Berechtigungen muss immer das betreffende Objekt genannt werden, auf das sich das Recht bezieht.

Welche Objektprivilegien hat ein User erhalten?

 select * from all_tab_privs;
 select * from user_tab_privs;
 select * from dba_tab_privs;

Durch die Quota wird festgelegt, wie viel Platz ein Benutzer in Anspruch nehmen darf für die Tabellen, die er erstellt und mit Daten füllt. Die Quota kann ein Administrator ändern:

 alter user jm quota 15M on stest;

Welche Spaltenprivilegien wurden vergeben?

 select * from all_col_privs;
 select * from user_col_privs;
 select * from dba_col_privs;

Welche Objektprivilegien hat er weitergegeben?

 select * from all_tab_privs_made;
 select * from user_tab_privs_made;

Welche Objektprivilegien hat er von anderen Usern erhalten?

 select * from all_tab_privs_recd;
 select * from user_tab_privs_recd;

Welche Spaltenprivilegien hat er erhalten?

 select * from all_col_privs_recd;
 select * from user_col_privs_recd;

Welche Spaltenprivilegien hat er weitergegeben?

 select * from all_col_privs_made;
 select * from user_col_privs_made;

Welche Quotas hat er erhalten?

 select * from user_ts_quotas;
 select * from all_ts_quotas;
 select * from dba_ts_quotas;

[Bearbeiten] Was machen die einzelnen User gerade?

 select EXECUTIONS, USERS_EXECUTING, username, sql_text 
 from v$session se , v$sql sq
 where se.sql_address = sq.address;

In der Katalog-View v$session sind alle gerade aktiven Sessions verzeichnet. In der View v$sql sind die zuletzt ausgeführten SQL-Statements eingetragen. Bei einer Verknüpfung dieser beiden Views kann man sich ausgeben lassen, welche SQL-Statements die einzelnen Benutzer ausgeführt haben und wie oft diese Statements ausgeführt wurden.

[Bearbeiten] Übersicht über das User-Profil

 select * from user_users;
 select * from all_users;
 select * from dba_users;


Wikibooks buchseite.svg Zurück zu " Datenbank starten " | One wikibook.svg Hoch zu " Inhaltsverzeichnis " | Wikibooks buchseite.svg Vor zu " Tablespace verwalten "
Persönliche Werkzeuge