Использование команды 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