Privilegien, Rollen und Auditing
Privilegien, Rollen und Auditing
Datenbanken enthalten oft sensible Daten. Deshalb muss klar geregelt sein, wer was tun darf und welche Aktionen protokolliert werden.
Grundsatz
Jede Tabelle, View und jedes Synonym gehört dem Benutzer, der das Objekt erzeugt hat.
Sollen andere Benutzer darauf zugreifen, müssen Berechtigungen vergeben werden.
Objektprivilegien
Objektprivilegien beziehen sich auf konkrete Datenbankobjekte.
Beispiele:
SELECTauf eine TabelleINSERTauf eine TabelleUPDATEauf eine TabelleDELETEauf eine Tabelle
GRANT SELECT ON dept TO adams;
GRANT INSERT, UPDATE ON dept TO adams, jones;
GRANT ALL ON dept TO adams;
PUBLIC
GRANT SELECT ON dept TO PUBLIC;
PUBLIC bedeutet, dass alle Benutzer das Privileg erhalten.
Das sollte man vorsichtig einsetzen.
WITH GRANT OPTION
GRANT SELECT ON emp TO adams WITH GRANT OPTION;
Damit darf adams das erhaltene Recht weitergeben.
Das ist mächtig und muss bewusst entschieden werden.
REVOKE
Mit REVOKE werden Rechte entzogen.
REVOKE ALL ON dept FROM adams;
Systemprivilegien
Systemprivilegien erlauben bestimmte Aktionen im Datenbanksystem.
Beispiele:
- Tabellen erstellen
- Rollen erstellen
- beliebige Rollen vergeben
GRANT CREATE ROLE TO user1;
GRANT GRANT ANY ROLE TO user2;
Systemprivilegien sind oft kritischer als Objektprivilegien.
Rollen
Eine Rolle ist eine Sammlung von Privilegien.
Rolle erstellen:
CREATE ROLE reporting_role;
Privileg an Rolle vergeben:
GRANT SELECT ON emp TO reporting_role;
Benutzer einer Rolle zuordnen:
GRANT reporting_role TO user1;
Vorteile:
- Rechte sind leichter zu verwalten
- Benutzer bekommen Rechte passend zur Aufgabe
- Änderungen können zentral an der Rolle erfolgen
Synonyme
Ein Synonym ist ein alternativer Name für ein Datenbankobjekt.
SELECT *
FROM scott.dept;
CREATE SYNONYM s_dept FOR scott.dept;
SELECT *
FROM s_dept;
Synonyme erleichtern Zugriffe, ersetzen aber keine Berechtigungen.
Auditing
Auditing bedeutet, ausgewählte Datenbankaktionen zu überwachen und aufzuzeichnen.
Auditing hilft bei:
- Untersuchung verdächtiger Aktivitäten
- Nachvollziehbarkeit
- Kontrolle von Änderungen
- Sicherheitsüberwachung
- Compliance
Typische Fragen:
- Wer hat sich wann eingeloggt?
- Wer hat welche Tabelle gelesen?
- Wer hat Daten geändert?
- Welche Aktionen waren erfolgreich oder fehlgeschlagen?
Audit-Typen
Auditing kann sich beziehen auf:
- SQL-Statements
- Systemprivilegien
- Schemaobjekte
- Fine-grained Auditing
Beispiel:
AUDIT SELECT TABLE, UPDATE TABLE;
Für bestimmte Benutzer:
AUDIT SELECT TABLE, UPDATE TABLE BY user1, user2;
Login-Audit:
AUDIT SESSION BY scott;
Auditing beenden:
NOAUDIT SESSION BY scott;
Audit Trail
Der Audit Trail speichert Audit Records.
Typische Inhalte:
- Benutzer
- Operationstyp
- Objekt
- Datum
- Uhrzeit
- Erfolg oder Fehler
In Oracle gibt es dafür unter anderem Data-Dictionary-Views wie DBA_AUDIT_TRAIL.
Fine-grained Auditing
Fine-grained Auditing erlaubt sehr genaue Regeln, zum Beispiel abhängig von Spalten oder Bedingungen.
Beispielidee: Ein Audit-Eintrag entsteht nur, wenn Bücher mit einem Preis über 50 abgefragt werden.
Merksatz
Rechte verhindern unbefugte Aktionen. Auditing sorgt dafür, dass wichtige Aktionen nachvollziehbar bleiben.
Zuletzt aktualisiert: 6. Juni 2026