Structured Query Language (SQL)

Sie sind hier: StartseiteStructured Query LanguageTransaktionen, Sicherheit

CM, 01.09.2001

Transaktionen, Sicherheit: Transaktionen, Sicherheit (Transaktionssteuerung, Datenbanksicherheit).

Transaktionen, Sicherheit

Transaktionssteuerung

Transaktionen sind Arbeitseinheiten mit Anfang und Ende und somit als Gruppe in einer logischen Reihenfolge entweder erfolgreich oder gar nicht ausführbar.

Wenn eine der Operationen scheitert, sollten die restlichen Aufträge einer Transaktion storniert werden. Dieses Rückgängigmachen bezeichnet man als Rollback:

BEGIN TRANSACTION <Anweisung1> <Anweisung2> <Anweisung3>
ROLLBACK TRANSACTION

Wird die Transaktion korrekt ausgeführt, so erfolgt die Speicherung der Arbeit in Form einer Bestätigung durch COMMIT:

BEGIN TRANSACTION <Anweisung1> <Anweisung2> <Anweisung3>
COMMIT TRANSACTION

Datenbanksicherheit

In größeren Anwendungen mit mehreren Benutzern sollte man unbedingt die in SQL angebotene Palette der Systemsicherheitseinrichtung nutzen. Eine gezielte Einschränkung der Benutzerrechte sollte vergeben werden und nur gezielt Rollen, Berechtigungen und Privilegien "freigeschaltet" sein.

CREATE USER <Benutzername>
IDENTIFY BY <Passwort>;

Soll das Passwort beispielsweise geändert werden, so wird die obige Anweisung nur minimal abgewandelt:

ALTER USER <Benutzername>
IDENTIFY BY <Neues Passwort>;

Bekommt man vom zuständigen Administrator also ein Passwort zugeteilt, kann man dieses wie eben beschrieben umändern. Aus Sicherheitsgründen sollte dies auch unmittelbar nach Erhalt der ursprünglichen Daten geschehen.

Desweiteren wird jedem Benutzer eine Rolle zugewiesen, damit er überhaupt Arbeiten ausführen kann. Möglich sind die Rollen Connect, Resource und DBA (Datenbank-Administrator). Jede Rolle verfügt über unterschiedliche Zugriffsebenen auf die Datenbank, wobei Connect die niedrigste Ebene darstellt und die DBA-Rolle uneingeschränkten Zugriff bietet.

GRANT <Rolle>
TO <Benutzer>;

Ist einem Benutzer die DBA-Rolle zugeteilt, so können die Rollen Connect und Ressource gelöscht werden, da die DBA-Rolle beide enthält. Aus Sicherheitsgründen sollte mit der Vergabe von DBA-Rollen sparsam umgegangen werden, da Benutzer dieser Kategorie alle Operationen an einem Datenbanksystem ausführen können.

Entfernt wird eine Rolle wie folgt:

REVOKE <Rolle>
TO <Benutzer>;