Connetti diversi utenti Windows in SQL Server Management Studio (2005 o successivo)


333

Esiste un modo in SQL Server Management Studio 2005 (o successivo) per modificare l'utente di autenticazione di Windows (come si potrebbe fare in SQL Server 2000 e precedenti)?

Questa è la finestra di dialogo delle proprietà della connessione generale (notare l'UID / PWD disattivato quando si seleziona Windows Auth):

dialogo

Cordiali saluti - Una soluzione alternativa è quella di utilizzare runasma sto cercando una soluzione che mi permetterà di lavorare con più account Windows su più server (e su più domini).


2
Per quanto ne so, Run As ... è l'unico modo per raggiungere questo obiettivo. Perché non è possibile utilizzare Esegui come ... e avviare una sessione di management studio diversa per ciascun utente?
DCNYAM,

4
RunAs funziona solo se ti trovi nello stesso dominio e / o foresta. Se sei un consulente, non sei mai nello stesso dominio e / o foresta, quindi questa sarebbe una bella caratteristica da avere.
Eric,

Ti sento, Eric. A volte utilizzo le VM con i client in modo che la macchina virtuale possa far parte del dominio / foresta del client e mi consenta di lavorare un po 'più facilmente, ma se stai lavorando attivamente con più domini, questo può essere noioso.
Ed Altorfer,

6
Più domini è un caso d'uso. Un altro sono i servizi Windows che accedono con il proprio account di servizio e uno sviluppatore che desidera verificare la connettività SQL, le autorizzazioni, ecc. Sembra che io sia sfortunato. . . almeno abbiamo delle rune.
Matt P.

Risposte:


418

Sebbene non ci sia modo di connettersi a più server come utenti diversi in una singola istanza di SSMS, ciò che stai cercando è la seguente sintassi RUNAS:

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

Quando si utilizza l'opzione "/ netonly", è possibile accedere utilizzando credenziali remote su un dominio di cui non si è attualmente membri, anche se non è stato impostato alcun trust. Indica solo alle runas che le credenziali verranno utilizzate per accedere alle risorse remote: l'applicazione interagisce con il computer locale come utente attualmente connesso e interagisce con i computer remoti come l'utente di cui hai fornito le credenziali.

Dovresti comunque eseguire più istanze di SSMS, ma almeno potresti connetterti come utenti Windows diversi in ognuno.


Per esempio: runas /netonly /user:domain\username ssms.exe


28
Se si desidera lo stesso dominio ma l'utente diverso rilascia l'opzione / netonly.
jimconstable

5
La cosa sull'interruttore netonly è assolutamente d'oro. Così tanti scenari di cui avevo bisogno questo. Grazie.
Jivko Petiov,

7
+1 per il modo più conveniente per farlo al momento. È ancora indecente che MS non possa semplicemente piegare una finestra di dialogo di accesso in stile MSTSC / desktop remoto in SSMS e configurarlo per connessione.
Paul Smith,

7
Wow! netonly! Fantastico. È un po 'divertente però che una volta che è in esecuzione, quando si tenta di connettersi a un server remoto con l'autenticazione di Windows, mostra l'utente locale, non l'utente netonly. Lo fa sembrare magico quando si collega ...
TTT

2
La risposta che segue dell'utente175017 ha funzionato per me, sembra molto più semplice e consente connessioni Windows specifiche del server in una sessione SSMS. In breve, su Win 7, esegui "Credential Manager" e aggiungi le credenziali di Windows per <servername>: 1433, dove <servername> è la macchina SQL Server, pienamente qualificata (come MyServer.MyCompany.Com).
David Korn il

161

Tenere premuto shifte fare clic con il tasto destro sull'icona Studion di SQL Server Mangement. È possibile eseguire come altro utente dell'account Windows.


31
Sfortunatamente, questo non funziona quando l'account si trova su un altro dominio / rete - restituisce nome utente / password non validi. Il comando sopra funziona indipendentemente dal fatto che l'account si trovi su un'altra rete.
Jerad Rose,

1
Questo ha funzionato per me! Nel mio caso ho due account nello stesso dominio.
Tathagata,

Funziona con Windows 10.
wrkwrk,

Ha funzionato per me in un dominio diverso.
Tahir Hassan,

1
Come eseguire come altro utente dell'account Windows e come amministratore ?
Kiquenet,

116

Un altro modo che ho scoperto è andare su "Start"> "Pannello di controllo"> "Nomi utente e password memorizzati" (Strumenti di amministrazione> Gestione credenziali in Windows 7) e aggiungere l'account di dominio che useresti con il comando "runas" .

Quindi, in SQL Management Studio 2005, basta selezionare "Autenticazione di Windows" e inserire il server a cui si desidera connettersi (anche se l'utente che si vede in grigio è ancora l'utente locale) ... e funziona!

Non chiedermi perché! :)

Modifica: assicurarsi di includere ": 1433" dopo il nome del server in Credential Manager o potrebbe non connettersi a causa della fiducia del dominio.


10
Onestamente, questa risposta dovrebbe essere contrassegnata. La soluzione runas non ha funzionato per me e ha creato un mal di testa in quel smss che non piace iniziare in console, che è ciò che accade quando invochi in smss. E anche una volta che ha smesso di accadere, non ha ancora funzionato. Ma Gestione credenziali> Aggiungi credenziali di Windows ha funzionato. Immettere il nome del server, il DOMINIO \ nome utente utente e la password. Proprio come dice, mostrerà comunque all'utente locale, ma si connette comunque.
Brian Arsuaga,

16
Potrebbe essere necessario utilizzare sqlserver.domain.com:1433 come indirizzo di rete. Vedi stackoverflow.com/questions/6944933
Greg Bray,

7
In effetti questo ha funzionato per me, sembra molto più semplice e consente connessioni Windows specifiche del server in una sessione SSMS. Ho appena eseguito "Credential Manager" e ho aggiunto le credenziali di Windows per <nomeserver>: 1433, dove <nomeserver> è la macchina SQL Server, pienamente qualificata (come MyServer.MyCompany.Com).
David Korn il

1
Il runasmetodo non ha funzionato per me, ma questo ha funzionato. Inizialmente ho provato senza le informazioni sulla porta in Credential Manager, ma non riuscivo ancora ad accedere. Quando ho aggiunto le informazioni sulla porta in Credential Manager, ha funzionato come un fascino. Grazie mille per questo!
René,

1
Questa potrebbe essere la soluzione più elegante. Funziona in Windows 8.1 per me collegandomi a un'istanza autonoma di SQL 2012 che non fa nemmeno parte di un dominio. <nomeserver>: 1433
Tim Lehner

10

Il runas /netonly /user:domain\username program.execomando ha funzionato solo per meWindows 10

  • salvandolo come file batch
  • eseguendolo come amministratore,

durante l'esecuzione del batch di comandi come utente normale ho riscontrato il problema con la password errata menzionato da alcuni utenti nei commenti precedenti.


Questo ha funzionato anche per me, nessuna relazione di fiducia tra domini. Sono stato in grado di avviare SSMS e connettermi a un server SQL utilizzando l'account di altri domini (anche se nell'interfaccia utente dice che utilizzerà l'account di dominio locale.
Neil

10

Nessuna di queste risposte ha fatto ciò di cui avevo bisogno: accedi a un server remoto usando un account di dominio diverso da quello in cui sono stato effettuato l'accesso sul mio computer locale, ed è il dominio di un client su una VPN. Non voglio essere nel loro dominio!

Invece, nella finestra di dialogo Connetti al server, seleziona "Autenticazione di Windows", fai clic sul pulsante Opzioni, quindi nella scheda Parametri di connessione aggiuntivi, inserisci

user id=domain\user;password=password

SSMS non ricorderà, ma si connetterà con quell'account.


Questo ha funzionato per me in SQL Server Management Studio 2017
natbob1

6

Un po 'di magia PowerShell farà il trucco:

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

Quindi seleziona l'autenticazione di Windows


1

Per Windows 10: vai sull'icona Sql Management Studio o scorciatoia nel menu: tasto destro> Seleziona posizione file aperto

inserisci qui la descrizione dell'immagine

Tieni premuto Maiusc e fai clic con il pulsante destro del mouse sul collegamento o sul file ssms.exe presente nella cartella. Tenendo premuto il turno ti darà un'opzione extra "Esegui come utente diverso":

inserisci qui la descrizione dell'immagine

Verrà visualizzata una casella di accesso e puoi digitare le credenziali in cui desideri eseguire la sessione.


0

Ci sono molti posti in cui qualcuno potrebbe voler distribuire questo tipo di scenario, ma a causa del modo in cui funziona l'autenticazione integrata, non è possibile.

Come menzionato gbn, l'autenticazione integrata utilizza un token speciale che corrisponde alla tua identità di Windows. Esistono pratiche di codifica chiamate "rappresentazione" (probabilmente utilizzate dal comando Esegui come ...) che consentono di eseguire in modo efficace un'attività come un altro utente di Windows, ma non esiste un modo per agire arbitrariamente come un altro utente (à la Linux) in applicazioni Windows a parte questo.

Se hai davvero bisogno di amministrare più server su più domini, potresti considerare uno dei seguenti:

  1. Imposta Trust di dominio tra i tuoi domini in modo che il tuo account possa accedere ai computer nel dominio di trust
  2. Configurare un utente SQL (usando l'autenticazione mista) su tutti i server che è necessario amministrare in modo da poter accedere in quel modo; ovviamente, questo potrebbe introdurre alcuni problemi di sicurezza e creare un incubo di manutenzione se si devono cambiare tutte le password a un certo punto.

Speriamo che questo aiuti!


impossibile è sbagliato ... le precedenti runas / netonly / user: domain \ username program.exe funzionano bene.
Chris Pierce,

-3

L'unico modo per ottenere ciò che desideri è aprire diverse istanze di SSMS facendo clic con il pulsante destro del mouse sul collegamento e utilizzando la funzione "Esegui come".


3
L'unico modo? Affatto.
Michel de Ruiter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.