Datensicherheit

NeoPrince

Aktiver Benutzer
Beiträge
34
Hallo ihr lieben.

Ich soll/möchte in der schule ein Referat über die Sicherung von Daten auf der Anwendungsebene halten. Dabei geht es nicht darum Daten vor einem Ausfall der Festplatte oder einem Brand im Serverraum zu schützen, sondern z.B. vor dem versehentlichen Löschen durch einen User, oder um nachzuvollziehen welcher User einen Datensatz zuletzt geändert hat.
Gibt es hier irgendwelche Techniken, um so etwas im Datenbankdesign abzufangen?
Aus meiner Firma kenne ich folgende beispiele:

1:
In der Tabelle wird in einem Feld User immer der User gespeichert, der den Datensatz zuletzt bearbeitet hat, dazu kommt dann noch ein Timestamp, der Änderung. zusätzlich gibt es ein gelöscht Flag. ist es gesetzt werden in der Anwendung diese Datensätzen nicht mehr angezeigt. so ist der Datensatz noch vorhanden und kann einfach wiederhergestellt werden.

2:
wie oben gibt es den User und Timestamp, der Datensatz wird aber nicht mehr geändert, sondern bei jeder Änderung neu erstellt, angezeigt wird in der Anwendung der Datensatz mit dem aktuellsten Timestamp. so kann man nachvollziehen wann wer welchen Datensatz wie bearbeitet hat.

Gibt es für so etwas noch weitere Techniken oder auch Backuptools die soetwas für mich tun?
Und ist so etwas Vieleicht in irgendwelchen Standards RFC DIN etc geregelt?

Grüße Neo
 
Werbung:
Hallo ihr lieben.

Ich soll/möchte in der schule ein Referat über die Sicherung von Daten auf der Anwendungsebene halten. Dabei geht es nicht darum Daten vor einem Ausfall der Festplatte oder einem Brand im Serverraum zu schützen, sondern z.B. vor dem versehentlichen Löschen durch einen User, oder um nachzuvollziehen welcher User einen Datensatz zuletzt geändert hat.
Gibt es hier irgendwelche Techniken, um so etwas im Datenbankdesign abzufangen?
Aus meiner Firma kenne ich folgende beispiele:

1:
In der Tabelle wird in einem Feld User immer der User gespeichert, der den Datensatz zuletzt bearbeitet hat, dazu kommt dann noch ein Timestamp, der Änderung. zusätzlich gibt es ein gelöscht Flag. ist es gesetzt werden in der Anwendung diese Datensätzen nicht mehr angezeigt. so ist der Datensatz noch vorhanden und kann einfach wiederhergestellt werden.

2:
wie oben gibt es den User und Timestamp, der Datensatz wird aber nicht mehr geändert, sondern bei jeder Änderung neu erstellt, angezeigt wird in der Anwendung der Datensatz mit dem aktuellsten Timestamp. so kann man nachvollziehen wann wer welchen Datensatz wie bearbeitet hat.

Gibt es für so etwas noch weitere Techniken oder auch Backuptools die soetwas für mich tun?
Und ist so etwas Vieleicht in irgendwelchen Standards RFC DIN etc geregelt?

Grüße Neo


Lösung 1) hat den Nachteil, daß Änderungen (UPDATE) so nicht rückverfolgbar sind, Lösung 2) hat den Nachteil, daß die Tabelle jede Menge unnötiger Tupel besitzt.

Daher Lösung 3:

via TRIGGER auf Update und Delete werden die 'alten' Datensätze in einer Logtabelle (mit User, Timestamp, Aktion) gespeichert.

Ob es da ein RFC gibt weiß ich aber nicht.


Andreas
 
Ich verwende auch Lösung 3, kenne aber auch Lösung 1 aus Anwendungssoftware. Einen Automatismus zum Loggen von Änderungen habe ich aber auch noch nicht gefunden, daher muss man sich den Trigger selber bauen.

Zu Lösung 3 sei noch gesagt das diese Art von Logging häufig auch in Textdateien erfolgt oder in der DB die Tabelle dann neuen Wert (ggf. auch alten Wert) in eine Textspalte schreibt. Das macht natürlich eine Auswertung oder Rückführung schwieriger.
 
Werbung:
Zurück
Oben