Was ist eine Audittabelle?

24

Was sind Audittabellen?

Wie sind sie nützlich?

Ich bin beim Lesen dieses Artikels auf sie gestoßen .

Matt Fenwick
quelle
2
Es sind nur normale Tische. Es ist, wie Sie sie verwenden und was Sie in sie einfügen, die sie zu "Audit-Tabellen" machen.
Nick Chammas
1
Sie sind nicht gleich. Sie haben eine Prüftabelle, die von der zu prüfenden Tabelle getrennt ist. Sie hätten also zwei Tische NormalTableund AuditNormalTable.
Thomas Stringer
1
Matt, Shark hat deine Antwort darauf. @Shark, ich habe betont, dass eine Audittabelle kein spezielles Datenbankkonstrukt ist (da ich den Eindruck habe, dass das OP das glauben könnte). Es ist nur eine weitere Tabelle, die der Entwickler erstellt und verwendet, um bestimmte Informationen zu verfolgen.
Nick Chammas
@ NickChammas Oh absolut, ich habe vollkommen verstanden, was du meintest. Aber nach dem Kommentar des OP hätte ich nicht gedacht, dass er es tut.
Thomas Stringer
Wenn Sie die Wörterbuchbedeutung von Audit berücksichtigen, werden Sie wahrscheinlich zu dem Schluss kommen, dass "Audit-Tabelle" eine falsche Bezeichnung ist. Ein Audit sollte sich außerhalb der Datenbank befinden. Wenn es vom Anwendungsunternehmen selbst codiert wird, wie kann es sich dann um ein Audit handeln?
Tag, wenn der

Antworten:

22

Audit-Tabellen werden zum Nachverfolgen von Transaktionen mit einer bestimmten Tabelle oder bestimmten Tabellen verwendet. Sie ermöglichen es Ihnen, ein laufendes "Protokoll" zu sehen (mangels eines besseren Wortes). Angenommen, Sie haben eine Tabelle wie die folgende:

create table SensitiveInformation
(
    SensitiveNumber int not null,
    SensitiveData varchar(100) not null
)
go

Möglicherweise gibt es Benutzer und / oder Anwendungen, die Zugriff auf das Einfügen, Aktualisieren und Löschen aus dieser Tabelle haben. Aufgrund des sensiblen Charakters dieser Daten möchten Sie möglicherweise schnell und einfach nachverfolgen können, wer was an diesem Tisch tut.

Sie haben also eine Audit-Tabelle, um zu verfolgen, was an dieser Tabelle getan wird. Typischerweise beinhaltet dies das grundlegende Wer , Was , Wann .

Eine Audittabelle könnte folgendermaßen aussehen:

create table SensitiveInformationAudit
(
    SensitiveNumberNew int null,
    SensitiveNumberOld int null,
    SensitiveDataNew varchar(100) null,
    SensitiveDataOld varchar(100) null,
    Action varchar(50) not null,
    AuditDate datetime not null,
    LastUpdatedUser varchar(100) not null
)
go

Audit-Tabellen werden normalerweise mithilfe von Datenbank-Triggern gefüllt. Mit anderen Worten, wenn eine XAktion ausgeführt wird SensitiveInformation, fügen Sie die Details ein SensitiveInformationAudit.

Thomas Stringer
quelle
Ist das ActionFeld das UPDATEoder INSERToder DELETE?
leeand00
24

Ein weiterer wichtiger Aspekt von Audittabellen, der bisher nicht hervorgehoben wurde, besteht darin, dass nicht nur protokolliert wird, wer was mit welchem ​​Datensatz gemacht hat (häufig auch vor und nach Snapshots), sondern dass Audittabellen einmalig geschrieben werden .

Datensätze in einer Audit-Tabelle dürfen nicht aktualisiert oder gelöscht (siehe Hinweis), sondern nur eingefügt werden . Dies wird manchmal mit Triggern oder einfach nur mit Anwendungslogik erzwungen. In der Praxis ist dies jedoch wichtig, da Sie damit den "Beweis" erbringen, dass nichts auf eine Weise manipuliert wurde, die schwer zu erkennen ist.

Hinweis: Das Entfernen alter Datensätze aus einer Prüftabelle erfordert spezielle Prozesse, die häufig vom Management oder von Prüfern genehmigt werden müssen.

Joel Brown
quelle
4

Prüftabellen werden im Allgemeinen verwendet, wenn Sie Änderungen an vertraulichen Tabellen verfolgen möchten. Wenn es eine Tabelle gibt, die für die Gehaltsrate und den Bonusprozentsatz verwendet wird, und die HR-Anwendung Gehälter auf der Grundlage dieser Daten vergütet, kann ein Benutzer mit Schreibzugriff auf diese Tabelle nicht autorisierte Zahlungsänderungen vornehmen.

Gleichzeitig sollte es einigen Benutzern gestattet sein, an diesen Tabellen zu arbeiten. Hier kommen Audit-Tabellen ins Spiel. Audit-Tabellen können verwendet werden, um den Vorher- und Nachher-Wert der geänderten Daten zu verfolgen. Normalerweise speichern sie auch zusätzliche Informationen wie die Person, die die Änderung vorgenommen hat, und den Zeitpunkt, zu dem die Änderung durchgeführt wurde.

Daher hindern diese Prüftabellen die Benutzer daran, nicht autorisierte Aktivitäten auszuführen. Sie bieten auch die Möglichkeit, die korrekten Werte wiederherzustellen.

SQL 2008 und höher verfügen über eine integrierte Funktion namens " Datenerfassung ändern" , die hierfür verwendet werden kann.

StanleyJohns
quelle
2
Leider ist die Erfassung von Änderungsdaten für die Überwachung schrecklich, da Sie den Benutzer, der die Änderung vorgenommen hat, nicht erfassen können (es sei denn, Sie speichern sie bereits in der Datenbank).
HLGEM
0

Prüftabellen werden von systemeigenen oder externen Prüftools verwendet, die in einer Datenbank aufgetretene Datenänderungen erfassen, in der Regel einschließlich der Informationen darüber, wer die Änderung vorgenommen hat, welche Objekte von der Änderung betroffen waren und wann sie vorgenommen wurde SQL-Anmeldung, Anwendung und Host, über die die Änderung vorgenommen wurde. Alle erfassten Informationen werden in den Überwachungstabellen gespeichert und sollten in benutzerfreundlichen Formaten per Export oder Abfrage verfügbar sein.

Ivan Stankovic
quelle