1

私は主に SQL Server 2008 と共に EF を使用する .net アプリケーションを持っていますが、2005 を使用している顧客が数人います。データベースには数百のテーブルがあります。すべてのデータの挿入/更新/削除を記録するために、これらのテーブルの選択を監査する必要があります。これらのテーブルのコピーを作成して、日時とユーザー名とともにすべての変更を記録し、実際のテーブルにトリガーを設定して、データの変更を関連する監査テーブルに挿入することを考えていました。これはこれについての最善の方法ですか?トリガーが最善の方法ですか、代わりに EF を使用する必要がありますか? 監査テーブルを 1 つだけにすることを考えていましたが、すぐに手に負えなくなる可能性があると思います。

4

3 に答える 3

2

SQL Server の監査は、特に古いバージョンの SQL Server をサポートする必要がある場合、簡単な作業ではありません。

  • DbContext で変更を追跡します。これはアプリケーションにオーバーヘッドを追加し、(既に述べたように) 簡単に悪夢のようなものになります (キー値はスケーリングされず、履歴テーブルの構造の変更を調整する必要があります (たとえば、ドロップされた列をどのように反映しますか?) )

  • CDC - SQL サーバーが CDC をサポートしている場合、これは優れたオプションであり、アプリケーションへの影響が少なくなります。

  • Audit SQL Serverのようなサード パーティのオプション必要なことを行っているかどうかを調査する必要があります

編集: CDCはSQL 2005では利用できません

于 2013-04-15T07:53:25.597 に答える
0

SQL Server 2008 以降では、必要な機能が組み込まれていると思います。

于 2013-04-15T07:52:09.130 に答える