Я настроил двух пользователей в базе данных 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
?