Назад | Перейти на главную страницу

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

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

Я только что протестировал восстановление, и мне показалось, что оно записано в трассировке по умолчанию. Этот вопрос проливает свет? (Если текущий запущенный файл трассировки не возвращается достаточно далеко назад, возможно, вам придется немного изменить это, вероятно, будет еще несколько файлов * .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;

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