Підключення різних користувачів Windows у студії управління SQL Server (2005 або новішої версії)


333

Чи є спосіб в SQL Server Management Studio 2005 (або пізнішої версії) змінити користувача автентифікації Windows (як можна було б у SQL Server 2000 і пізніших версіях)?

Це діалогове вікно загальних властивостей з'єднання (зверніть увагу на сірі UID / PWD при виборі Windows Auth):

діалог

FYI - одне вирішення полягає у використанні, runasале я шукаю рішення, яке дозволить мені працювати з кількома обліковими записами Windows на декількох серверах (і в декількох доменах).


2
Наскільки я знаю, Run as ... - єдиний спосіб досягти цього. Чому ви не можете використовувати Run As ... і просто запустити інший сеанс управління студією для кожного користувача?
DCNYAM

4
RunAs працює лише в тому випадку, якщо ви перебуваєте в одному домені та / або лісі. Якщо ви консультант, ви ніколи не знаходитесь в одному домені та / або лісі, тому це було б приємною функцією.
Ерік

Я можу відчути тебе, Еріку. Іноді я використовую віртуальні машини з клієнтами, щоб віртуальна машина могла бути частиною домену / лісу клієнта і дозволяти мені працювати трохи легше, але якщо ви активно працюєте з кількома доменами, це може бути втомливим.
Ед Алторфер

6
Кілька доменів - це один випадок використання. Інші - сервіси Windows, які входять у свій власний обліковий запис сервісу, і розробник, який бажає перевірити підключення SQL, дозволи та ін. . . принаймні у нас є руни.
Мет П.

Відповіді:


418

Хоча немає можливості підключитися до декількох серверів як різних користувачів в одному екземплярі SSMS, ви шукаєте наступний синтаксис RUNAS:

runas /netonly /user:domain\username program.exe

Використовуючи перемикач "/ netonly", ви можете увійти за допомогою віддалених облікових даних у домені, до якого ви зараз не є членом, навіть якщо довіри не налаштовано. Він просто повідомляє runas, що облікові дані будуть використовуватися для доступу до віддалених ресурсів - додаток взаємодіє з локальним комп'ютером як користувач, який зараз увійшов у систему, і взаємодіє з віддаленими комп'ютерами як користувач, чиї облікові дані ви надали.

Вам все одно доведеться запускати кілька екземплярів SSMS, але принаймні ви можете підключити як різних користувачів Windows у кожному з них.


Наприклад: runas /netonly /user:domain\username ssms.exe


28
Якщо ви хочете той самий домен, але інший користувач, перемкніть перемикач / netonly.
jimconstable

5
Справа про вимикач netonly абсолютно золота. Стільки сценаріїв, що мені знадобився цей. Дякую.
Живко Петьов

7
+1 за найзручніший спосіб зробити це на даний момент. Досі не вдається, що MS не може просто скласти діалогове вікно входу в стиль MSTSC / віддаленого робочого столу в SSMS і налаштувати його за з'єднанням.
Пол Сміт

7
Оце Так! netonly! Фантастичний. Це дивно, хоча коли ви працюєте, коли ви намагаєтеся підключитися до віддаленого сервера з Windows auth, він відображає вашого місцевого користувача, а не користувача, який працює тільки на одному. Це робить його схожим на магію, коли він з'єднується ...
TTT

2
Відповідь, яку користувач user175017 працював для мене, здається набагато простішою, і дозволяє підключення до Windows для одного сеансу SSMS. Якщо коротко, у програмі Win 7 запустіть "Менеджер довірених даних" та просто додайте довірені дані Windows для <ім'я сервера>: 1433, де <ім'я сервера> - машина SQL Server, повністю кваліфікована (як MyServer.MyCompany.Com).
Девід Корн

161

Утримуйте shiftта клацніть правою кнопкою миші піктограму студії SQL Server Mangement. Ви можете запустити як інший користувач облікового запису Windows.


31
На жаль, це не працює, коли обліковий запис знаходиться в іншому домені / мережі - він повертає недійсне ім’я користувача / пароль. Наведена вище команда працює незалежно від того, який обліковий запис знаходиться в іншій мережі.
Джерад Роуз

1
Це працювало для мене! У моєму випадку у мене є два облікові записи під одним доменом.
Татхагата

Працює в Windows 10.
wrkwrk

Працював для мене в іншому домені.
Тахір Хассан

1
Як запустити як інших користувачів облікового запису Windows та як адміністратора ?
Кікенет

116

Ще один спосіб, який я виявив - перейти до "Пуск"> "Панель управління"> "Збережені імена користувачів та паролі" (Адміністративні інструменти> Менеджер довірених даних у Windows 7) та додати обліковий запис домену, який ви б використовували за допомогою команди "runas". .

Потім у SQL Management Studio 2005 просто виберіть «Автентифікація Windows» та введіть сервер, до якого ви хочете підключитися (навіть незважаючи на те, що користувач, якого ви можете побачити сірим, все ще є локальним користувачем) ... і це працює!

Не питайте мене, чому! :)

Редагувати. Обов’язково додайте ": 1433" після імені сервера в Credential Manager, або він може не підключитися через недовіру домену.


10
Чесно кажучи, цю відповідь слід позначити. Рішення runas не працювало для мене, і створив головний біль у тому, що smss не любить заводитися в консолі, що відбувається, коли ви посилаєтесь у smss. І навіть коли це припинилося, воно все одно не спрацювало. Але Credential Manager> Додати обліковий запис Windows працював. Введіть ім’я сервера, ваше DOMAIN \ ім'я користувача та пароль. Як він каже, він все одно показуватиме місцевого користувача, але він все одно підключається.
Брайан Арсугага

16
Можливо, вам буде потрібно використовувати sqlserver.domain.com:1433 в якості мережевої адреси. Дивіться stackoverflow.com/questions/6944933
Грег Брей

7
Дійсно, це працювало для мене, здається набагато простіше, і дозволяє підключення до Windows для одного сеансу SSMS. Щойно я запустив "Менеджер довірених даних" і додав Windows Credentials для <ім'я сервера>: 1433, де <ім'я сервера> - машина SQL Server, повністю кваліфікована (як MyServer.MyCompany.Com).
Девід Корн

1
runasМетод не працює для мене, але це зробило. Спочатку я спробував без інформації про порт у Credential Manager, але все одно не зміг увійти. Коли я додав інформацію про порт у Credential Manager, він працював як шарм. Дуже дякую за це!
Рене

1
Це може бути найелегантніше рішення. Для мене працює в Windows 8.1 підключення до окремого екземпляра SQL 2012, який навіть не є частиною домену. <ім'я_сервера>: 1433
Тім Ленер

10

runas /netonly /user:domain\username program.exeКоманда працювала тільки для мене наWindows 10

  • збереження його як пакетного файлу
  • запустивши його як адміністратора,

при запуску пакетної команди як звичайний користувач я отримав помилкову проблему з паролем, яку деякі користувачі згадували в попередніх коментарях.


Це працювало і для мене, без довірчих відносин між доменами. Мені вдалося запустити SSMS та підключитися до сервера SQL за допомогою облікового запису інших доменів (навіть якщо в інтерфейсі сказано, що він буде використовувати обліковий запис локального домену.
Ніл

10

Жодна з цих відповідей не зробила те, що мені потрібно: Увійдіть на віддалений сервер, використовуючи інший обліковий запис домену, ніж я був увійшов на свою локальну машину, і це домен клієнта через vpn. Я не хочу бути в їх домені!

Натомість у діалоговому вікні підключення до сервера виберіть "Автентифікація Windows", натисніть кнопку "Параметри", а потім на вкладці "Додаткові параметри підключення" введіть

user id=domain\user;password=password

SSMS не запам’ятає, але він зв’яжеться з цим обліковим записом.


Це працювало для мене в студії управління SQL Server 2017
natbob1

6

Трохи чарівницької магії виконають трюк:

cmdkey /add:"SERVER:1433" /user:"DOMAIN\USERNAME" /pass:"PASSWORD"

Потім просто виберіть аутентифікацію Windows


1

Для Windows 10: Перейдіть до піктограми студії управління Sql або у меню Скорочене скорочення: Клацніть правою кнопкою миші> Виберіть Відкрити розташування файлу

введіть тут опис зображення

Утримуйте Shift та праву клацніть ярлик або файл ssms.exe, який знаходиться в папці. Утримуючи зміну, ви отримаєте додаткову опцію "Запустити як інший користувач":

введіть тут опис зображення

Це з'явиться вікно для входу, і ви можете ввести облікові дані, під якими хочете запустити сеанс.


0

Є багато місць, де хтось може захотіти розгорнути подібний сценарій, але через те, як працює інтегрована аутентифікація, це неможливо.

Як зазначалося в gbn, інтегрована автентифікація використовує спеціальний маркер, який відповідає вашій особі Windows. Існують практики кодування під назвою "імперсонація" (ймовірно, використовується командою Запустити як ...), які дозволяють ефективно виконувати діяльність як інший користувач Windows, але насправді немає способу довільно діяти як інший користувач (à la Linux) у додатках Windows окрім цього.

Якщо вам дійсно потрібно адмініструвати кілька серверів у кількох доменах, ви можете розглянути одне з наступних дій:

  1. Налаштуйте доменну довіру між вашими доменами, щоб ваш обліковий запис мав доступ до комп'ютерів у довірчому домені
  2. Налаштуйте користувача SQL (використовуючи змішану автентифікацію) на всіх серверах, які вам потрібно адмініструвати, щоб ви могли увійти в такий спосіб; Очевидно, це може спричинити деякі проблеми безпеки та створити кошмар технічного обслуговування, якщо вам доведеться в певний момент змінити всі паролі.

Сподіваємось, це допомагає!


не можливо помиляється ... вищевказані runas / netonly / user: domain \ username program.exe працює чудово.
Кріс Пірс

-3

Єдиний спосіб досягти того, що ви хочете, - це відкрити кілька екземплярів SSMS, клацнувши правою кнопкою миші на ярлику та за допомогою функції «Виконати».


3
Єдиний шлях? Зовсім ні.
Мішель де Руйтер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.