Oracle: Benutzerverwaltung
Aus Wikibooks
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;