2016-10-18 8 views
0

SQL Server 2008R2のトリガーでは、レコードを挿入、更新、または削除したユーザーを知る必要があります。接続文字列からWindowsユーザーを取得する

異なるユーザーが同じ接続文字列でログインすると、誰が実際にサーバーにログインしているのかわかりません(同じUIDでSQL認証を使用していますが、Accessデータベース経由でアクセスできます)。

可能であれば、Application Name=myrealusernameなどの接続文字列に変数を追加することをお勧めしますが、Access VBAではこのパラメータを追加できません。

誰でものユーザ名をトリガに渡すためにログインしたユーザ名を取得する方法は知っていますか?

+2

REALユーザー名が必要な場合は、Windows認証を使用します。 –

+0

すべてのsql接続が同じユーザーで作成されている場合、sqlは知る方法がありません。 Windows認証に切り替えると、現在の方法でアプリケーションが動作することがわかりますが、あなたは固執しています。 –

答えて

1

を使用して試すことができます。すべてのユーザーが自分のPCを持っている場合は、Windows認証の使用を計画していない場合は、おそらくあなたの最高の推測の1つです。

詳細:HOST_NAME() MSDN Documentation

明らかにのみ本当ソリューションは、Windows認証を使用することです。

+0

HOST_NAMEをユーザーにデコードしていただきありがとうございました。私は必要な情報を入手しました! – mak

0

は、Windows認証を使用すると、あなたは、クエリから実行されたインスタンスをキャプチャするHOST_NAME()を記録しようとすることができ

select suser_name() 
+0

いいえ、CURRENT_User、suser_Name()などの私のすべてのattempsは、「本当の」ユーザーではないログインユーザーを連れてきます。 – mak

関連する問題