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.
Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…
Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.
Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…
Kontinuierliche Content Produktion und Markenaufbau sind essentieller Pfeiler von langfristigen Unternehmenserfolg. Das ist mittlerweile auch…
KI-Funktionen beschleunigen die Erholung des PC-Markts. Der Nettogewinn legt um 44 Prozent zu, der Umsatz…
Googles App-Entwickler-Kit dient der Tarnung des schädlichen Codes. Der Sicherheitsanbieter Jamf hält die Schadsoftware für…