このアプリケーション用に特別に設定されたログイン資格情報を使用して SQL Server 2008 R2 データベースに接続する (asp.net) アプリケーションがあります。
アプリケーションはストアド プロシージャを介してレコードにアクセス/変更/削除します。ストアド プロシージャには、アクションを実行するユーザーのユーザー名をパラメーターとして渡します。
特定のテーブルのすべての更新と削除の監査ログを保持できる必要があります。また、ソリューションは可能な限り最小限にする必要があり、開発者の介入を必要としません。
私が見つけることができる最も簡単な方法は、「古い」データを履歴テーブル (A_History) にコピーするテーブル (A) にトリガーを置くことです。更新は簡単です。新しく挿入されたレコードのユーザー名を確認するだけです。ただし、削除の場合、ストアド プロシージャに送信されたユーザー名パラメーターにはアクセスできません。
CONTEXT_INFO() のようなものを使用せずにこれを実装する方法はありますか?これは、すべてのストアド プロシージャとすべての呼び出しに追加する必要があり、忘れられるはずです。