2010-04-30 3 views
3

J'ai plusieurs instances SQL Server 2005 dans une boîte. Depuis SSMS sur mon bureau, je peux me connecter aux instances nommées de cette boîte sans problème. Après quelques modifications récentes de la configuration réseau, lorsque je souhaite me connecter à l'instance par défaut à partir de SSMS sur mon bureau, je dois spécifier le numéro de port. Avant que le réseau change, j'ai pas devez spécifier le numéro de port de l'instance par défaut.ssms ne peut pas se connecter à l'instance de serveur SQL par défaut sans spécifier le numéro de port

Si je suis à distance à une autre boîte (y compris celui en question), et utiliser que SSMS de la boîte pour se connecter à cette instance par défaut, succès. Depuis mon bureau, et seulement depuis mon bureau, je dois spécifier le numéro de port.

Est-ce une configuration SQL Server que j'ai manquée? Est-il possible que quelque chose dans la configuration de mon PC soit gênant? Où pourrais-je regarder, ou que pourrais-je transmettre aux gens du réseau pour les aider à résoudre ce problème? Toute aide est appréciée.

+0

Quel numéro de port tapez-vous quand cela fonctionne? –

+0

1433, valeur par défaut – Oliver

+0

TITRE: Connexion au serveur ------------------------------ Impossible de se connecter à my_server_name. ------------------------------ INFORMATIONS SUPPLÉMENTAIRES: Une erreur liée au réseau ou à une instance s'est produite lors de l'établissement une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (fournisseur: fournisseur TCP, erreur: 0 - Aucune connexion n'a pu être établie car la machine cible l'a refusée.) (Microsoft SQL Server, Erreur: 10061) – Oliver

Répondre

4

Le port 1434 est bloqué quelque part le long de la ligne, ce qui permet de résoudre le nom de l'instance en numéro de port.

Si vous spécifions un numéro de port, le nom d'instance est ignoré ...

SQL Server Browser service listens on port 1434

Upon startup, SQL Server Browser starts and claims UDP port 1434. SQL Server Browser reads the registry, identifies all instances of SQL Server on the computer, and notes the ports and named pipes that they use. When a server has two or more network cards, SQL Server Browser returns the first enabled port it encounters for SQL Server. SQL Server Browser support [sic] ipv6 and ipv4.

When SQL Server clients request SQL Server resources, the client network library sends a UDP message to the server using port 1434. SQL Server Browser responds with the TCP/IP port or named pipe of the requested instance. The network library on the client application then completes the connection by sending a request to the server using the port or named pipe of the desired instance.

Modifier, après commentaire:

Quel est le paramètre par défaut du client local? Cela devrait être 1433 bien sûr, mais si ce n'est pas le cas, le nom du serveur ne fonctionnera pas.

Lancez "Gestionnaire de configuration SQL Server" .. "Configuration du client natif SQL" .. "protocoles client" .. double-cliquez sur TCP/IP, le port par défaut utilisé par votre PC local est là.

+0

@gbn: l'instance par défaut est affectée à 1433 lors de l'installation (et c'est comme ça qu'elle reste dans ce cas); de plus, même si SQLBrowser ne fonctionne pas correctement, l'instance par défaut devrait toujours être accessible sans avoir à spécifier le numéro de port; votre réponse adresse les instances nommées, avec lesquelles je n'ai aucun problème – Oliver

+0

@Oliver: désolé, je l'ai lu à l'envers. Quel est le paramètre par défaut de votre client? Cela devrait être 1433 bien sûr, mais si ce n'est pas le cas, le nom du serveur ne fonctionnera pas. Manipulation de configuration de SQL Server .. Configuration de client natif de SQL .. protocoles de client ... double clic tcp/ip – gbn

0

J'ai vu cela se produire sur les boîtes Windows 2008/7/Vista sur lesquelles le pare-feu est activé. L'utilisation de l'instance nommée ne fonctionne pas mais spécifie le port. Le correctif pour moi était de configurer des règles de pare-feu pour SSMS et DTExec afin de permettre des connexions normales. Le script pour le faire est ci-dessous, mais vous devrez peut-être changer le correctif pour SSMS et DTExec.

rem SSMS 
netsh advfirewall firewall add rule name=SQL-SSMS dir=in action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" enable=yes profile=domain 
netsh advfirewall firewall add rule name=SQL-SSMS dir=out action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe" enable=yes profile=domain 

rem DTExec 
netsh advfirewall firewall add rule name=SQL-DTExec dir=in action=allow program="D:\Apps\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain 
netsh advfirewall firewall add rule name=SQL-DTExec dir=out action=allow program="D:\Apps\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain 

rem DTExec32 
netsh advfirewall firewall add rule name=SQL-DTExec32 dir=in action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain 
netsh advfirewall firewall add rule name=SQL-DTExec32 dir=out action=allow program="D:\Apps\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe" enable=yes profile=domain 
Questions connexes