Audit-System mit SQL Server 2005

Ist die Tabelle zur Protokollierung von Ereignissen eingerichtet, erstellt man den Trigger, der diese Ereignisse erfasst. Als Erstes sucht diese Funktion nach allen Anmeldevorgängen am Server, einschließlich aller CREATE LOGIN-, ALTER LOGIN-, oder DELETE LOGIN-Ereignisse. Für die Erstellung des Triggers muss folgendes Befehlsskript ausgeführt werden:


Dieses Befehlsskript erstellt den Trigger, der festlegt, dass alle DDL-Anmeldevorgänge am Server erfasst werden. Alle durch die Auslösung des Triggers erstellten Informationsdaten werden in der zuvor angelegten DDLTriggerTest-Tabelle erfasst. Man beachte, dass für das Schreiben in die Tabelle drei Funktionen verwendet werden. In diesem Kontext erfasst die Funktion EVENTDATA alle Informationen der Anmeldevorgänge, da dies das Ereignis ist, welches mit der Funktion FOR DDL_LOGIN_EVENTS spezifiziert wurde. Die Funktion SYSTEM_USER gibt den Anmeldevorgang zurück, der den aktuellen Befehl ausgeführt hat und die Funktion DB_NAME() meldet den Namen der Datenbank zurück, in der der aktuelle Befehl ausgeführt wird. Da ein Anmeldevorgang auf Serverebene erfolgt, meldet das Prüfprotokoll, dass der Vorgang in der Master-Datenbank stattgefunden hat.

Um nun den neuen Trigger zu testen, muss ein Anmeldevorgang auf dem Server ausgelöst werden, damit dieser vom Trigger erfasst wird. Es ist am einfachsten einen neuen Anmeldevorgang beispielsweise durch die Befehlseingabe CREATE LOGIN TestLogin WITH PASSWORD = ‚123456xxYYbaz‘. zu erstellen.

Ist dieser Befehl ausgeführt, sieht man im Meldungsfenster die Anzeige (1 Zeile(n) betroffen). Diese Meldung erfolgt aufgrund der integrierten Prüfroutine. Als der Befehl CREATE LOGIN ausgeführt wurde, wurde der DDL-Trigger ausgelöst und eine Meldung in die EventTableData-Tabelle in der DDLTriggerTest-Datenbank geschrieben.

Was steht nun in der XML?

Um zu überprüfen, ob die Meldung gespeichert wurde, kann eine SQL-Suchabfrage für die DDLTriggerTest-Tabelle durchgeführt werden. Für Anwender, die mit SQL Server 2000 vertraut sind, könnten die Daten in der XMLEvent-Spalte möglicherweise befremdlich aussehen. Im SQL Server Management Studio (SSMS) klickt man auf den Link in der XMLEvent-Spalte um sich die erstellten XML-Daten anzeigen zu lassen.

Im XMLEvent-Feld ist die EVENTDATA()-Funktion aus dem INSERT Befehl des Triggers eingetragen. In diesem Fall meldet die EVENTDATA()-Funktion XML-Daten, die sich auf den Anmeldevorgang beziehen, einschließlich Datum und Zeitpunkt des Anmeldevorgangs, Name des Servers, Anwender-ID und System-ID des Rechners.

Dies ist nur der Anfang

Der DDL_LOGIN_EVENT-Trigger ist nur einer von fünf Dutzend DDL-Ereignissen, die man überwachen kann um die Systemsicherheit zu dokumentieren. Andere DDL-Ereignisse, die für Sarbanes-Oxley-Audits von Interesse sind, sind die Erstellung oder Verwerfung anderer Datenbankobjekte, wie zum Beispiel Tabellen, Prozeduren, Trigger, Anzeigen, Funktionen und so weiter.

Themenseiten: Big Data, Datenbank, SQL, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Audit-System mit SQL Server 2005

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *