asp.netとsqlサーバーを使用してWebアプリケーションを開発しています。アプリケーションの監査証跡を作成する必要があります。私がこれを理解しているように、監査証跡は基本的にデータベース上のすべての挿入、更新、および削除に対するものですよね?これにアプローチする方法は、挿入、更新、または削除が実行されるたびにデータが入力される監査証跡テーブルをDBに作成することです(DAL内でスクリプトを手動で記述します)。ただし、SQL Management Studioから直接発生したDBの変更は記録されません(明らかな理由:P)。
それに応えるために、私はトリガーを作成することができ、それがすべてを処理します。また、グーグルを実行したところ、SQLサーバーに監査証跡を実行する機能があることがわかりました。ただし、トリガーを使用する場合の問題は、Webサイトにログインしたユーザー情報を取得できないことです。私はSQLユーザーを取得しますが、それについて2つのヒントを与えることはしません。私は、Webサイトユーザーについて心配しています。
私が理解した解決策は、a)Webアプリケーションからの監査証跡を持ち、トリガーを設定することでした。監査レポートには、Webアプリケーションからの監査ログとSQLサーバーからの監査ログを表示するだけです。このアプローチの明らかな問題:頭上。DBが変更されるたびに2つの異なるテーブルセットに書き込みます。
b)すべてのDBテーブルにUserIdという列があります。次に、すべてのDB変更をキャプチャするトリガーを作成します。変更するすべてのテーブル(挿入、更新、削除)にこのuserIdを渡し、トリガーからこのIDを取得します。明らかな挫折:すべてのテーブルに不要なuserid列
長い投稿をお詫び申し上げます。基本的に、すべてのデータベースの変更(データベースへの直接ハックを含む)をログに記録する監査ログが必要ですが、同時に、Webアプリケーションから行われたデータベースの変更のユーザーログイン情報を提供します。
この点に関するご意見をいただければ幸いです。
どうもありがとう
xeshu