2009-06-26 3 views
7

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

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

ответ

14

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

+0

Очень хорошо. так просто ... – gbn

+0

Это впечатляюще. Мне пришлось отфильтровать наши события 5701 и 5703, которые, как представляется, являются информационными сообщениями об установке языка. После того, как я отфильтровал их, это стало именно тем, что я искал! – SqlRyan

2

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

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

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

Я не знаю, если/как это работает для SQL 2005+ probably not, says Connect но maybe we can now says Tibor Karaszi. Я не могу проверить себя, извините.

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

+0

Хотя это было не совсем то, что я искал, я рад узнать об этом сейчас - спасибо! – SqlRyan

+1

Он по-прежнему работает на 2008R2 –

+1

Также работает на 2012 SP1 – StuartQ

 Смежные вопросы

  • Нет связанных вопросов^_^