Использование команды runas для удаленного входа в SQL Server
Я застрял на этом этапе с помощью команды runas. Я пытаюсь войти в удаленный экземпляр SQL Server, используя проверку подлинности Windows на этом сервере. Я использую эту команду -
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(два отдельных компьютера). Мне нужно запустить запрос от А на Б. А не имеет сервера SQL или студии управления. Б имеет оба. Я должен использовать проверку подлинности Windows (что-то вроде myDomain \ username) для входа на сервер sql B. Я использую команду runas, которую я упомянул в "Target" в свойствах студии управления на B. Это неправильно? Я вхожу в A, используя другое имя пользователя (но тот же домен), что и для входа в B. Как я могу выполнить эту задачу?
Спасибо и извините за позднюю редакцию.
4 ответа
Я использую следующее на ярлыке для запуска 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"
Это верно, /netonly откроет вашу текущую среду, а SSMS по глупости отобразит ваши учетные данные в диалоговых окнах входа в систему. Этого и следовало ожидать, поскольку / netonly действительно означает, что предоставленный идентификатор будет использоваться только в сети. Однако при аутентификации на любом удаленном ресурсе удаленный сайт идентифицирует вас как "домен \ имя пользователя".
Вам, вероятно, не нужна опция / server.
Я не могу комментировать, поэтому дам новый ответ. Чтобы использовать ярлык с именем сервера
%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"
Если соединение с использованием именной трубы недоступно (т.е. вы не можете подключиться с помощью 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
Шаг 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 и выберите Свойства
тогда вкладка Совместимость
и нажмите на кнопку Изменить настройки для всех пользователей
Установите флажок Запустить эту программу от имени администратора и нажмите кнопку ОК.
Шаг 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: Что касается первого шага, если вы хотите внести изменения, чтобы запустить приложение от имени администратора для конкретного пользователя, войдите в систему как этот пользователь на компьютере и сделайте то же самое, что и шаг без настроек изменения для всех пользователей.