在SQL Server Management Studio 2005(或更高版本)中,是否可以更改Windows身份验证用户(就像在SQL Server 2000和更早版本中一样)?
这是“常规连接属性”对话框(请注意,选择“ Windows身份验证”时显示为灰色的UID / PWD):
仅供参考-一种解决方法是使用,runas
但我正在寻找一种解决方案,该解决方案将允许我在多个服务器(和多个域)中使用多个Windows帐户。
在SQL Server Management Studio 2005(或更高版本)中,是否可以更改Windows身份验证用户(就像在SQL Server 2000和更早版本中一样)?
这是“常规连接属性”对话框(请注意,选择“ Windows身份验证”时显示为灰色的UID / PWD):
仅供参考-一种解决方法是使用,runas
但我正在寻找一种解决方案,该解决方案将允许我在多个服务器(和多个域)中使用多个Windows帐户。
Answers:
虽然无法在单个SSMS实例中以不同用户身份连接到多台服务器,但您正在寻找以下RUNAS语法:
runas /netonly /user:domain\username program.exe
当您使用“ / netonly”开关时,即使没有建立信任关系,也可以使用远程凭据在当前不是其成员的域上登录。它只是告诉runas凭据将用于访问远程资源-该应用程序以当前登录的用户身份与本地计算机交互,并以您提供其凭据的用户身份与远程计算机交互。
您仍然必须运行多个SSMS实例,但是至少您可以在每个实例中以不同的Windows用户身份进行连接。
runas /netonly /user:domain\username ssms.exe
按住shift并右键单击“ SQL Server Mangement”工作室图标。您可以以其他Windows帐户用户身份运行。
我发现的另一种方法是转到“开始”>“控制面板”>“存储的用户名和密码”(在Windows 7中为“管理工具”>“凭据管理器”),然后添加将与“ runas”命令一起使用的域帐户。 。
然后,在SQL Management Studio 2005中,只需选择“ Windows身份验证”并输入您要连接的服务器(即使您可以看到变灰的用户仍然是本地用户)...并且可以使用!
不要问我为什么!:)
编辑:确保在凭据管理器中的服务器名称后包含“:1433”,否则由于不信任域而可能无法连接。
runas
方法对我不起作用,但是对我有用。最初,我尝试在Credential Manager中没有端口信息,但是仍然无法登录。在Credential Manager中添加端口信息时,它就像一个魅力一样工作。非常感谢你做的这些!
该runas /netonly /user:domain\username program.exe
命令仅对我有用Windows 10
当以普通用户身份运行命令批处理时,我收到了一些用户在以前的评论中提到的错误密码问题。
这些答案都不能满足我的需要:使用与我在本地计算机上登录时不同的域帐户登录到远程服务器,并且这是跨VPN的客户端域。我不想成为他们的域名!
相反,在“连接到服务器”对话框中,选择“ Windows身份验证”,单击“选项”按钮,然后在“其他连接参数”选项卡上,输入
user id=domain\user;password=password
SSMS不会记住,但是它将与该帐户建立联系。
可以使用一些功能强大的魔术来解决问题:
cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"
然后只需选择Windows身份验证
在很多地方,有些人可能想部署这种方案,但是由于集成身份验证的工作方式,所以这是不可能的。
如gbn所述,集成身份验证使用与您的Windows身份相对应的特殊令牌。有一种称为“模拟”的编码做法(可能由“运行方式...”命令使用),可以让您以另一个Windows用户的身份有效地执行一项活动,但是实际上并没有一种可以任意地扮演另一个用户的方式(àla除此之外,Windows应用程序中的Linux)。
如果确实需要跨多个域管理多台服务器,则可以考虑以下方法之一:
希望这会有所帮助!