У нас есть база данных SQL 2012, и наши пользователи настроены с помощью проверки подлинности Windows для подключения к определенной базе данных - скажем, DatabaseA.
Это выглядит так: Пользователь Windows" DomainA / abcd", сопоставлен с пользователем " abcd"в базе данных DatabaseA, который имеет стандартную схему " abcd"который в свою очередь владеет кучей столов. Удаленные пользователи входят в свои ноутбуки (как DomainA / abcd), подключаются через VPN и могут запрашивать данные с сервера SQL (они извлекают данные из схемы по умолчанию на основе своего входа в Windows).
Все этоработает нормально, однако, теперь мы переходим на новый домен.
Наши пользователи будут входить в систему как «DomainB / abcd», и когда они попытаются подключиться к своим таблицам на сервереданные не возвращаются, так как «DomainA / abcd» и «DomainB / abcd» являются разными пользователями.
Чего я пытаюсь достичь: Могу ли я получить пользователя БД «abcd»который в настоящее время сопоставлен с именем входа Windows «DomainA / abcd», чтобы указать на имя входа Windows «DomainB / abcd». Это вообще возможно?
Если нет, каковы альтернативы. Мы хотим избежать сброса схемы / таблиц и пользователя, а затем воссоздать все заново.
Что я пробовал: Я пробовал ALTER USER
и sp_change_users_login
безрезультатно.
ALTER USER [DomainB\abcd] WITH LOGIN = [abcd]
возвращает Cannot remap user to login 'abcd', because the login is already mapped to a user in the database.
- имеет смысл.
EXEC sp_change_users_login 'Update_One', 'abcd', 'DomainB\abcd'; GO
возвращает Terminating this procedure. The User name 'abcd' is absent or invalid.
- MSDN говорит, что это может быть использовано для сопоставления пользователя БД сновый логин SQL, без упоминания логина Windows.
Я являюсь членом роли sysadmin на сервере БД, поэтому не думаю, что это проблема с разрешениями.