2009-06-26 11 views
7

Ich benutze SQL Profiler, um einige Datenbankaktivitäten zu beobachten, und ich bin interessiert, "Permission Denied" für verschiedene Objekte in der Datenbank zu sehen. Es gibt ungefähr 50 verschiedene Elemente in der Kategorie "Security Audit", aber keine, die "Permission denied" für ein Objekt anzeigen. Ich sehe Login fehlgeschlagen und einige andere Fehler, aber nichts auf der Objektebene.SQL Server Profiler - nach Berechtigungen für Objekte verweigern?

Beispiel: Ein Benutzer hat die Berechtigung für eine Datenbank, aber nicht für eine bestimmte Tabelle. Wenn sie versuchen, aus dieser Tabelle auszuwählen, erhalten sie einen Fehler - kann ich den Profiler nach diesen Fehlern sehen lassen?

Antwort

14

Sie möchten das Ereignis "Benutzerfehlermeldung" im Abschnitt "Fehler und Warnungen" erfassen. Sie können die Fehler Spalte filtern, wie Sie für richtig halten. Fehler 229 Erlaubnis könnte die gleiche Dieses

+0

Sehr gut. so einfach ... – gbn

+0

Das ist spektakulär. Ich musste unsere Ereignisse 5701 und 5703 filtern, die nur informative Nachrichten zum Einstellen der Sprache zu sein scheinen. Nachdem ich diese herausgefiltert hatte, wurde genau das, wonach ich gesucht hatte! – SqlRyan

2

verweigert erreichen:

Zurück in SQL 2000, Sie 229 Fehlermeldung ändern könnte so „verweigert die Erlaubnis“ auf den SQL-Fehlerprotokoll geschrieben.

EXEC dbo.sp_altermessage 229, 'WITH_LOG', 'true' 

Ich weiß nicht, ob/wie dies für SQL arbeitet 2005+ probably not, says Connect aber maybe we can now says Tibor Karaszi. Ich kann mich nicht selbst testen, tut mir leid.

Edit: Das hat den Vorteil, dass Sie Profiler oder einen Tracer nicht benötigen ...

+0

Obwohl dies nicht genau das war, wonach ich suchte, bin ich froh, es jetzt zu wissen - danke! – SqlRyan

+1

Es funktioniert immer noch auf 2008R2 –

+1

Funktioniert auch auf 2012 SP1 – StuartQ

Verwandte Themen