Я настроил двух пользователей в базе данных SQL Server 2008 Express: red и round.
redсоответствует локальной группе WindowsMACHINE\Red.redявляется членом ролей базы данных по умолчаниюdb_datawriter.roundсоответствует локальной группе Windows с именемMACHINE\Round.roundявляется членом ролей базы данных по умолчаниюdb_denydatawriter.
Обе локальные группы Windows содержат локального пользователя Windows MACHINE\tomato.
В моем приложении .NET я сейчас пытаюсь INSERT данные в какую-то таблицу базы данных, когда я вошел в систему как MACHINE\tomato (и подключившись к базе данных с помощью проверки подлинности Windows). Это не работает, предположительно из-за принадлежности пользователя SQL round к роли db_denydatawriter.
Итак, как мою учетную запись Windows можно сопоставить двум пользователям 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?