2012-04-02 7 views
2

私のASP.NET Webアプリケーションは、SQL認証を使用してデータベースに接続しています。私はトリガを使用してデータの変更を監査することに慣れていますが、データの重要な部分があり、取得方法がわかりません。SQL認証を使用したASP.NET WebアプリケーションでのSQLデータ監査

接続はSQL Authを使用しているため、変更はそのユーザーではなくそのSQLユーザーアカウントに属します...

実際に変更を行っている従業員のドメインユーザー名を監査ログに表示するにはどうすればよいですか?

これは私が参照しているトリガーベースの監査の例です。 http://weblogs.asp.net/jgalloway/archive/2008/01/27/adding-simple-trigger-based-auditing-to-your-sql-server-database.aspx

+1

これを読んだ** http://stackoverflow.com/questions/3891441/how-to-obtain-domain-user-name-when-connecting-via-sql-authentication** –

+0

私は今でした!ドー!うんざり! $%^ @!$%^ @#$%@#$%@#$%@#$%@#$% – RSolberg

答えて

2

SOの記事How to Obtain Domain User Name when connecting via SQL Authenticationは既に参照されていますが、あなたが望むことができないということを意味するわけではありません。単にそれがもう少し複雑になることを意味します。

私が過去に行ったことには、「Last Changed By」などのフィールドが含まれています。私はそれを標準的なフィールドにしました(DateCreatedとDateModifiedは通常そうです)。私はそれをすべてのストアドプロシージャ(SQLにデータを書き込む唯一の方法)に含めました。そうすれば、Webアプリケーション(または何でも)は、データを書き込むときにログインした実際の人に渡すことができます。次に、私のトリガーはそのフィールドをキャプチャして、それを監査テーブルに入れることができます。今私は誰がすべての変更を加えたのか知っています

ただし、データベースに書き込んでいる人を正しく通知するには、発信者が頼りにしていることに注意してください。ストアドプロシージャは、あなたが他人を偽装しているかどうかを知ることができません。しかし、あなたがそのprocを呼び出す場所を制御するならば、あなたは大丈夫です。

関連する問題