我有一个 login1 和两个用户 user1 和 user2。这三个都是以前创建的。本来login1是映射到user1的,现在想改成映射到user2。
首先,我试过了
ALTER USER user2 WITH LOGIN = login1;
但是SSMS显示
无法将用户重新映射到登录“login1”,因为登录已映射到数据库中的用户。
然后我试了
EXEC sp_change_users_login 'Update_One','user2','login1'
表明
登录名已经有一个不同用户名的帐户。
当我搜索这些错误消息时,大多数帖子都在谈论为什么会发生这种情况或如何识别相关(原始)用户?
但是我的重点是标题,如何将现有登录名从一个现有用户更改为另一个用户?是否可以在不重新创建其中任何一个的情况下实现?
您尝试将用户更改为所需的登录名。这可以。
但是该登录名已经在数据库中有一个用户。登录不能“映射”到数据库中的两个用户。
一种选择是不重新映射登录名。
另一种选择是删除您的登录名当前映射到的用户。
在将 user2 映射到 login1 之前,创建一个新登录并将 user1 映射到新登录。
例如