SQL Server Profiler - наблюдать за разрешением, запрещенным для объектов? - PullRequest
11 голосов
/ 26 июня 2009

Я использую SQL Profiler для наблюдения за некоторыми действиями с базой данных, и мне интересно наблюдать за "Отказано в доступе" для различных объектов в базе данных. В категории «Аудит безопасности» имеется около 50 различных элементов, но ни один из них не отображает «Отказано в доступе» для объекта. Я вижу «Ошибка входа в систему» ​​и несколько других сбоев, но ничего на уровне объекта.

Пример: пользователь имеет разрешение на базу данных, но не на конкретную таблицу. Когда они попытаются выбрать из этой таблицы, они получат сообщение об ошибке - могу ли я, чтобы профилировщик следил за этими ошибками?

Ответы [ 2 ]

19 голосов
/ 26 июня 2009

Вы хотите перехватить событие «Сообщение об ошибке пользователя» в разделе «Ошибки и предупреждения». Вы можете отфильтровать столбец «Ошибка» по своему усмотрению. Ошибка 229: отказано в разрешении

4 голосов
/ 26 июня 2009

Это может достичь того же:

Вернувшись в SQL 2000, вы можете изменить сообщение об ошибке 229, чтобы «разрешение отклонено» было записано в журнал ошибок SQL.

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

Я не знаю, если / как это работает для SQL 2005+ , вероятно, нет, говорит Connect , но возможно, мы можем теперь сказать, Тибор Караси . Я не могу испытать себя, извини.

Редактировать: Преимущество в том, что вам не нужен профилировщик или трассировщик ...

...