2013-09-30 3 views
1

Есть ли отчет по умолчанию на сервере Sql, который будет выводить историю разрешений/сохраненных данных для данного пользователя или логина? Если нет, кто-нибудь знает, как обрабатывать такой запрос? Недавно у нас был инцидент, когда пользователь загадочно потерял права на вставку на стол, и мы хотели бы узнать, что именно это вызвало.SQL Server - отчет об изменениях прав доступа пользователей/сохраненных документов

+0

Я не думаю, что история сохраняется в любой таблице. Вам нужно будет использовать инспектора журнала, например Apex или Red Gate. Системная таблица, которую вы хотите изучить, будет 'sys.database_permissions' –

ответ

1

Единственный способ понять это - прочитать журнал транзакций, в котором хранится информация о каждой транзакции. Если ваша база данных находилась в режиме полного восстановления, тогда информация находится где-то там.

К сожалению, вы не можете сделать это, используя стандартные инструменты, потому что MS не поддерживает это.

Вы можете получить коммерческое устройство чтения журнала или попытаться взломать его с помощью недокументированных команд, таких как fn_dblog.

Проверить их для более подробной информации

Read the log file (*.LDF) in sql server 2008

SQL Server Transaction Log Explorer/Analyzer

How to view transaction logs in sql server 2008

+0

Спасибо, я знал, что он где-то там. – matt

0

Вот запрос на поиск разрешений для базы данных. Мы использовали вариант этого запроса для копирования разрешений из одной таблицы в другую таблицу.

select * 
    FROM sys.database_permissions AS dp 
    INNER JOIN sys.objects AS o ON dp.major_id=o.object_id 
    INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id 
    INNER JOIN sys.database_principals AS dpr ON dp.grantee_principal_id=dpr.principal_id 
+0

Спасибо, но я действительно больше ищу для запроса аудита - я хочу знать, какой процесс/пользователь точно изменил эти права пользователей. – matt

+0

Если эта информация хранится в SQL, я ее не видел/не знаю, где ее найти. Следующее, что мне кажется, это написать триггер. Но я не знаю, насколько хорошо это будет работать с информацией о схеме. – orgtigger

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