Connecter différents utilisateurs Windows dans SQL Server Management Studio (2005 ou version ultérieure)

333

Existe-t-il un moyen dans SQL Server Management Studio 2005 (ou version ultérieure) de modifier l'utilisateur d'authentification Windows (comme vous pouvez le faire dans SQL Server 2000 et versions antérieures)?

Il s'agit de la boîte de dialogue des propriétés de connexion générales (notez l'UID / PWD grisé lorsque vous sélectionnez Windows Auth):

dialogue

FYI - Une solution de contournement est à utiliser, runasmais je recherche une solution qui me permettra de travailler avec plusieurs comptes Windows sur plusieurs serveurs (et sur plusieurs domaines).

Matt P.
la source
2
Autant que je sache, Run As ... est le seul moyen d'y parvenir. Pourquoi ne pouvez-vous pas utiliser Exécuter en tant que ... et simplement démarrer une session de studio de gestion différente pour chaque utilisateur?
DCNYAM
4
RunAs ne fonctionne que si vous êtes dans le même domaine et / ou forêt. Si vous êtes consultant, vous n'êtes jamais dans le même domaine et / ou forêt, donc ce serait une fonctionnalité intéressante à avoir.
Eric
Je te sens, Eric. Parfois, j'utilise des machines virtuelles avec des clients pour que la machine virtuelle puisse faire partie du domaine / forêt du client et me permettre de travailler un peu plus facilement, mais si vous travaillez activement avec plusieurs domaines, cela peut être fastidieux.
Ed Altorfer
6
Plusieurs domaines est un cas d'utilisation. Un autre est les services Windows qui se connectent sous leur propre compte de service et un développeur souhaitant vérifier la connectivité SQL, les autorisations, etc. . . au moins nous avons des runas.
Matt P.

Réponses:

418

Bien qu'il n'y ait aucun moyen de se connecter à plusieurs serveurs en tant qu'utilisateurs différents dans une seule instance de SSMS, ce que vous recherchez est la syntaxe RUNAS suivante:

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

Lorsque vous utilisez le commutateur "/ netonly", vous pouvez vous connecter en utilisant des informations d'identification distantes sur un domaine dont vous n'êtes pas actuellement membre, même s'il n'y a pas de confiance établie. Il indique simplement aux runas que les informations d'identification seront utilisées pour accéder aux ressources distantes - l'application interagit avec l'ordinateur local en tant qu'utilisateur actuellement connecté et interagit avec les ordinateurs distants en tant qu'utilisateur dont vous avez donné les informations d'identification.

Vous devez toujours exécuter plusieurs instances de SSMS, mais au moins vous pouvez vous connecter en tant qu'utilisateurs Windows différents dans chacun d'eux.


Par exemple: runas /netonly /user:domain\username ssms.exe

SqlRyan
la source
28
Si vous voulez le même domaine mais un utilisateur différent, supprimez le commutateur / netonly.
jimconstable
5
La chose à propos du commutateur netonly est absolument dorée. Tant de scénarios que j'avais besoin de celui-ci. Merci.
Jivko Petiov
7
+1 pour le moyen le plus pratique de le faire actuellement. Il est toujours décevant que MS ne puisse pas simplement plier une boîte de dialogue de connexion de style MSTSC / bureau à distance dans SSMS et la configurer par connexion.
Paul Smith
7
Hou la la! netonly! Fantastique. C'est assez drôle, cependant, une fois qu'il est en cours d'exécution, lorsque vous essayez de vous connecter à un serveur distant avec l'authentification Windows, il affiche votre utilisateur local, pas l'utilisateur netonly. Ça donne un air magique quand il se connecte ...
TTT
2
La réponse ci-dessous de user175017 a fonctionné pour moi, semble beaucoup plus facile et permet des connexions Windows spécifiques au serveur en une seule session SSMS. En bref, sur Win 7, exécutez «Credential Manager» et ajoutez simplement les informations d'identification Windows pour <servername>: 1433, où <servername> est la machine SQL Server, entièrement qualifiée (comme MyServer.MyCompany.Com).
David Korn
161

Maintenez shiftet cliquez avec le bouton droit sur l'icône de studion de gestion de SQL Server. Vous pouvez exécuter en tant qu'utilisateur d'un autre compte Windows.

Suresh
la source
31
Malheureusement, cela ne fonctionne pas lorsque le compte est sur un autre domaine / réseau - il renvoie un nom d'utilisateur / mot de passe invalide. La commande ci-dessus fonctionne quel que soit le compte se trouvant sur un autre réseau.
Jerad Rose
1
Cela a fonctionné pour moi! Dans mon cas, j'ai deux comptes sous le même domaine.
Tathagata
Fonctionne dans Windows 10.
wrkwrk
A travaillé pour moi sur un domaine différent.
Tahir Hassan
1
Comment exécuter en tant qu'utilisateur d'un autre compte Windows et en tant qu'administrateur ?
Kiquenet
116

Une autre façon que j'ai découverte est d'aller dans "Démarrer"> "Panneau de configuration"> "Noms d'utilisateur et mots de passe stockés" (Outils d'administration> Gestionnaire d'informations d'identification dans Windows 7) et d'ajouter le compte de domaine que vous utiliseriez avec la commande "runas" .

Ensuite, dans SQL Management Studio 2005, sélectionnez simplement l '"Authentification Windows" et entrez le serveur auquel vous souhaitez vous connecter (même si l'utilisateur que vous voyez en grisé est toujours l'utilisateur local) ... et cela fonctionne!

Ne me demandez pas pourquoi! :)

Modifier: assurez-vous d'inclure ": 1433" après le nom du serveur dans Credential Manager ou il peut ne pas se connecter car il ne fait pas confiance au domaine.

dagronlund
la source
10
Honnêtement, cette réponse devrait être balisée. La solution runas n'a pas fonctionné pour moi, et a créé un mal de tête dans lequel smss n'aime pas démarrer dans la console, ce qui se produit lorsque vous appelez dans smss. Et même une fois que cela a cessé de se produire, cela n'a toujours pas fonctionné. Mais Credential Manager> Ajouter un identifiant Windows a fonctionné. Saisissez le nom du serveur, votre DOMAINE \ nom d'utilisateur et le mot de passe. Tout comme il le dit, cela montrera toujours l'utilisateur local, mais il se connectera quand même.
Brian Arsuaga
16
Vous devrez peut-être utiliser sqlserver.domain.com:1433 comme adresse réseau. Voir stackoverflow.com/questions/6944933
Greg Bray
7
En effet, cela a fonctionné pour moi, semble beaucoup plus facile et permet des connexions Windows spécifiques au serveur en une seule session SSMS. Je viens d'exécuter «Credential Manager» et j'ai ajouté les informations d'identification Windows pour <servername>: 1433, où <servername> est la machine SQL Server, entièrement qualifiée (comme MyServer.MyCompany.Com).
David Korn
1
La runasméthode n'a pas fonctionné pour moi, mais cela a fonctionné. J'ai d'abord essayé sans les informations de port dans Credential Manager, mais je ne pouvais toujours pas me connecter. Lorsque j'ai ajouté les informations de port dans Credential Manager, cela a fonctionné comme un charme. Merci beaucoup pour cela!
René
1
Ce pourrait être la solution la plus élégante. Fonctionne dans Windows 8.1 pour me connecter à une instance autonome SQL 2012 qui ne fait même pas partie d'un domaine. <nomserveur>: 1433
Tim Lehner
10

La runas /netonly /user:domain\username program.execommande ne fonctionnait que pour moiWindows 10

  • l'enregistrer en tant que fichier de commandes
  • l'exécuter en tant qu'administrateur,

lors de l'exécution du lot de commandes en tant qu'utilisateur normal, j'ai eu le mauvais problème de mot de passe mentionné par certains utilisateurs dans les commentaires précédents.

Ricardo Mercado
la source
Cela a fonctionné pour moi aussi, aucune relation de confiance entre les domaines. J'ai pu démarrer SSMS et me connecter à un serveur SQL en utilisant le compte des autres domaines (même si dans l'interface utilisateur, il est dit qu'il utilisera le compte de domaine local.
Neil
10

Aucune de ces réponses n'a fait ce dont j'avais besoin: Connectez-vous à un serveur distant en utilisant un compte de domaine différent de celui auquel j'étais connecté sur ma machine locale, et c'est le domaine d'un client sur un VPN. Je ne veux pas être sur leur domaine!

Au lieu de cela, dans la boîte de dialogue de connexion au serveur, sélectionnez «Authentification Windows», cliquez sur le bouton Options, puis sur l'onglet Paramètres de connexion supplémentaires, entrez

user id=domain\user;password=password

SSMS ne s'en souviendra pas, mais il se connectera avec ce compte.

Dave
la source
Cela a fonctionné pour moi dans SQL Server Management Studio 2017
natbob1
6

Un peu de magie PowerShell fera l'affaire:

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

Ensuite, sélectionnez simplement l'authentification Windows

maeneak
la source
1

Pour Windows 10: Accédez à l'icône Sql Management Studio ou au raccourci dans le menu: clic droit> Sélectionner l'emplacement du fichier ouvert

entrez la description de l'image ici

Maintenez la touche Maj enfoncée et cliquez avec le bouton droit sur le raccourci ou le fichier ssms.exe qui se trouve dans le dossier. Maintenir shift vous donnera une option supplémentaire "Exécuter en tant qu'utilisateur différent":

entrez la description de l'image ici

Cela fera apparaître une boîte de connexion et vous pouvez saisir les informations d'identification sous lesquelles votre session doit s'exécuter.

cmartin
la source
0

Il existe de nombreux endroits où quelqu'un peut vouloir déployer ce type de scénario, mais en raison du fonctionnement de l'authentification intégrée, ce n'est pas possible.

Comme gbn l'a mentionné, l'authentification intégrée utilise un jeton spécial qui correspond à votre identité Windows. Il existe des pratiques de codage appelées "usurpation d'identité" (probablement utilisées par la commande Exécuter en tant que ...) qui vous permettent d'effectuer efficacement une activité en tant qu'un autre utilisateur Windows, mais il n'y a pas vraiment de moyen d'agir arbitrairement en tant qu'utilisateur différent (à la Linux) dans les applications Windows en dehors de cela.

Si vous avez vraiment besoin d'administrer plusieurs serveurs sur plusieurs domaines, vous pouvez envisager l'un des éléments suivants:

  1. Configurer l' approbation de domaine entre vos domaines afin que votre compte puisse accéder aux ordinateurs du domaine approuvé
  2. Configurez un utilisateur SQL (en utilisant une authentification mixte) sur tous les serveurs que vous devez administrer afin de pouvoir vous connecter de cette manière; évidemment, cela pourrait introduire des problèmes de sécurité et créer un cauchemar de maintenance si vous devez changer tous les mots de passe à un moment donné.

J'espère que cela aide!

Ed Altorfer
la source
pas possible est faux ... le runas / netonly / user ci-dessus: domain \ username program.exe fonctionne très bien.
Chris Pierce
-3

La seule façon d'atteindre ce que vous voulez consiste à ouvrir plusieurs instances de SSMS en cliquant avec le bouton droit sur le raccourci et en utilisant la fonction «Exécuter en tant que».

SQLChicken
la source
3
Le seul moyen? Pas du tout.
Michel de Ruiter