我们的数据库最近进行了恢复。这确实造成了一些麻烦。是否有审核机制来确定谁执行了最近的恢复?谢谢。
答案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 不会在服务器日志中记录执行恢复的人,也不会在事件日志中报告此情况。