Trotzdem erstellen Sie eine SQL Server-DDL-trigger für die "SELECT" - Anweisungen?
Beschäftige ich mich mit einigen sensiblen Accounting-Tabellen und ich möchte audit jedes SELECT
- Anweisung ausgeführt, die auf die Tabelle oder Sicht zugeordnet sind.
Ich fand keine DDL-Ereignisse auf BOL (Books Online), die hatte nichts zu tun mit SELECT
- Anweisung.
Und DML-Trigger werden für INSERT
, UPDATE
und DELETE
nur.
Ist es möglich zu protokollieren, wer Zugriff auf Tabelle und Ansichten durch SELECT
Aussage?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie 3 Optionen:
Ich würde gehen für die Optionen 1 oder 2, weil Sie Teil Ihrer Anwendung und in sich selbst ruhend.
Obwohl, das klingt ein bisschen spät, um starten Sie die Protokollierung: der Zugriff auf die Tabelle sollte nur vorne.
Auch keine Lösung schlägt fehl, wenn die end-Benutzer nicht korrekt direkt (z.B. über web-server oder Dienst-account). Es sei denn, Sie verwenden gespeicherte Prozeduren zum senden von in die end-user-name...
Beispiel anzeigen:
Ja, es ist möglich, durch die Schaffung einer Ereignis-Benachrichtigung auf die AUDIT_DATABASE_OBJECT_ACCESS_EVENT Veranstaltung. Die Kosten von etwas wie das zu tun wäre überwältigend, wenn.
Es ist viel besser, das audit-Infrastruktur, oder mithilfe von benutzerdefinierten access-wrapper als gbn empfiehlt.
Ich habe gerade einige code für Sie. Der code erstellt einen server audit Datenbank audit für Aktivitäten und schließlich die sys.fn_get_audit_file-wird zum abrufen der Informationen aus der Datei. Sie haben zu tun, dass individuell für jede Tabelle. Wenn Sie wollen, dass eine automatisierte Abfrage, die Sie verwenden können, andere tools wie Apex SQL Audit oder eine andere Dritte Partei-tool Ihrer Wahl.
SQL Server 2008 Überwachung kann in der Lage sein, um es einzufangen. Andere als die, Profiler/Tracing ist die einzige Sache, die in SQL Server, die es tun können.
Edit : Anzeigen und Analysieren von Spuren, die mit SQL Server Profiler