Mat*_* P. 320 sql sql-server-2008
SQL Server Management Studio 2005(或更高版本)中是否有一种方法可以更改Windows身份验证用户(就像在SQL Server 2000及更早版本中一样)?
这是常规连接属性对话框(请注意选择Windows Auth时灰色的UID/PWD):
仅供参考 - 一种解决方法是使用,runas
但我正在寻找一种解决方案,允许我跨多个服务器(以及跨多个域)使用多个Windows帐户.
Sql*_*yan 411
虽然在单个SSMS实例中无法将多个服务器连接为不同的用户,但您正在寻找的是以下RUNAS语法:
runas /netonly /user:domain\username program.exe
Run Code Online (Sandbox Code Playgroud)
当您使用"/ netonly"开关时,即使没有设置信任,您也可以使用您当前不是其成员的域上的远程凭据登录.它只是告诉runas凭据将用于访问远程资源 - 应用程序作为当前登录用户与本地计算机交互,并作为您已提供凭据的用户与远程计算机进行交互.
您仍然需要运行多个SSMS实例,但至少您可以在每个实例中以不同的Windows用户身份进行连接.
runas /netonly /user:domain\username ssms.exe
小智 156
按住shift并右键单击SQL Server Mangement studion图标.您可以像其他Windows帐户用户一样运行.
小智 110
我发现的另一种方法是转到"开始">"控制面板">"存储的用户名和密码"(Windows 7中的管理工具>凭据管理器)并添加将与"runas"命令一起使用的域帐户.
然后,在SQL Management Studio 2005中,只需选择"Windows身份验证"并输入您要连接的服务器(即使您看到灰色的用户仍然是本地用户)......并且它可以正常工作!
别问我原因!:)
编辑:确保在凭据管理器中的服务器名称后面包含":1433",或者由于不信任域而可能无法连接.
小智 10
该runas /netonly /user:domain\username program.exe
命令仅对我有用Windows 10
当作为普通用户运行命令批处理时,我在前面的评论中遇到了一些用户提到的错误密码问题.
这些答案都没有达到我的需要:使用与我在本地计算机上登录时不同的域帐户登录远程服务器,并且它是跨越VPN的客户端域.我不想成为他们的域名!
而是在"连接到服务器"对话框中,选择"Windows身份验证",单击"选项"按钮,然后在"其他连接参数"选项卡上,输入"user id = domain\user; password = password",不带引号.
SSMS不会记住,但它将与该帐户连接.
一些 powershell 魔法可以解决这个问题:
cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"
Run Code Online (Sandbox Code Playgroud)
然后只需选择Windows身份验证
对于 Windows 10:转到 Sql Management Studio 图标,或菜单中的快捷方式:右键单击 > 选择打开文件位置
按住 Shift 并右键单击文件夹中的快捷方式或 ssms.exe 文件。按住 shift 会给你一个额外的选项“以不同的用户身份运行”:
这将弹出一个登录框,您可以输入您希望会话在其下运行的凭据。
在很多地方,有人可能想要部署这种场景,但由于集成身份验证的工作方式,这是不可能的。
\n\n正如 gbn 所提到的,集成身份验证使用与您的 Windows 身份相对应的特殊令牌。有一些称为“模拟”的编码实践(可能由“运行方式...”命令使用)允许您以另一个 Windows 用户的身份有效地执行活动,但实际上并没有一种方法可以任意充当不同的用户 (\xc3除此之外,Windows 应用程序中的 \xa0 la Linux)。
\n\n如果您确实需要跨多个域管理多台服务器,您可以考虑以下方法之一:
\n\n希望这有帮助!
\n