Structured Query Language (SQL)
Sie sind hier: Startseite › Structured Query Language › Transaktionen, Sicherheit
CM, 01.09.2001
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>;