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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

5 Tagen ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

6 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

6 Tagen ago

Business GPT: Generative KI für den Unternehmenseinsatz

Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.

6 Tagen ago

Alphabet übertrifft die Erwartungen im ersten Quartal

Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…

1 Woche ago

Microsoft steigert Umsatz und Gewinn im dritten Fiskalquartal

Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…

1 Woche ago