1

SQL Server 2005 には、特にストアド プロシージャの削除などを監査する組み込みの方法はありますか? 照会できる履歴テーブルはありますか? 現在、数回姿を消した謎の sproc があります。

4

6 に答える 6

3

これは、DDL トリガーを使用して構築できます。

http://msdn.microsoft.com/en-us/library/ms190989.aspx

于 2008-12-11T17:59:50.943 に答える
2

DDL トリガーを使用するか、プロファイラーを使用してテキスト「%DROP%PROC%procname%」をトレースする場合のみ

于 2008-12-11T18:00:16.403 に答える
1

SQL Server 2008 では、アクティビティを監査するための Profiler Traces を置き換える AUDIT も用意されていることに注意してください。似ていますが、独自の構成 UI と結果を表示するための UI があります。

于 2008-12-12T16:27:45.080 に答える
0

プロファイラー トレースをセットアップして、Audit Schema Object Management イベントをキャプチャし、対象のデータベース名に基づいてフィルター処理することができます。スキーマ内のオブジェクトが作成、削除、編集されるたびに、変更を行った人物とストアド プロシージャの名前を含むイベントがプロファイラーで発生します。

少なくとも次のプロファイラー列が必要です: ApplicationName - 変更を行ったときに実行されていたアプリ ユーザーの名前 DatabaseName - 変更されたオブジェクトを含むデータベース EventSubClass - アクションの種類は、Alter、Modify、Drop、Create などを示します LoginName - ユーザーが変更を行う ObjectName - オブジェクト影響を受ける

于 2008-12-12T16:26:40.153 に答える
0

[遅くなりましたが、監査システムが導入される前であっても、誰が変更を行ったかを確認する方法の詳細を追加します]

他の人は、将来の変更を監視するためにデータの監査を開始するさまざまな方法を既にカバーしていますが、最初に監査システムを導入していなかった場合、歴史的に誰が何をいつ行ったかを見つけることは非常に困難です.

唯一のオプションは、データベースが完全復旧モードにあると仮定して、トランザクション ログの読み取りを試みることです。問題は、これがデフォルトでサポートされていないことです。オプションは次のとおりです。

  • ApexSQL LogQuest Toadなどのサードパーティ ツール
  • DBCC LOG や fn_dblog などの文書化されていない関数

詳細については、次のトピックを参照してください。

SQL Server 2008 でトランザクション ログを表示する方法

SQL Server トランザクション ログ エクスプローラー/アナライザー

SQL Server Management Studio でクエリ履歴を表示する方法

于 2013-07-23T20:56:09.840 に答える