在SQL Server Management Studio(2005或更高版本)中连接不同的Windows用户

在SQL Server Management Studio 2005(或更高版本)中有没有办法更改Windows身份validation用户(就像在SQL Server 2000及更早版本中一样)?

这是一般的连接属性对话框(注意selectWindows身份validation时灰色的UID / PWD):

对话

仅供参考 – 一个解决方法是使用runas但我正在寻找一个解决scheme,将允许我在多个服务器(跨多个域)使用多个Windows帐户。

虽然在单个SSMS实例中无法以不同的用户身份连接到多个服务器,但您需要的是以下RUNAS语法:

 runas /netonly /user:domain\username program.exe 

当您使用“/ netonly”开关时,即使没有build立信任关系,您也可以使用远程凭证login到您当前不属于的成员。 它只是告诉runas证书将被用于访问远程资源 – 应用程序作为当前login的用户与本地计算机进行交互,并以远程计算机的身份与您的凭据进行交互。

你仍然需要运行SSMS的多个实例,但是至less你可以连接成不同的Windows用户。


例如: runas /netonly /user:domain\username ssms.exe

按住shift并右键单击SQL Server Mangement柱状图标。 您可以运行其他Windows帐户用户。

我发现的另一种方法是进入“开始”>“控制面板”>“存储的用户名和密码”(pipe理工具> Windows 7中的凭证pipe理器),并添加您将使用的域帐户与“runas”命令。

然后,在SQL Management Studio 2005中,只需select“Windows身份validation”,然后input要连接的服务器(尽pipe可以看到灰色的用户仍然是本地用户)。

不要问我为什么! 🙂

编辑:确保在Credential Manager中的服务器名称后面包含“:1433”,或者由于不信任域而可能无法连接。

runas /netonly /user:domain\username program.exe命令只在Windows 10Windows 10于我

  • 将其保存为batch file
  • 以pipe理员身份运行,

当作为普通用户运行命令批处理时,我得到了一些用户在之前的评论中提到的错误的密码问题。

有很多地方有人可能想要部署这种情况,但由于集成身份validation的工作方式,这是不可能的。

正如gbn所提到的,集成身份validation使用与您的Windows身份相对应的特殊令牌。 有一种称为“模仿”(可能被“运行方式”命令使用)的编码实践,它允许您作为另一个Windows用户有效地执行一项活动,但是没有任何方法可以任意作为一个不同的用户Linux)在Windows应用程序之外。

如果您确实需要在多个域中pipe理多个服务器,则可以考虑以下其中一项:

  1. 在您的域之间设置域信任 ,以便您的帐户可以访问信任域中的计算机
  2. 在需要pipe理的所有服务器上configurationSQL用户(使用混合身份validation),以便您可以以这种方式login; 显然,这可能会引入一些安全问题,并且如果您必须在某个时候更改所有密码,则会造成维护噩梦。

希望这有助于!

这些答案都没有做我所需要的:使用不同的域帐户login到远程服务器,而不是我在本地计算机上login的,它是跨越VPN的客户端域。 我不想在他们的领域!

相反,在连接到服务器对话框上,select“Windows身份validation”,单击选项button,然后在其他连接参数选项卡上,input“用户ID =域\用户;密码=密码”不带引号。

SSMS不会记住,但它会连接到该帐户。

没有。

你可以在SQL Server 2000企业pipe理器吗? 我不记得,因为Windows身份validation使用当前login的用户,因为它依赖login时生成的NTlogin令牌。

“Run As”的唯一方法。

你不相信域名吗?

实现你想要的唯一方法是通过右键单击快捷方式并使用“Run-as”function打开多个SSMS实例。