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 プロファイラー トレースを実行している場合を除き、できる最善のことは、データベースの所有者を確認して、復元した人によって変更されていないことを祈ることです。SQL は、復元を実行した人をサーバー ログに記録せず、イベント ログにもこれを報告しません。

関連情報