アプリケーションのユーザーをSQLサーバーのユーザーとして実装しないため、アプリケーションサーバーがデータベースに接続するとき、各アプリケーションは常に同じクレデンシャルを使用して各データベースに接続します。
これには監査の問題があります。トリガーを使用して、すべての更新を保存し、挿入と削除を行い、それぞれを特定のユーザーに関連付けます。考えられる解決策の1つは、「ユーザーによって更新」列をすべてのテーブルに追加し、これを毎回更新することです。これは、すべてのテーブルに新しい列があり、すべてのストアドプロシージャに新しいパラメータがあることを意味します。また、ソフト削除しか実行できないことも意味します。
これの代わりに、接続文字列のApplication Nameプロパティを使用し、トリガー内のApp_Name()プロパティでこれを読み取ることを提案します。簡単なアプリでこれをテストしましたが、機能しているようです(形式は、App = MyApp | User = 100のようになります)。
皆さんへの質問は、これは悪い考えですか、そしてあなたはより良い考えを持っていますか?