更改数据库服务器上现有SQL用户的登录名(Windows用户)

我们有一个SQL 2012数据库,我们的用户通过Windows身份验证设置为连接到特定数据库-例如DatabaseA。

它看起来像这样: Windows用户 DomainA / abcd ”被映射到用户 abcd DatabaseA中的“>”,它具有默认的 schema abcd ”,而该表又拥有一堆表。远程用户登录到他们的笔记本电脑(作为DomainA / abcd),通过VPN连接,并能够从SQL Server查询数据(他们根据Windows登录名从默认架构中提取数据)。

一切正常,但是,现在我们正在转移到新域。

我们的用户将以“ DomainB / abcd”身份登录,并且当他们尝试连接到服务器上的表时,由于“ DomainA / abcd”和“ DomainB / abcd”是不同的用户。

我要实现的目标:我能否获取当前映射到Windows登录名“ DomainA / abcd”的数据库用户“ abcd”,以指向Windows登录名“ DomainB / abcd”。那有可能吗?

如果没有,有什么替代方法。我们希望避免删除架构/表和用户,然后再次重新创建所有内容。

我尝试了什么:我尝试了ALTER USERsp_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角色的成员,所以我认为这不是权限问题。

wusjxm 回答:更改数据库服务器上现有SQL用户的登录名(Windows用户)

当SQL Server用户域名更改时,此时,我们仍要保留当前的数据库用户设置,并且不想重新创建这些用户,我们可以使用SQL脚本来更新用户域,如下所示:>

ALTER USER [abcd] WITH LOGIN = [DomainB\abcd],NAME = [abcd]

很高兴为您服务。

本文链接:https://www.f2er.com/3156920.html

大家都在问