Sql server 使用runas命令远程登录SQL Server

Sql server 使用runas命令远程登录SQL Server,sql-server,runas,Sql Server,Runas,在这一点上,我无法使用runas命令。我正在尝试使用服务器上的Windows身份验证登录到远程SQL Server实例。我正在使用这个命令- runas /netonly /user:Domain\Username /server=someIP "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" 但当我这样做时,它会打开我的管理工作室-IP是远程服务器的

在这一点上,我无法使用runas命令。我正在尝试使用服务器上的Windows身份验证登录到远程SQL Server实例。我正在使用这个命令-

runas /netonly /user:Domain\Username 
      /server=someIP "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"
但当我这样做时,它会打开我的管理工作室-IP是远程服务器的IP,默认情况下选择Windows身份验证,我有我当前系统的域和用户名

我实际上需要一种方法来指定一个连接字符串,以便登录到远程SQL Server并对其进行查询。这是跨域的

还有一个问题-我是否需要在我发出查询的机器上安装ManagementStudio

谢谢

编辑

为了更好地理解,我正在重新措辞

我有服务器A和服务器B(两台独立的计算机)。我需要从a启动B上的查询。a没有任何sql server或management studio。B两者都有。我必须使用windows身份验证(类似于myDomain\username)登录到B的sql server。我正在使用我在B上management studio属性的“Target”中提到的runas命令。这是错误的吗? 我使用不同的用户名(但相同的域)登录到A,因为我必须登录到B。 我如何完成这项任务


谢谢,很抱歉编辑晚了

我使用以下快捷方式在不在域上的xp映像上运行SSMS,以使用域凭据连接到服务器

%windir%\System32\runas.exe /netonly /user:domain\username "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe -S SERVERNAME"

这是正确的,/netonly将打开您当前的环境,而SSM将愚蠢地在登录对话框中显示您的凭据。这是意料之中的,因为/netonly实际上意味着提供的标识将仅在网络上使用。但是,当您使用任何远程资源进行身份验证时,远程站点将以“域\用户名”身份对您进行身份验证


您可能不需要/server选项。

步骤1:导航到ssms.exe文件

SSMS 2016版本:

SSMS 2017版:

ssms.exe上单击鼠标右键,然后选择属性

然后单击“兼容性”选项卡

然后单击按钮更改所有用户的设置

选中“以管理员身份运行此程序”,然后单击“确定”

步骤2:使用此路径创建快捷方式

SSMS 2016版本:
C:\Windows\System32\runas.exe/savecred/user:domain\username“cmd/C\”C:\Program Files(x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\SSMS.exe\“”

SSMS 2017版本:
C:\Windows\System32\runas.exe/savecred/user:domain\username“cmd/C\”C:\Program Files(x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\SSMS.exe\“”

注意:路径中的cmd/c,这会造成整体差异

就这样。希望对你有用


PS:关于第一步,如果您只想更改以特定用户的管理员身份启动应用程序,请以该用户的身份登录计算机,并执行与第步相同的操作,而不更改所有用户的设置

,以防无法使用名称管道进行连接,(即,您不能使用SERVERNAME进行连接)然后您可以使用IP地址,例如:

%windir%\System32\runas.exe /netonly /user:domain\username "Ssms.exe -S 10.20.30.10"

SSMS.exe的路径取决于您的SQL引擎版本:

  • 2008 R2:
    C:\Program Files(x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe
  • 2012:
    C:\ProgramFiles(x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe
  • 2014:
    C:\ProgramFiles(x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\Ssms.exe
  • 2016:
    C:\ProgramFiles(x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe

我无法发表评论,因此我将给出新的答案。使用服务器名称的快捷方式

%windir%\System32\runas.exe /netonly /user:domain\username "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe -S SERVERNAME"
首先需要将服务器名称和服务器IP添加到主机文件:

C:\Windows\System32\drivers\etc\hosts
10.10.10.123 MSSQLSERVER01
没有它,您需要使用服务器IP:

%windir%\System32\runas.exe /netonly /user:domain\username "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe -S SERVER_IP"
例如,您希望使用帐户名STACKUSER2019在域主机中使用名称MSSQLSERVER01连接到服务器10.10.10.123。因此,您将此行添加到主机文件:

C:\Windows\System32\drivers\etc\hosts
10.10.10.123 MSSQLSERVER01
从CMD或快捷方式运行后:

%windir%\System32\runas.exe /netonly /user:MASTER\STACKUSER2019 "C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe -S MSSQLSERVER01"

我想我理解你的意思。那么我如何编写连接字符串呢?只需在“连接”对话框中选择远程服务器,然后选择“windows身份验证”。没有什么比这更重要的了。还要注意,如果您有一个本地服务器,运行在本地主机上,它不会使用netonly凭据,而是使用您的本地凭据。我认为这非常方便:)请查看编辑。我想我认为这更清楚:)您不能远程运行UI进程,这不是X11服务器。您需要将远程桌面安装到B上。是否尝试以这种方式运行SSMS?请注意,您仍将在SSMS连接对话框中看到您当前的域/用户,但它将使用提供的/用户。这对我很有帮助。没有在参数中显式设置服务器地址,我得到了不受信任的域错误。我知道您可以通过将用户添加到凭据管理器来避免这种情况,但我也在使用实例,无法在其中指定实例名称。