Was sind Audittabellen?
Wie sind sie nützlich?
Ich bin beim Lesen dieses Artikels auf sie gestoßen .
NormalTable
und AuditNormalTable
.
Was sind Audittabellen?
Wie sind sie nützlich?
Ich bin beim Lesen dieses Artikels auf sie gestoßen .
NormalTable
und AuditNormalTable
.
Antworten:
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 X
Aktion ausgeführt wird SensitiveInformation
, fügen Sie die Details ein SensitiveInformationAudit
.
Action
Feld das UPDATE
oder INSERT
oder DELETE
?
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.
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.
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.