SQL-Audit für gezielte Datenbanken erstellen?

Goyoma

Benutzer
Beiträge
5
Hallo Zusammen,

Ich bin neu im Forum, das ist mein erster Beitrag. Kurz zu meinem Kernthema:

Ich besitze eine MSSQL 2012 Instanz, mit zwei Test-Datenbanken ("Autos" und "Personal"). Diese möchte ich insofern über den Audit überwachen lassen, dass ich DROP, CREATE, INSERT und SELECT abfange.

Dazu kann man sich ja ganz einfach ein Serveraudit erstellen, in welchem ich dann meine benötigten Audit-Gruppen festlege und diese anschließend eine Hauptüberwachung knüpfe und die Protokolle dann über "Überwachungsprotokolle anzeigen" auslesen kann. Das klappt soweit auch hervorragend, mit dieser Überwachung werden alle meine Anweisungen die ich überwachen möchte perfekt geloggt. Nun würde ich aber gerne wissen, wie ich zwei exalte DB's überwachen lasse. Sagen wir ich nehme zwei weitere DB's ("Flugzeuge" und "Blumen") dazu, möchte aber ein Audit erstellen, in dem nur "Autos" und "Personal" überwacht werden.

Theoretisch kann ich diese Überwachungen ja einfach per Hand auf den beiden DB's einzeln erstellen und an die Hauptüberwachung zum protokollieren knüpfen. Allerdings müsste es doch auch die Möglichkeit geben das über ein Skript zu lösen, in dem ich festlege welche Datenbanken ich überwachen möchte (mit den selben zu protokollierenden Anweisungen).

Ich weiß da nur aktuell nicht wirklich weiter. Denn das Skript, welches ein Audit für eine DB erstellt, beginnt mit use. Allerdings kann ich ja kein use über mehrere DB's erstellen...



Über Hilfe würde ich mich sehr freuen!


Code:
USE [Personal] and  [Autos]

GO

CREATE DATABASE AUDIT SPECIFICATION [DatenbankauditDBAG]
FOR SERVER AUDIT [AuditDBAGTest]
ADD (DATABASE_OBJECT_CHANGE_GROUP),
ADD (DATABASE_OBJECT_ACCESS_GROUP),
ADD (SCHEMA_OBJECT_ACCESS_GROUP),
ADD (SCHEMA_OBJECT_CHANGE_GROUP)

GO
 
Werbung:
EDIT

Was mir gerade spontan einfällt: Man kann sich ja alle gewünschten DB's raussuchen, jeweils das kleine Skript von oben nehmen und pro Skript ein GO einfügen und die USE-Anweisung jeweils mit der benötigten Datenbank füllen. Das müsste ja eigentlich auch passen. Somit können (in dem Fall die beiden Skripte für "Autos" und "Personal" durch das GO nacheinander abgearbeitet werden.
 
Das geht alles auch wenn ich damit noch nie zu tun hatte.

Du kannst zunächst mal in sys.databases prüfen, ob deine Datenbank überhaupt existiert. Dann für jede Datenbank die existiert das Audit aktivieren.
 
Hallo Ukulele,

Danke für deine Antwort! Nun, da ich ja schon weiß welche Datenbanken ich überwachen möchte (da ich selbst diese ja erstellt habe), dürfte meine oben aufgeführte Idee keine Probleme darstellen. Sprich das Skript nacheinander laufen zu lassen, mit entsprechend angepassten Namen der Datenbanken in der use-Anweisung.
 
Richtig, aber wenn eine deiner Datenbanken nicht da ist gibts ne Fehlermeldung. Daher meine Idee das vorher zu prüfen.
 
Werbung:
Hallo,

Soweit ich das gelesen habe ist es auch möglich die Audit-Events an die Windows-Ereignisanzeige zu koppeln. Wie ist das möglich, weiß das einer von euch zufällig?


Grüße
 
Zurück
Oben