
Nosso banco de dados foi restaurado recentemente. Isso causou uma verdadeira dor. Existe um mecanismo de auditoria para determinar quem executou a restauração mais recente? Obrigado.
Responder1
Acabei de testar uma restauração e ela parece estar registrada no rastreamento padrão. Esta consulta lança alguma luz? (Se o arquivo de rastreamento atualmente em execução não retroceder o suficiente, talvez seja necessário ajustar um pouco isso, provavelmente haverá mais alguns arquivos *.trc para investigar na log
pasta)
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;
Responder2
A menos que você tenha um software de backup de terceiros que execute a tarefa e a registre para você ou esteja executando um rastreamento do SQL Profiler, o melhor que você pode fazer é consultar o proprietário do banco de dados e esperar que ele não tenha sido alterado por quem quer que seja restaurou-o. O SQL não registra quem executou a restauração no log do servidor, nem relata isso no log de eventos.