在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 10
上Windows 10
于我
- 将其保存为batch file
- 以pipe理员身份运行,
当作为普通用户运行命令批处理时,我得到了一些用户在之前的评论中提到的错误的密码问题。
有很多地方有人可能想要部署这种情况,但由于集成身份validation的工作方式,这是不可能的。
正如gbn所提到的,集成身份validation使用与您的Windows身份相对应的特殊令牌。 有一种称为“模仿”(可能被“运行方式”命令使用)的编码实践,它允许您作为另一个Windows用户有效地执行一项活动,但是没有任何方法可以任意作为一个不同的用户Linux)在Windows应用程序之外。
如果您确实需要在多个域中pipe理多个服务器,则可以考虑以下其中一项:
- 在您的域之间设置域信任 ,以便您的帐户可以访问信任域中的计算机
- 在需要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实例。