1

毎日、データベースの行の一部が自動的に削除されます。

ログ ファイルも削除されているため、誰がそれらのファイルを削除したかを確認できません。

何をすべきかわかりません。

4

2 に答える 2

2

SQL サーバーが運用前の場合は、ターゲット テーブルに対するすべての削除権限を削除して、誰が文句を言うかを待つだけで済みます。いずれにせよ、本番環境であってもこのテーブルで削除が許可されていない場合は、その機能を制限することをお勧めします。

さらに、テーブルに削除トリガーを追加して、監査を行ってみてください。ソース IP アドレス、ログインしているユーザー情報などを取得できます。必要に応じて、削除をロールバックすることもできます。

監査のためのトリガーの使用に関する優れた記事を次に示します。

http://weblogs.asp.net/jgalloway/archive/2008/01/27/adding-simple-trigger-based-auditing-to-your-sql-server-database.aspx

編集:

テーブルのすべての削除を停止する場合は、次のトリガーを使用できます。

CREATE TRIGGER dbo.MyTable_Delete_Instead_Of_Trigger
ON dbo.MyTable
INSTEAD OF DELETE
AS
BEGIN

     raiserror('Deletes are not allowed.', 16, 1)
END
于 2012-12-09T15:46:21.770 に答える
1

すべての RPC Completed および SQL BatchCompleted イベントをキャプチャする DB に対して SQL プロファイラーを実行し、それを確認して、削除を実行しているものを見つけます。

于 2012-12-09T16:28:04.130 に答える