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 不会在服务器日志中记录执行恢复的人,也不会在事件日志中报告此情况。

相关内容