In Teil 1 dieser Reihe ging es um strukturelle Fehler: fehlende Fremdschlüssel, falsche oder fehlende Indizes, zu spät gesetzte Filter und Soft Deletes, die Daten nicht wirklich löschen.
Teil 2 hat gezeigt, warum mehrere zusammengehörige Schreibvorgänge in eine Transaktion gehören. Ohne BEGIN, COMMIT und ROLLBACK kann eine Anwendung Daten in einem Zustand hinterlassen, der nie hätte entstehen dürfen.
In Teil 3 ging es um Datenbanksicherheit: Root-Zugänge, Encryption at Rest, sensible Spalten und Backups. Dieser Teil führt den Gedanken konsequent weiter.
Denn selbst ein starkes Passwort und ein geschlossener Port lösen ein grundlegendes Problem nicht: Wenn die Anwendung mit einem Benutzer verbunden ist, der alles darf, wird aus jeder Schwachstelle in der Anwendung potenziell ein vollständiger Datenbankzugriff.
(mehr …)