SQL Server 2005 には、特にストアド プロシージャの削除などを監査する組み込みの方法はありますか? 照会できる履歴テーブルはありますか? 現在、数回姿を消した謎の sproc があります。
6 に答える
これは、DDL トリガーを使用して構築できます。
DDL トリガーを使用するか、プロファイラーを使用してテキスト「%DROP%PROC%procname%」をトレースする場合のみ
SQL Server 2008 では、アクティビティを監査するための Profiler Traces を置き換える AUDIT も用意されていることに注意してください。似ていますが、独自の構成 UI と結果を表示するための UI があります。
プロファイラー トレースをセットアップして、Audit Schema Object Management イベントをキャプチャし、対象のデータベース名に基づいてフィルター処理することができます。スキーマ内のオブジェクトが作成、削除、編集されるたびに、変更を行った人物とストアド プロシージャの名前を含むイベントがプロファイラーで発生します。
少なくとも次のプロファイラー列が必要です: ApplicationName - 変更を行ったときに実行されていたアプリ ユーザーの名前 DatabaseName - 変更されたオブジェクトを含むデータベース EventSubClass - アクションの種類は、Alter、Modify、Drop、Create などを示します LoginName - ユーザーが変更を行う ObjectName - オブジェクト影響を受ける
[遅くなりましたが、監査システムが導入される前であっても、誰が変更を行ったかを確認する方法の詳細を追加します]
他の人は、将来の変更を監視するためにデータの監査を開始するさまざまな方法を既にカバーしていますが、最初に監査システムを導入していなかった場合、歴史的に誰が何をいつ行ったかを見つけることは非常に困難です.
唯一のオプションは、データベースが完全復旧モードにあると仮定して、トランザクション ログの読み取りを試みることです。問題は、これがデフォルトでサポートされていないことです。オプションは次のとおりです。
- ApexSQL LogやQuest Toadなどのサードパーティ ツール
- DBCC LOG や fn_dblog などの文書化されていない関数
詳細については、次のトピックを参照してください。
SQL Server 2008 でトランザクション ログを表示する方法