Comment contrôler l'ordre des serveurs répertoriés dans la boîte de dialogue de connexion SSMS?

11

Mon projet actuel implique beaucoup de brassage de bases de données lors de la mise à niveau de SQL 2008 -> 2012, refaire le matériel, répétez.

Un inconvénient mineur est la boîte de dialogue de connexion dans SSMS remaniant l'ordre du serveur pour mettre le plus récent au sommet. Étant donné qu'un jour donné je me connecte à des serveurs 6-10 DB et que je veux en trouver rapidement un spécifique dans la liste, ce comportement est beaucoup plus un obstacle qu'une aide.

Existe-t-il un moyen de désactiver ce comportement, en répertoriant les serveurs par ordre alphabétique ou dans l'ordre dans lequel ils ont été ajoutés ... ou quoi que ce soit qui ne change pas chaque fois que je me connecte à un serveur?

À part cela, existe-t-il une manière entièrement différente de mieux gérer la connexion à un serveur spécifique à partir d'une liste / batterie de serveurs?

J'utilise SSMS pour SQL 2012 (même si je suis également curieux de connaître les solutions 2008).

Nick Craver
la source

Réponses:

6

Utilisez des serveurs enregistrés ou configurez un serveur de gestion central (CMS). Je recommande ce dernier si vous pouvez prendre le (petit) temps pour configurer l'infrastructure car cela permettra à tout le monde de voir la même liste de serveurs, au lieu de vous (les serveurs enregistrés sont stockés dans le registre). Le seul "inconvénient" d'un CMS est que vous devez utiliser l'authentification Windows car les mots de passe ne sont pas conservés sur le disque.

Ces deux fonctionnalités vous permettent de maintenir une liste ordonnée / groupée de serveurs et de gérer les serveurs en tant que groupes. Ceci est très puissant car la gestion basée sur les politiques est étroitement intégrée à l'interface graphique.

Cela fonctionne avec toutes les versions de serveur - j'exécute SSMS 2012 et gère les serveurs 2005-2012. Un serveur CMS peut être configuré sur une édition Express, donc les licences ne sont pas un problème; cependant, je recommande d'effectuer des sauvegardes de base de données système afin que la liste des serveurs soit récupérable.

Jon Seigel
la source
Le seul inconvénient que nous avons rencontré avec cela auparavant était (corrigez-moi si je me trompe) le CMS ne peut pas être membre de son propre groupe ... vous avez donc besoin d'une instance supplémentaire juste pour être un CMS, n'est-ce pas? Comment contourner cela / le rendre utile? ... ou mangez-vous simplement en ayant une instance supplémentaire quelque part? Encore un point: la plupart d'entre nous travaillent à distance, pas toujours connectés au domaine, comment cela se comporterait-il lors du lancement de SSMS pour le développement local, décalage, aucun impact?
Nick Craver
@ Nick: Oui, je recommande de configurer une nouvelle instance uniquement pour le CMS. De cette façon, il est séparé de l'infrastructure SQL réelle. C'est pourquoi j'ai abordé la question des licences dans ma réponse et j'ai noté que cela prendrait un peu d'effort supplémentaire à configurer.
Jon Seigel
@ Nick: J'aurais besoin d'en savoir plus sur la configuration de l'infrastructure - quelque chose n'a pas de sens. Vous ne vous connectez pas directement de votre machine domestique aux serveurs SQL de production, n'est-ce pas (je suppose que non)? Si vous devez inclure des serveurs locaux, utilisez des serveurs enregistrés pour cette partie car la liste est stockée localement.
Jon Seigel
Oh oui, nous le faisons :) C'est ma machine de développement, donc je suis connecté à tous les serveurs SQL de l'infrastructure SE à partir d'ici (mais parfois non, je fais du développement local et pas sur le VPN ... surtout sur l'ordinateur portable). La licence n'est pas un problème majeur, mais l'instance totalement distincte (et où la conserver) est un peu inconnue ... je ne sais pas sur quel serveur nous aurions poussé cela. Ma préoccupation est lorsque SSMS ne peut pas atteindre le CMS, y a-t-il une sorte de délai lorsque vous ouvrez SSMS?
Nick Craver
@ Nick: Oui, c'est beaucoup plus facile quand tout est virtualisé. :) Nous gardons le nôtre sur une VM de gestion. Une autre option consiste à utiliser une instance de Developer Edition au lieu d'Express, ce qui vous donne SQL Agent pour vous dire si quelque chose explose. Non, il n'y a pas de délai d'attente lors de l'ouverture de SSMS. Vous obtenez uniquement une attente lorsque vous essayez de développer le nœud CMS dans l'onglet Serveurs enregistrés (à prévoir).
Jon Seigel
4

Vous ne pouvez pas contrôler cette commande à moins de pirater SqlStudio.bin ou de supprimer des entrées et de les ajouter à nouveau dans l'ordre de votre choix. Les solutions de contournement incluent:

Notez que la commande sera gâchée dès que vous vous connecterez à un serveur qui n'est pas en première position, car il s'agit vraiment d'une liste MRU (où la connexion la plus récente est répertoriée en premier).

Vous pouvez voir plus de détails dans ces questions SO:

Et vous pouvez voir le bogue que j'ai déposé qui a lancé la possibilité d'utiliser la touche de suppression:

Et d'autres bogues qui sont apparus à la suite:

Aaron Bertrand
la source
1
+1. Je ne savais pas que vous pouviez frapper del avec une souris sur SSMS. Cela vaut son poids en or.
Thomas Stringer
1

En fait, vous n'avez pas besoin de pirater quoi que ce soit, pour autant que j'ai résolu ce problème dans mon complément SSMS SSMSBoost (.com) - vous pouvez le télécharger et l'utiliser gratuitement. Vous définissez simplement une liste de vos connexions préférées dans les paramètres (voir image), puis celle-ci sera disponible sous forme de liste déroulante sur la barre d'outils, de sorte que même la commutation entre les serveurs ne prend qu'un seul clic, comme vous basculeriez entre les bases de données dans la liste de bases de données native menu déroulant.

Maintenant quelques photos:

Dialogue sur les paramètres: entrez la description de l'image ici

Si vous regardez d'autres options, vous trouverez également une "alerte DB importante" - celle-ci pourrait vous être utile, dans la mesure où vous basculez entre des bases de données nouvelles et anciennes, testez et serveur réel pendant le travail sur votre projet. Vous pouvez configurer Alert, qui sera affiché en tant que BIG Tooltip à la position spécifiée à l'écran pour autant que vous vous connectiez à la base de données "importante", vous remarquerez donc que vous travaillez sur un environnement REAL ou Test.

L'image suivante montre le contenu de la liste déroulante de la barre d'outils, où vous voyez vos connexions préférées répertoriées ci-dessus et sous toutes les bases de données du serveur actuel (même liste que dans la liste déroulante de la liste des bases de données natives)

entrez la description de l'image ici

Dans la mesure où je travaille en permanence sur des améliorations, vous êtes invités à m'écrire vos propositions, afin que nous rendions le complément encore meilleur.

Andrei Rantsevich
la source
Merci de m'avoir suivi sur Twitter - je n'ai cependant enregistré ce compte que pour verrouiller le nom. Cela dit, je suis en train de créer un blog qui aura un compte Twitter dédié, et vous pouvez le suivre si vous le souhaitez quand il sera publié (je vous enverrai un message ici avec les détails). Merci.
Jon Seigel
Comme promis, twitter.com/VoluntaryDBA
Jon Seigel