SQL 2008 R2: Как определить, кто восстановил базу данных?

SQL 2008 R2: Как определить, кто восстановил базу данных?

Наша база данных была недавно восстановлена. Это вызвало настоящее горе. Существует ли механизм аудита, чтобы определить, кто выполнил последнее восстановление? Спасибо.

решение1

Я только что протестировал восстановление, и оно, похоже, было записано в трассировке по умолчанию. Проливает ли этот запрос какой-либо свет? (Если текущий запущенный файл трассировки не заходит достаточно далеко, вам, возможно, придется немного его подкорректировать, вероятно, в папке будет еще несколько файлов *.trc для исследования log)

declare @filepath nvarchar(1000)

SELECT @filepath = cast(value as nvarchar(1000)) FROM [fn_trace_getinfo](NULL)
WHERE [property] = 2 and traceid=1

print @filepath

SELECT * 
FROM [fn_trace_gettable](@filepath, DEFAULT)
WHERE TextData LIKE '%RESTORE DATABASE%'
ORDER BY StartTime DESC;

решение2

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

Связанный контент