Verbinden Sie verschiedene Windows-Benutzer in SQL Server Management Studio (2005 oder höher).

333

Gibt es in SQL Server Management Studio 2005 (oder höher) eine Möglichkeit, den Windows-Authentifizierungsbenutzer zu ändern (wie in SQL Server 2000 und älter)?

Dies ist das allgemeine Dialogfeld mit den Verbindungseigenschaften (beachten Sie die ausgegraute UID / PWD, wenn Sie Windows Auth auswählen):

Dialog

Zu Ihrer Information - Eine Problemumgehung ist die Verwendung, runasaber ich suche nach einer Lösung, mit der ich mit mehreren Windows-Konten auf mehreren Servern (und über mehrere Domänen hinweg) arbeiten kann.

Matt P.
quelle
2
Soweit ich weiß, ist Run As ... der einzige Weg, dies zu erreichen. Warum können Sie Run As nicht verwenden ... und einfach für jeden Benutzer eine andere Management Studio-Sitzung starten?
DCNYAM
4
RunAs funktioniert nur, wenn Sie sich in derselben Domäne und / oder Gesamtstruktur befinden. Wenn Sie ein Berater sind, befinden Sie sich nie in derselben Domäne und / oder Gesamtstruktur. Dies wäre also eine nette Funktion.
Eric
Ich kann dich fühlen, Eric. Manchmal verwende ich VMs mit Clients, damit die virtuelle Maschine Teil der Domäne / Gesamtstruktur des Clients sein kann und ich ein wenig nahtloser arbeiten kann. Wenn Sie jedoch aktiv mit mehreren Domänen arbeiten, kann dies mühsam sein.
Ed Altorfer
6
Mehrere Domänen sind ein Anwendungsfall. Ein weiterer Grund sind Windows-Dienste, die sich unter ihrem eigenen Dienstkonto anmelden, und ein Entwickler, der die SQL-Konnektivität, Berechtigungen usw. überprüfen möchte. Es hört sich so an, als hätte ich kein Glück. . . Zumindest haben wir Runas.
Matt P.

Antworten:

418

Während es in einer einzigen SSMS-Instanz keine Möglichkeit gibt, eine Verbindung zu mehreren Servern als unterschiedliche Benutzer herzustellen, suchen Sie nach der folgenden RUNAS-Syntax:

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

Wenn Sie den Schalter "/ netonly" verwenden, können Sie sich mit Remote-Anmeldeinformationen in einer Domäne anmelden, in der Sie derzeit nicht Mitglied sind, auch wenn keine Vertrauensstellung eingerichtet ist. Runas wird lediglich mitgeteilt, dass die Anmeldeinformationen für den Zugriff auf Remoteressourcen verwendet werden. Die Anwendung interagiert mit dem lokalen Computer als aktuell angemeldetem Benutzer und mit Remotecomputern als dem Benutzer, dessen Anmeldeinformationen Sie angegeben haben.

Sie müssten immer noch mehrere Instanzen von SSMS ausführen, aber zumindest könnten Sie in jedem eine Verbindung als unterschiedliche Windows-Benutzer herstellen.


Zum Beispiel: runas /netonly /user:domain\username ssms.exe

SqlRyan
quelle
28
Wenn Sie dieselbe Domain, aber einen anderen Benutzer möchten, lassen Sie den Schalter / netonly fallen.
Jimconstable
5
Die Sache mit dem netonly-Schalter ist absolut golden. So viele Szenarien, dass ich dieses brauchte. Vielen Dank.
Jivko Petiov
7
+1 für den derzeit bequemsten Weg, dies zu tun. Es ist immer noch lahm, dass MS nicht einfach einen Anmeldedialog im MSTSC- / Remotedesktop-Stil in SSMS einbinden und pro Verbindung konfigurieren kann.
Paul Smith
7
Beeindruckend! nur neton! Fantastisch. Es ist allerdings irgendwie lustig, dass wenn Sie versuchen, eine Verbindung zu einem Remote-Server mit Windows-Authentifizierung herzustellen, Ihr lokaler Benutzer und nicht der einzige Benutzer angezeigt wird. Lässt es wie Magie aussehen, wenn es verbindet ...
TTT
2
Die folgende Antwort von user175017 hat für mich funktioniert, scheint viel einfacher zu sein und ermöglicht serverspezifische Windows-Verbindungen in einer SSMS-Sitzung. Kurz gesagt, führen Sie unter Win 7 "Credential Manager" aus und fügen Sie einfach Windows Credentials für <Servername>: 1433 hinzu, wobei <Servername> der vollständig qualifizierte SQL Server-Computer ist (wie MyServer.MyCompany.Com).
David Korn
161

Halten shiftSie die Taste gedrückt und klicken Sie mit der rechten Maustaste auf das SQL Server-Verwaltungssymbol. Sie können als anderer Windows-Kontonutzer ausgeführt werden.

Suresh
quelle
31
Leider funktioniert dies nicht, wenn sich das Konto in einer anderen Domäne / einem anderen Netzwerk befindet. Es gibt einen ungültigen Benutzernamen / ein ungültiges Kennwort zurück. Der obige Befehl funktioniert unabhängig davon, ob sich das Konto in einem anderen Netzwerk befindet.
Jerad Rose
1
Das hat bei mir funktioniert! In meinem Fall habe ich zwei Konten unter derselben Domain.
Tathagata
Funktioniert unter Windows 10.
wrkwrk
Arbeitete für mich auf einer anderen Domain.
Tahir Hassan
1
Anleitung als anderer Windows-Kontonutzer und als Administrator ?
Kiquenet
116

Eine andere Möglichkeit, die ich entdeckt habe, besteht darin, zu "Start"> "Systemsteuerung"> "Gespeicherte Benutzernamen und Kennwörter" (Verwaltung> Anmeldeinformations-Manager in Windows 7) zu wechseln und das Domänenkonto hinzuzufügen, das Sie mit dem Befehl "runas" verwenden würden .

Wählen Sie dann in SQL Management Studio 2005 einfach die "Windows-Authentifizierung" aus und geben Sie den Server ein, zu dem Sie eine Verbindung herstellen möchten (obwohl der ausgegraute Benutzer immer noch der lokale Benutzer ist) ... und es funktioniert!

Frag mich nicht warum! :) :)

Bearbeiten: Stellen Sie sicher, dass ": 1433" nach dem Servernamen in Credential Manager steht, da sonst möglicherweise keine Verbindung hergestellt wird, da der Domäne nicht vertraut wird.

Dagronlund
quelle
10
Ehrlich gesagt sollte diese Antwort markiert werden. Die Runas-Lösung hat bei mir nicht funktioniert und Kopfschmerzen verursacht, da SMS nicht gerne in der Konsole gestartet wird. Dies passiert, wenn Sie in SMS aufrufen. Und selbst wenn das aufhörte, funktionierte es immer noch nicht. Aber Credential Manager> Windows-Anmeldeinformationen hinzufügen hat funktioniert. Geben Sie den Servernamen, Ihren Benutzernamen DOMAIN \ user und das Kennwort ein. Genau wie er sagt, wird es immer noch den lokalen Benutzer zeigen, aber es verbindet sich trotzdem.
Brian Arsuaga
16
Möglicherweise müssen Sie sqlserver.domain.com:1433 als Netzwerkadresse verwenden. Siehe stackoverflow.com/questions/6944933
Greg Bray
7
In der Tat hat dies für mich funktioniert, scheint viel einfacher zu sein und ermöglicht serverspezifische Windows-Verbindungen in einer SSMS-Sitzung. Ich habe gerade "Credential Manager" ausgeführt und Windows-Anmeldeinformationen für <Servername>: 1433 hinzugefügt, wobei <Servername> der vollständig qualifizierte SQL Server-Computer ist (wie MyServer.MyCompany.Com).
David Korn
1
Die runasMethode hat bei mir nicht funktioniert, aber das hat funktioniert. Ich habe es zunächst ohne die Portinformationen in Credential Manager versucht, konnte mich aber immer noch nicht anmelden. Als ich die Portinformationen in Credential Manager hinzufügte, funktionierte dies wie ein Zauber. Vielen Dank dafür!
René
1
Dies könnte die eleganteste Lösung sein. Funktioniert in Windows 8.1 für mich, indem ich eine Verbindung zu einer eigenständigen SQL 2012-Instanz herstelle, die nicht einmal Teil einer Domäne ist. <Servername>: 1433
Tim Lehner
10

Der runas /netonly /user:domain\username program.exeBefehl hat nur bei mir funktioniertWindows 10

  • Speichern als Batch-Datei
  • Ausführen als Administrator,

Beim Ausführen des Befehlsstapels als regulärer Benutzer habe ich das falsche Kennwortproblem erhalten, das von einigen Benutzern in früheren Kommentaren erwähnt wurde.

Ricardo Mercado
quelle
Das hat auch bei mir funktioniert, keine Vertrauensbeziehung zwischen Domains. Ich konnte SSMS starten und über das andere Domänenkonto eine Verbindung zu einem SQL Server herstellen (obwohl in der Benutzeroberfläche angegeben ist, dass das lokale Domänenkonto verwendet wird.
Neil
10

Keine dieser Antworten hat das getan, was ich brauchte: Melden Sie sich bei einem Remoteserver mit einem anderen Domänenkonto an, als ich auf meinem lokalen Computer angemeldet war, und es ist die Domäne eines Clients über einen VPN. Ich möchte nicht auf ihrer Domain sein!

Wählen Sie stattdessen im Dialogfeld "Verbindung zum Server" die Option "Windows-Authentifizierung" aus, klicken Sie auf die Schaltfläche "Optionen" und geben Sie auf der Registerkarte "Zusätzliche Verbindungsparameter" ein

user id=domain\user;password=password

SSMS wird sich nicht erinnern, aber es wird eine Verbindung mit diesem Konto hergestellt.

Dave
quelle
Dies funktionierte für mich in SQL Server Management Studio 2017
natbob1
6

Ein bisschen Powershell-Magie reicht aus:

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

Wählen Sie dann einfach die Windows-Authentifizierung aus

Maeneak
quelle
Dies war der Hinweis für mich, danke!
David Cumps
1

Für Windows 10: Gehen Sie zum SQL Management Studio-Symbol oder zur Verknüpfung im Menü: Rechtsklick> Wählen Sie Open File Location

Geben Sie hier die Bildbeschreibung ein

Halten Sie die Umschalttaste gedrückt und klicken Sie mit der rechten Maustaste auf die Verknüpfung oder die Datei ssms.exe, die sich im Ordner befindet. Wenn Sie die Umschalttaste gedrückt halten, erhalten Sie eine zusätzliche Option "Als anderer Benutzer ausführen":

Geben Sie hier die Bildbeschreibung ein

Daraufhin wird ein Anmeldefeld angezeigt, und Sie können die Anmeldeinformationen eingeben, unter denen Ihre Sitzung ausgeführt werden soll.

cmartin
quelle
Super Tipp, danke! Es hat mein Problem gelöst;)
Hallaghan
0

Es gibt viele Orte, an denen jemand diese Art von Szenario bereitstellen möchte, aber aufgrund der Funktionsweise der integrierten Authentifizierung ist dies nicht möglich.

Wie bereits erwähnt, verwendet die integrierte Authentifizierung ein spezielles Token, das Ihrer Windows-Identität entspricht. Es gibt Codierungsmethoden, die als "Identitätswechsel" bezeichnet werden (wahrscheinlich vom Befehl "Ausführen als ...") und die es Ihnen ermöglichen, eine Aktivität als anderer Windows-Benutzer effektiv auszuführen. Es gibt jedoch keine Möglichkeit, willkürlich als anderer Benutzer zu agieren (à la) Linux) in Windows-Anwendungen.

Wenn Sie wirklich mehrere Server in mehreren Domänen verwalten müssen, können Sie eine der folgenden Möglichkeiten in Betracht ziehen:

  1. Richten Sie die Domänenvertrauensstellung ein zwischen den Domänen so , dass Ihr Konto zugreifen können Computer in der vertrauenden Domäne
  2. Konfigurieren Sie einen SQL-Benutzer (mit gemischter Authentifizierung) auf allen Servern, die Sie verwalten müssen, damit Sie sich auf diese Weise anmelden können. Dies kann natürlich zu Sicherheitsproblemen führen und einen Alptraum für die Wartung verursachen, wenn Sie irgendwann alle Kennwörter ändern müssen.

Hoffentlich hilft das!

Ed Altorfer
quelle
nicht möglich ist falsch ... die oben genannten runas / netonly / user: domain \ username program.exe funktionieren einwandfrei.
Chris Pierce
-3

Die einzige Möglichkeit, das gewünschte Ergebnis zu erzielen, besteht darin, mehrere Instanzen von SSMS zu öffnen, indem Sie mit der rechten Maustaste auf die Verknüpfung klicken und die Funktion "Ausführen als" verwenden.

SQLChicken
quelle
3
Der einzige Weg? Ganz und gar nicht.
Michel de Ruiter