如何将现有的SQL Server登录名连接到同名的现有SQL Server数据库用户


124

是否有SQL Server命令将单个数据库的用户连接到同名数据库服务器的登录名?

例如:

数据库服务器-默认实例
数据库:TestDB

服务器登录
-TestUser TestDB上的现有用户-TestUser

如果我尝试使TestUser登录名成为TestDB数据库的用户,则“用户,组或角色”已经存在。

有人知道将数据库用户分配给服务器登录名的简便方法吗?

Answers:


229

方法(SQL 2008年起)是使用ALTER USER

ALTER USER OrphanUser WITH LOGIN = correctedLoginName;

这是SQL2008的新功能吗?
jkelley 2010年

2
从SQL Server 2005开始。Gratzy的链接实际上是指此。
gbn

我只是在SQL Server 2012中使用了它,我可以确认它是否有效
Ubercoder '18

6

我想这是 sp_change_users_login。已经有一段时间了,但是在分离和重新附加数据库时我曾经这样做。


1
如果SQL登录是使用Windows用户登录创建的,则sp_change_users_login将不起作用-我今天遇到了这个问题,这使我想到了这个问题。msdn.microsoft.com/en-us/library/ms174378.aspx
Tom Miller

现在不推荐使用此方法,而推荐使用上述ALTER USER方法
Liam

@liam您是否真的刚刚否决了这个8岁的答案,并引用已经包含其不赞成使用的信息的8岁的已接受答案?
Gratzy

2

sp_change_users_login认为,我已经使用该过程完成了该方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.