SQL 2008 R2: Como determinar quem restaurou o banco de dados?

SQL 2008 R2: Como determinar quem restaurou o banco de dados?

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 logpasta)

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.

informação relacionada