
Наша база данных была недавно восстановлена. Это вызвало настоящее горе. Существует ли механизм аудита, чтобы определить, кто выполнил последнее восстановление? Спасибо.
решение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 не записывает в журнале сервера, кто выполнил восстановление, и не сообщает об этом в журнале событий.