質問

SQL Server 2005 には、特にストアド プロシージャの削除などを監査する組み込みの方法はありますか?クエリできる履歴テーブルはありますか?今まで何度か行方不明になった謎の sproc があります。

役に立ちましたか?

解決

あなたは、この使用してDDLトリガーを構築することができます

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

他のヒント

あなたが使用している場合にのみ DDLはにトリガまたはトレースにプロファイラを使用しますテキスト "%のDROP%PROC%PROCNAME%"

SQL Server 2008で、彼らは今もプロファイラがauding活動にトレース交換するAUDITを持っていることに注意してください。それは同様ですが、結果を表示するには、独自の設定UIおよびUIを持っている。

あなたは、セットアッププロファイラトレースは、あなたが気にデータベース名に基づく監査スキーマオブジェクト管理イベントやフィルタをキャプチャすることができます。スキーマ内のオブジェクトが作成されているすべての時間は、ドロップされた、それは変化とストアドプロシージャの名前をした者を含みプロファイラでのイベントを発生します編集します。

あなたは、少なくともこれらのプロファイラの列をお勧めします。 ApplicationName - 彼らは変更を行った際にアプリのユーザーの名前が実行されていました データベース名 - 変更されたオブジェクトを含むDatabse EventSubClass - アクションの種類アルターを示し、変更、ドロップなどを作成します。 LoginNameに - 変更を行ったユーザー ObjectNameの - 影響を受けるオブジェクト

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

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

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

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

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

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

SQL Server Management Studio でクエリ履歴を確認する方法

私は同意するものとします。これは、フィルタを使用して、SQL Serverのプロファイラすることができます。 DDLトリガーは、SQL Serverに存在していました。 あなたはこのようなものを作成することができます:

 CREATE TRIGGER ddl_drop_procedure 
    ON DATABASE 
    FOR DROP_PROCEDURE
   AS 
     RAISERROR ('You deleted a stored procedure',10, 1)

   GO

他のオプションは、CodePlexの、またはapexSQLトリガから自動監査のようなサードパーティ製のツールを使用することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top