web-dev-qa-db-fra.com

Un moyen facile de vérifier la connectivité à SQL Server à partir du client

À des fins de dépannage, j'aimerais pouvoir vérifier si un client peut se connecter à une instance SQL Server, indépendamment de l'application qui ne peut pas se connecter à SQL Server.

Existe-t-il un moyen simple (cela signifie, de ne pas avoir à installer de logiciel tiers) de le faire à l'aide des outils système par défaut de Windows? Peut-être en utilisant des scripts ou des applications réseau?

20
MicSim

Si le serveur utilise TCP/IP, le moyen le plus simple consiste à simplement Telnet sur le port SQL Server et voir s'il se connecte. Par défaut, c'est le port 1433, donc cela devrait fonctionner:

telnet servername 1433

Ce sera probablement approprié dans la plupart des cas.

S'il utilise un port différent ou des ports dynamiques (communs avec une instance nommée), vous devrez déterminer sur quel port il écoute actuellement. Vérifiez le gestionnaire de configuration SQL Server pour voir s'il s'agit d'un port spécifique ou de ports dynamiques. S'il utilise des ports dynamiques, tant que vous n'avez pas plusieurs instances sur le serveur, netstat -abn est probablement le moyen le plus simple de trouver ce qu'il utilise. Sinon, fouillez dans le journal des événements Windows ou le journal des erreurs SQL Server pour un message indiquant quel port est utilisé par l'instance.

Si SQL Server utilise des canaux nommés, je pense si vous pouvez accéder aux partages sur la machine, vous disposez d'une connectivité réseau adéquate. Cet article dit que vous pouvez aller plus loin et essayer de vous connecter au partage IPC $:

http://msdn.Microsoft.com/en-us/library/aa275787%28v=sql.80%29.aspx

Net Use \\servername\IPC$

C'est écrit pour SQL Server 2000, mais je n'imagine pas que cet aspect ait beaucoup changé, voire pas du tout.

15
db2

Une méthode de test simple pour la connectivité SQL consiste à créer un fichier texte vide, avec une extension de fichier "UDL". Vous pouvez le créer dans le Bloc-notes. Et il peut avoir n'importe quel nom. J'utilise "TestSQL.UDL"

Enregistrez-le sur le bureau d'un PC Windows et double-cliquez dessus.

Une boîte de dialogue "Propriétés de liaison de données" apparaîtra où vous pouvez entrer l'adresse IP du serveur SQL ainsi qu'un nom d'utilisateur et un mot de passe SQL.

Cliquez sur le bouton "Tester la connexion" pour voir si vous pouvez vous connecter.

enter image description here

26
DaveB

Pourvu que vous ayez le Microsoft.SqlServer.Smo Assemblage dans votre GAC sur la machine locale, cela peut être fait facilement avec PowerShell:

[Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.Smo') | Out-Null

$server = New-Object Microsoft.SqlServer.Management.Smo.Server("YourSqlServerName")

# do a simple operation to see if you can get data
Try {
    $server.Version | Out-Null
    Write-Host "SQL Server connection successful!!!"
}
Catch [System.Exception] {
    Write-Host "Error connecting to SQL Server..."
}
8
Thomas Stringer