質問

は、接続文字列のユーザーIDが変数ではなく、プログラムのユーザID(例えば、GUIDすることができる)とは異なります。どのようにあなたの接続文字列のユーザーIDが静的なものである場合、ログは削除監査のですか?

削除/挿入/更新をログに記録するのに最適な場所は、トリガーを介して行われます。しかし、静的な接続文字列で、それが何かを削除誰ログインすることは難しいです。代替は何ですか?

役に立ちましたか?

解決

SQL Serverのを使用すると、トリガーに情報を渡すためにCONTEXT_INFOを使用することができます。

私は、トリガー(テーブルの上に例えば複数の書き込みパス)を使用する必要があります(Webアプリケーションによって呼び出された)のコードでこれを使用しています。ストアドプロシージャに私のロジックを置かないことができる場所です。

他のヒント

私たちは似たような状況があります。当社のWebアプリケーションでは、常に同じデータベース・ユーザーとしてではなく、異なる論理ユーザそのうちのアプリケーションのトラックとコントロールを実行します。

我々は、一般的に、各ストアドプロシージャにパラメータとして論理ユーザIDを渡します。削除を追跡するために、我々は一般的に行を削除しないでください、削除済みとしてだけで状況をマークし、それに応じてLastChgIDとLastChgDateフィールドを設定します。監査テーブルに重要な、我々は監査ログ(すべての変更の状態のコピーを)保つ、我々は上記の方法を使用したテーブル、およびトリガコピー行について、LastChgIDはすでに適切に設定され、トリガが心配する必要はありません。 IDを得ることについて。

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