SQL Server 2008 Express データベース内に 2 人のユーザーを構成しました:red
とround
.
red
ローカル Windows グループにマップされますMACHINE\Red
。
red
デフォルトのデータベース ロールのメンバーですdb_datawriter
。round
という名前のローカル Windows グループにマップされMACHINE\Round
ます。
round
デフォルトのデータベース ロールのメンバーですdb_denydatawriter
。
両方のローカル Windows グループには、ローカル Windows ユーザーが含まれていますMACHINE\tomato
。
私の.NETアプリケーションから、としてログインしている間(そしてWindows認証を使用してデータベースに接続することによって)、INSERT
データベーステーブルにデータを入力しようとしています。おそらくロール内MACHINE\tomato
の SQL ユーザーのメンバーシップが原因で、これは機能しません。round
db_denydatawriter
では、Windows ログインを 2 人の SQL Server ユーザーに同時にマップするにはどうすればよいでしょうか?
-- MACHINE\Red ---------- red ------- db_datawriter
-- /
-- MACHINE\tomato
-- \
-- MACHINE\Round ------- round ------ db_denydatawriter
そして、どのようにして現在のログインを取得すると、
SELECT CURRENT_USER -- I could also use SYSTEM_USER or ORIGINAL_LOGIN()
-- with exactly the same result, it seems
私は戻ってきますMYMACHINE\tomato
、そしてそうではありませんred
かround
?