Использование команды runas для удаленного входа в SQL Server

Я застрял в этой точке, используя команду runas. Я пытаюсь войти в удаленный экземпляр SQL Server, используя Windows Authentication на этом сервере. Я использую эту команду -

runas /netonly /user:Domain\Username 
      /server=someIP "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe"

Но когда я это делаю, он открывает мою Management Studio - IP-адрес удаленного сервера, по умолчанию выбрана проверка подлинности Windows, и у меня есть текущий системный домен и имя пользователя.

Мне действительно нужен способ указать строку подключения для входа в удаленный SQL Server и выполнить пожарные запросы. Это перекрестный домен.

Еще один вопрос: мне нужно иметь Management Studio на компьютере, с которого я запускаю запрос?

Спасибо.

ИЗМЕНИТЬ

Я перефразирую для лучшего понимания.

У меня есть сервер A и сервер B (два отдельных компьютера). Мне нужно запустить запрос из A на B. У него нет сервера sql или студии управления. B имеет оба. Я должен использовать проверку подлинности Windows (что-то вроде myDomain\username) для входа в SQL-сервер B. Я использую команду runas, которую я упомянул в "Target" в свойствах студии управления на B. Это неправильно? Я вхожу в систему в A, используя другое имя пользователя (но тот же домен), что и я, чтобы войти в B. Как выполнить эту задачу?

Спасибо и жаль позднего редактирования.

Ответ 1

Я использую следующее в ярлыке для запуска SSMS на изображении xp, которое НЕ находится в домене для подключения к серверу с использованием учетных данных домена.

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

Ответ 2

Это правильно, /netonly откроет вашу текущую среду, и SSMS будет глупо отображать ваши учетные данные в диалоговых окнах входа. Этого следует ожидать, так как /netonly действительно означает, что предоставленный идентификатор будет использоваться только в сети. Однако при аутентификации с помощью любого удаленного ресурса удаленный сайт будет аутентифицировать вас как "домен\имя пользователя".

Вероятно, вам не нужен параметр/server.

Ответ 3

Я не могу комментировать, поэтому я дам новый ответ. Чтобы использовать ярлык с именем сервера

%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

Без этого вам нужно использовать 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"

Например, вы хотите подключиться к серверу 10.10.10.123, используя имя MSSQLSERVER01 в домене MASTER, используя имя учетной записи STACKUSER2019. Итак, вы добавляете эту строку в файл хоста:

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"

Ответ 4

Шаг 1: Перейдите к файлу ssms.exe

Версия SSMS 2016:

C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe

Версия SSMS 2017:

C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\Ssms.exe

щелкните правой кнопкой мыши на ssms.exe и выберите Свойства

тогда вкладка Совместимость

и нажмите кнопку Изменить настройки для всех пользователей

Проверьте Запустите эту программу как администратор и нажмите OK

Шаг 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. О первом шаге, если вы хотите, чтобы изменения запускались в качестве администратора для конкретного пользователя, войдите в систему как пользователь на компьютере и выполните то же самое, что и шаг без Изменить настройки для всех пользователей

Ответ 5

Если соединение с использованием именной pipes недоступно (то есть вы не можете подключиться с помощью 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:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe
  • 2014: C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\Ssms.exe
  • 2016: C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\Ssms.exe