Ich bin daran interessiert, welche Methoden der Protokollierung in einer Oracle-Datenbank häufig ist. Unsere Methode ist die folgende:Wie logge ich mich in eine Oracle Datenbank ein?
Wir erstellen eine Protokolltabelle für die Tabelle, die protokolliert werden soll. Die Protokolltabelle enthält alle Spalten der Originaltabelle sowie einige spezielle Felder einschließlich Zeitstempel, Änderungsart (Einfügen, Aktualisieren, Löschen) und der ID des Modifizierers. Ein Trigger für die ursprüngliche Tabelle erstellt eine Protokollzeile für jedes Einfügen und Löschen und zwei Zeilen für eine Änderung. Protokollzeilen enthalten die Daten vor und nach der Änderung der ursprünglichen Daten.
Obwohl Zustand der Aufzeichnungen in der Zeit mit dieser Methode abgebaut zurück werden kann, es hat einige Nachteile:
- Einführung einer neuen Spalte in der ursprünglichen Tabelle tut beinhaltet nicht automatisch Log-Modifikation.
- Log-Änderung wirkt sich auf Log-Tabelle und Trigger und es ist einfach zu versauen.
- Der Status eines Datensatzes zu einer bestimmten vergangenen Zeit kann nicht direkt bestimmt werden.
- ...
Welche anderen Möglichkeiten gibt es? Mit welchen Werkzeugen kann dieses Problem gelöst werden?
Ich kenne nur log4plsql. Was sind die Vor- und Nachteile dieses Tools?
Edit: Basierend auf Brians Antwort habe ich folgende reference gefunden, die Standard-und feinkörnigen Auditing erläutert.
das bringt Sie nicht vor und nach Werten tho. Es ist ziemlich begrenzt. Außer Ihnen SELECTS zu geben, die Sie nicht von benutzergesteuerten Tabellen bekommen können. –
FGA wird Sie vor und nach Werten erhalten. Das ist die offensichtliche Verwendung von FGA. Ich machte den Punkt, dass FGA auch verwendet werden kann, um die Verwendung zu verfolgen. –