SQL Server Management Studio 2005(或更高版本)中是否有一种方法可以更改Windows身份验证用户(就像在SQL Server 2000及更早版本中一样)?
这是常规连接属性对话框(请注意选择Windows Auth时灰色的UID / PWD):
仅供参考 - 一种解决方法是使用runas
,但我正在寻找一种解决方案,允许我跨多个服务器(以及跨多个域)使用多个Windows帐户。
答案 0 :(得分:405)
虽然无法在单个SSMS实例中将多个服务器连接为不同的用户,但您正在寻找的是以下RUNAS语法:
runas /netonly /user:domain\username program.exe
当您使用“/ netonly”开关时,即使没有设置信任,您也可以使用您当前不是其成员的域上的远程凭据登录。它只是告诉runas凭据将用于访问远程资源 - 应用程序作为当前登录用户与本地计算机交互,并作为您已提供凭据的用户与远程计算机进行交互。
您仍然需要运行多个SSMS实例,但至少您可以在每个实例中以不同的Windows用户身份进行连接。
<小时/> 例如:runas /netonly /user:domain\username ssms.exe
答案 1 :(得分:154)
按住 shift 并右键单击SQL Server Management studio图标。您可以像其他Windows帐户用户一样运行。
答案 2 :(得分:107)
我发现的另一种方法是转到“开始”&gt; “控制面板”&gt; “存储的用户名和密码”(管理工具&gt; Windows 7中的凭据管理器),并添加将与“runas”命令一起使用的域帐户。
然后,在SQL Management Studio 2005中,只需选择“Windows身份验证”并输入您要连接的服务器(即使您看到灰色的用户仍然是本地用户)......并且它可以正常工作!
不要问我为什么! :)
编辑: 确保在凭据管理器中的服务器名称后面包含“:1433”,或者由于不信任域而可能无法连接。
答案 3 :(得分:10)
<div ng-controller="TimeController as vm">
<form name="vm.timeForm" novalidate>
<div class="form-group">
<label>If you enter any value here below two fields becomes mandatory,
If I am empty below fields are not mandatory. </label>
<input type="number" name="firstfield" class="form-control"
ng-model="vm.firstfield" required>
</div>
<div class="form-group">
<label>Please select</label>
<select class="form-control" ng-model="vm.selectedOption" ng-change="vm.updateMinMax()" ng-required="vm.firstfield">
<option value="hours">HOURS</option>
<option value="minutes">MINUTES</option>
<option value="seconds">SECONDS</option>
</select>
</div>
<div class="form-group" ng-class="{ 'has-error' : vm.timeForm.desiredRPO.$invalid && !vm.timeForm.desiredRPO.$pristine }">
<label>Desired Time</label>
<input type="number" name="desiredRPO" class="form-control" ng-model="vm.desiredRPO" ng-min="vm.minValue" ng-max="vm.maxValue" ng-required="vm.firstfield">
<p ng-show="vm.timeForm.desiredRPO.$invalid" class="help-block">Please enter value between {{vm.minValue}} and {{vm.maxValue}}</p>
</div>
</form>
</div>
命令仅适用于runas /netonly /user:domain\username program.exe
当以普通用户身份运行命令批处理时,我在前面的评论中遇到了一些用户提到的错误密码问题。
答案 4 :(得分:5)
这些答案都没有达到我的要求: 使用与我在本地计算机上登录时不同的域帐户登录远程服务器,它是vpn中的客户端域。我不想成为他们的域名!
而是在连接到服务器对话框中,选择&#34; Windows身份验证&#34;,单击选项按钮,然后在其他连接参数选项卡上,输入&#34; user id = domain \ user; password =密码&#34;没有引号。
SSMS不记得了,但它将与该帐户建立联系。
答案 5 :(得分:3)
一些PowerShell魔法会起到作用:
cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"
然后只需选择Windows身份验证
答案 6 :(得分:1)
有很多地方有人可能想要部署这种情况,但由于集成身份验证的工作方式,这是不可能的。
正如gbn所提到的,集成身份验证使用与您的Windows身份相对应的特殊令牌。有一种称为“模拟”的编码实践(可能由Run As ...命令使用),它允许您作为另一个Windows用户有效地执行活动,但实际上没有办法任意地充当不同的用户(例如Linux)在Windows应用程序之外。
如果您确实需要跨多个域管理多台服务器,可以考虑以下其中一项:
希望这有帮助!
答案 7 :(得分:0)
没有
你能在SQL Server 2000企业管理器中使用吗?我不记得因为Windows身份验证使用当前登录的用户,因为它依赖于登录时生成的NT登录令牌。
“跑步”的唯一方法。
您是否对域名之间有信任?
答案 8 :(得分:0)
对于Windows 10: 转到Sql Management Studio图标或菜单中的“快捷方式”: 右键单击>选择打开文件位置
按住Shift并右键单击文件夹中的快捷方式或ssms.exe文件。按住shift键将为您提供一个额外的选项“以其他用户身份运行”:
这将弹出一个登录框,您可以输入要在其上运行会话的凭据。
答案 9 :(得分:0)
有人试过没有参数的“普通”runas 吗?那些 /netonly /savcecred 听起来很模棱两可,对我来说完全是胡说八道。
C:\Windows\System32\runas.exe /user:DOMAINX\OtherUser02 "C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\ssms.exe"
这很好用。无论如何,runas 都会要求您提供用户密码。只需输入并符合安全审核要求。
答案 10 :(得分:-2)
实现目标的唯一方法是通过右键单击快捷方式并使用“Run-as”功能打开多个SSMS实例。