Entrainement
Module
Découvrez comment connecter en toute sécurité un serveur Azure SQL à l’aide d’un point de terminaison privé Azure via le Portail Azure, ce qui garantit une communication privée et sécurisée avec votre serveur SQL.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S'applique à : SQL Server
Lors de la connexion à une instance SQL Server, vous pouvez rencontrer un ou plusieurs des messages d’erreur suivants. Cet article fournit quelques étapes pour vous aider à résoudre ces erreurs, qui sont classées de la plus simple à la plus complexe.
Les messages d’erreur complets varient en fonction de la bibliothèque cliente utilisée dans l’application et l’environnement serveur. Consultez les détails suivants pour voir si vous avez déjà rencontré l’un de ces messages d’erreur :
Ce message d’erreur signifie généralement que le client ne trouve pas l’instance de SQL Server. Ce problème peut se produire lorsqu’au moins une des conditions suivantes est remplie :
Notes
Pour résoudre les problèmes de connectivité dans les scénarios de haute disponibilité, consultez les articles suivants :
Le message complet est :
Une connexion a été établie avec le serveur, mais une erreur s’est ensuite produite pendant le processus de connexion. (fournisseur : Fournisseur de mémoire partagée, erreur : 0 - Il n’y a pas de processus à l’autre extrémité du canal.) (Microsoft SQL Server, erreur : 233)
Ce message signifie que SQL Server n’écoute pas sur le protocole Mémoire partagée ou Canaux nommés.
Nous vous recommandons de collecter les informations répertoriées dans cette section à l’aide de l’une des options suivantes avant de suivre les étapes réelles pour résoudre l’erreur.
Si vous pouvez vous connecter localement à l’ordinateur SQL Server et disposer d’un accès administrateur, utilisez SQLCHECK. Cet outil fournit la plupart des informations requises pour résoudre les problèmes d’un fichier. Consultez la page d’accueil de l’outil pour en savoir plus sur son utilisation et les informations qu’il collecte. Vous pouvez également consulter les prérequis recommandés et la liste de vérification.
Sur le serveur qui héberge l’instance de SQL Server, utilisez le Gestionnaire de configuration SQL Server pour vérifier le nom de l’instance :
Notes
Le Gestionnaire de configuration est automatiquement installé sur l’ordinateur en même temps que l’installation de SQL Server. Les instructions de démarrage du Gestionnaire de configuration diffèrent légèrement selon les versions de SQL Server et de Windows. Pour plus d’informations spécifiques à la version, consultez la section Gestionnaire de configuration SQL Server.
Connectez-vous à l’ordinateur qui héberge l’instance de SQL Server.
Démarrez le Gestionnaire de configuration SQL Server.
Dans le volet gauche, sélectionnez Services SQL Server.
Dans le volet droit, vérifiez le nom de l’instance du moteur de la base de données.
Vous pouvez utiliser les étapes suivantes pour obtenir l’adresse IP de l’ordinateur qui héberge l’instance de SQL Server.
Dans le menu Démarrer, sélectionnez Exécuter. Dans la fenêtre Exécuter, tapez cmd, puis cliquez sur OK.
Dans la fenêtre Invite de commandes, tapez ipconfig/all, puis appuyez sur Entrée : Notez les adresses IPv4 et IPv6.
Notes
SQL Server peut se connecter à l’aide du protocole IP version 4 ou du protocole IP version 6. Votre réseau peut en autoriser un ou les deux.
Dans la plupart des cas, vous pouvez vous connecter au moteur de la base de données sur un autre ordinateur à l’aide du protocole TCP. Pour trouver le port TCP de l’instance, procédez comme suit :
Utilisez SQL Server Management Studio sur l’ordinateur exécutant SQL Server et connectez-vous à l’instance de SQL Server. Dans Explorateur d’objets, développez Gestion, développez Journaux SQL Server, puis double-cliquez sur le journal actuel.
Dans la boîte de dialogue Visionneuse du fichier journal, sélectionnez Filtre dans la barre d’outils. Dans la zone Message contenant du texte, tapez Le serveur est en écoute, sélectionnez Appliquer filtre, puis cliquez sur OK.
Un message tel que « Le serveur écoute sur [ « any » <ipv4> 1433] » doit être répertorié.
Ce message indique que l’instance de SQL Server est en écoute sur toutes les adresses IP de cet ordinateur (pour l’adresse IP version 4) et sur le port TCP 1433. (Le port TCP 1433 est généralement le port utilisé par l’Moteur de base de données ou l’instance par défaut de SQL Server. Une seule instance de SQL Server peut utiliser ce port. Si plusieurs instances de SQL Server sont installées, certaines instances doivent utiliser d’autres numéros de port.) Notez le numéro de port utilisé par l’instance SQL Server à laquelle vous essayez de vous connecter.
Notes
Pour vérifier que l’instance est en cours d’exécution, sélectionnez SQL Server Services dans le Gestionnaire de configuration SQL Server et vérifiez le symbole en regard de l’instance de SQL Server.
Si l’instance est arrêtée, cliquez avec le bouton droit de la souris sur l’instance et sélectionnez Démarrer. L’instance de serveur démarre ensuite et l’indicateur laisse apparaître une flèche verte.
Vous pouvez utiliser la commande suivante dans PowerShell pour vérifier l’état des services SQL Server sur le système :
Get-Service | Where {$_.status -eq 'running' -and $_.DisplayName -like "sql server*"}
Vous pouvez utiliser la commande suivante pour parcourir le fichier du journal des erreurs à la recherche de la chaîne spécifique « SQL Server est désormais prêt pour les connexions clients. Ceci est un message d’information ; aucune action n’est requise de la part de l’utilisateur. » :
Get-ChildItem -Path "c:\program files\microsoft sql server\mssql*" -Recurse -Include Errorlog | Select-String "SQL Server is now ready for client connections."
Notes
Cette étape est requise uniquement pour résoudre les problèmes de connectivité associés à des instances nommées.
Pour se connecter à une instance nommée, le service SQL Server Browser doit être en cours d’exécution. Dans le Gestionnaire de configuration SQL Server, recherchez le service SQL Server Browser et vérifiez qu’il est en cours d’exécution. S’il n’est pas en cours d’exécution, démarrez le service. Le service SQL Server Browser n’est pas requis pour les instances par défaut.
Pour plus d’informations sur l’utilisation du service SQL Server Browser dans votre environnement, consultez la section Service SQL Server Browser.
Pour plus d’informations sur l’arrêt et le démarrage des services SQL, consultez la section Démarrer, arrêter, suspendre, reprendre, redémarrer les services SQL Server.
Notes
Si le service SQL Server Browser n’est pas en cours d’exécution dans votre environnement, consultez la section Connexion à une instance nommée de SQL Server sans le service SQL Server Browser.
Vous rencontrez souvent des erreurs lorsqu’un nom de serveur incorrect est spécifié dans la chaîne de connexion. Assurez-vous que le nom du serveur correspond à celui que vous avez récupéré lors des étapes précédentes.
Notes
Si vous utilisez l’outil SQLCHECK, passez en revue les valeurs NetBios Name/FQDN dans la section Informations sur l’ordinateur du fichier de sortie.
Les alias sont souvent utilisés dans les environnements clients lorsque vous vous connectez à SQL Server avec un autre nom ou en cas de problèmes de résolution de noms dans le réseau. Ils sont créés à l’aide du Gestionnaire de configuration SQL Server ou de l’utilitaire réseau du client. Un alias incorrect peut entraîner la connexion de vos applications au mauvais serveur, ce qui entraînerait un échec. Utilisez les méthodes suivantes pour vérifier les alias incorrects. Vous pouvez également utiliser un outil (tel que SQLCHECK) sur l’ordinateur du client pour rechercher des alias et divers autres paramètres liés à la connectivité d’un ordinateur client.
Notes
Les options suivantes s’appliquent uniquement aux applications utilisant SQL Server Native Client pour se connecter à SQL Server.
Exemple de sortie :
Alias SQL :
Alias Name Protocol Server Name Port 32-bit
---------- -------- ------------ ---- ------
prodsql TCP prod_sqlserver 1430
La sortie indique qu’il prodsql
s’agit d’un alias pour un serveur SQL Server appelé prod_sqlserver
qui s’exécute sur le port 1430.
Dans le Gestionnaire de configuration SQL Server, développez Configuration de SQL Server Native Client, puis sélectionnez Alias.
Vérifiez si des alias sont définis pour le serveur auquel vous essayez de vous connecter.
Si un ou plusieurs alias existent, procédez comme suit :
Vous pouvez vérifier la configuration du pare-feu en fonction de l’instance par défaut ou de l’instance nommée.
Notes
Ces concepts sont applicables même si vous utilisez des pare-feu tiers dans votre réseau. Toutefois, vous devrez peut-être travailler avec votre administrateur réseau ou consulter la documentation produit du pare-feu pour en savoir plus sur la configuration du pare-feu afin d’autoriser les ports nécessaires à la communication avec SQL Server.
Une instance par défaut s’exécute généralement sur le port 1433. Certaines installations utilisent également un port non standard (autre que 1433) pour exécuter des instances SQL. Le pare-feu peut bloquer l’un ou l’autre des ports. Pour vérifier lʼétat du service, procédez comme suit :
<servername>,<portnumber>
et de voir si cela fonctionne. Par exemple, le nom de votre instance de SQL est MySQLDefaultinstance et elle s’exécute sur le port 2000. Spécifiez le nom de serveur sous la forme MySQLServer, 2000, et voyez si cela fonctionne.
Si votre instance de SQL est une instance nommée, elle peut être configurée pour utiliser des ports dynamiques ou un port statique. Dans un cas comme dans l’autre, les bibliothèques réseau sous-jacentes interrogent le service SQL Server Browser s’exécutant sur votre ordinateur SQL Server via le port UDP 1434 pour énumérer le numéro de port de l’instance nommée. Si un pare-feu situé entre le client et le serveur bloque ce port UDP, la bibliothèque cliente ne peut pas déterminer le port (exigence de connexion) et la connexion échoue. Pour vérifier la connexion, utilisez l’une des méthodes suivantes :
Méthode 1 : Vérifiez la connexion en spécifiant le numéro de port dans votre chaîne de connexion.
<servername\instancename>,<portnumber>
et vérifiez si cela fonctionne. Par exemple, si le nom de votre instance SQL est MySQL\Namedinstance et qu’elle s’exécute sur le port 3000, spécifiez le nom du serveur sous la forme MySQL\Namedinstance,3000.
Méthode 2 : Vérifiez la connexion à l’aide de l’outil PortQryUI.
Utilisez l’outil PortQryUI avec votre instance nommée et observez la sortie obtenue. Vous pouvez voir un message indiquant que le port UDP 1434 est filtré. Ce message indique que le port est bloqué sur le réseau. Pour obtenir des instructions sur l’utilisation de cet outil, consultez l’article Utilisation de l’outil PortQryUI avec SQL Server.
Déterminez si l’instance SQL Server écoute sur des ports dynamiques ou statiques. Utilisez ensuite la méthode adaptée à votre scénario ci-dessous. Si vous n’êtes pas sûr, consultez l’article Comment vérifier si SQL Server écoute sur un port dynamique ou un port statique.
Dans certaines installations de SQL Server, les connexions au moteur de base de données à partir d’un autre ordinateur ne sont pas activées, sauf si un administrateur les active manuellement. Vous pouvez utiliser l’une des options suivantes pour vérifier et activer les protocoles nécessaires pour autoriser les connexions à distance au moteur de base de données SQL Server.
Recherchez dans le fichier de sortie SQLCHECK la section « Détails de l’instance SQL Server » et recherchez la section informations de votre instance SQL Server.
Dans cette section, recherchez les valeurs répertoriées dans le tableau suivant pour déterminer si les protocoles SQL Server sont activés :
Nom de la valeur | Implication | Plus d’informations |
---|---|---|
Mémoire partagée activée | La valeur peut être true ou false. Cela affecte uniquement les connexions locales. | Création d'une chaîne de connexion valide à l'aide du protocole de mémoire partagée |
Canaux nommés activés | Si la valeur est false, les connexions locales et à distance qui utilisent des canaux nommés échouent. | Choix d’un protocole réseau |
TCP activé | Si la valeur est false, les connexions locales et à distance qui utilisent TCP/IP échouent. Remarque La majorité des installations SQL Server utilisent TCP/IP comme protocole de communication entre le serveur et le client. |
Choix d’un protocole réseau |
Activez les protocoles requis à l’aide du Gestionnaire de configuration SQL Server ou de SQL Server PowerShell. Pour plus d’informations, consultez Activer ou désactiver un protocole réseau de serveur.
Notes
Après l’activation d’un protocole, le moteur de base de données doit être arrêté et redémarré pour que la modification prenne effet.
Pour activer les connexions à partir d’un autre ordinateur à l’aide du Gestionnaire de configuration SQL Server, procédez comme suit :
Pour se connecter à SQL Server à l’aide du protocole TCP/IP, Windows doit établir la connexion. Les étapes suivantes vous permettent de tester la connectivité TCP à l’aide de l’outil Ping.
ping
ainsi que l’adresse IP de l’ordinateur qui exécute SQL Server. Par exemple : ping 192.168.1.101
ping fe80::d51d:5ab5:6f09:8f48%11
ping
renvoie Reply from <IP address>
ainsi que des informations supplémentaires. Si ping
renvoie Destination host unreachable
ou Request timed out
, cela signifie que le protocole TCP/IP n’est pas correctement configuré. Les erreurs à ce stade indiquent un problème avec l’ordinateur client, l’ordinateur SQL Server ou un élément du réseau, tel qu’un routeur. Pour résoudre les problèmes liés au réseau, consultez l’article Résolution avancée des problèmes liés au protocole TCP/IP.ping
réussit en utilisant l’adresse IP, vérifiez si le nom de l’ordinateur peut être résolu en adresse TCP/IP. Sur l’ordinateur client, dans la fenêtre Invite de commandes, saisissez ping ainsi que le nom de l’ordinateur qui exécute SQL Server. Par exemple, ping newofficepc
.Destination host unreachable
ou Request timed out
, il se peut que les informations de résolution de nom soient anciennes (périmées) et mises en cache sur l’ordinateur client. Saisissez ipconfig /flushdns
pour vider le cache DNS (Dynamic Name Resolution). Effectuez ensuite un nouveau test Ping sur le nom de l’ordinateur. Lorsque le cache DNS est vide, l’ordinateur client vérifie les dernières informations concernant l’adresse IP de l’ordinateur serveur.ping
renvoie Reply from <IP address>
ainsi que des informations supplémentaires. Si vous pouvez effectuer un test Ping sur l’ordinateur serveur par l’adresse IP, mais qu’un test Ping par le nom de l’ordinateur échoue et renvoie une erreur telle que Destination host unreachable
ou Request timed out
, alors la résolution de nom n’est pas correctement configurée. Pour plus d’informations, consultez l’article Résolution des problèmes TCP/IP de base. Une résolution de noms réussie n’est pas nécessaire pour se connecter à SQL Server. Toutefois, si le nom de l’ordinateur ne peut pas être résolu en adresse IP, il faut établir des connexions pour spécifier l’adresse IP. La résolution de noms peut être corrigée ultérieurement.Notes
Vous pouvez également utiliser l’applet de commande Test-NetConnection ou Test-Connection pour tester la connectivité TCP en fonction de la version de PowerShell installée sur l’ordinateur. Pour plus d’informations sur l’applet de commande PowerShell, consultez la section Présentation de l’applet de commande.
Avant de résoudre un problème de connexion à partir d’un autre ordinateur, testez votre capacité à vous connecter à partir d’une application client installée localement sur l’ordinateur qui exécute SQL Server. La connexion locale permet d’éviter les problèmes liés aux réseaux et aux pare-feu.
Pour réaliser cette procédure, vous avez besoin de SQL Server Management Studio. Si Management Studio n’est pas installé, consultez l’article Télécharger SQL Server Management Studio (SSMS).
Si vous ne pouvez pas installer Management Studio, vous pouvez tester la connexion à l’aide de l’utilitaire sqlcmd.exe. sqlcmd.exe est installé avec le moteur de base de données. Pour plus d’informations sur sqlcmd.exe, consultez l’utilitaire sqlcmd.
Connectez-vous à l’ordinateur sur lequel SQL Server est installé à l’aide d’une connexion qui peut accéder à SQL Server. Pendant l’installation, SQL Server nécessite au moins une connexion dotée de privilèges administrateur SQL Server. Si vous ne connaissez pas d’administrateur, consultez l’article Se connecter à SQL Server lorsque les administrateurs système sont verrouillés.
Sur la page Démarrer, saisissez SQL Server Management Studio. Pour les versions antérieures de Windows, dans le menu Démarrer, sélectionnez Tous les programmes, puis Microsoft SQL Server et SQL Server Management Studio.
Dans le menu déroulant Se connecter, sélectionnez Moteur de base de données. Dans la zone Authentification, sélectionnez Authentification Windows. Dans la boîte Nom du serveur, tapez l’un des types de connexion suivants :
Connexion à | Type | Exemple |
---|---|---|
Instance par défaut | <computer name> |
ACCNT27 |
Instance nommée | <computer name\instance name> |
ACCNT27\PAYROLL |
Notes
Lors de la connexion à SQL Server à partir d’une application cliente sur le même ordinateur, le protocole de mémoire partagée est utilisé. La mémoire partagée étant un type de canal nommé local, vous rencontrez parfois des erreurs liées aux canaux.
Si vous recevez une erreur à ce stade, vous devez la résoudre avant de continuer. Votre connexion peut ne pas être autorisée à se connecter. Votre base de données par défaut peut être manquante.
Notes
Vous ne pouvez pas résoudre le problème sans un nombre suffisant d’informations. En effet, certains messages d’erreur sont transmis intentionnellement au client. Il s’agit d’une fonctionnalité de sécurité destinée à éviter de fournir à un attaquant des informations sur SQL Server. Pour afficher les détails de l’erreur, consultez le journal des erreurs SQL Server.
Si vous recevez l’erreur 18456 « Échec de la connexion pour l’utilisateur », l’article de la documentation en ligne MSSQLSERVER_18456 contient des informations supplémentaires sur les codes d’erreur. La page Troubleshooting Error 18456 (lien externe), disponible sur le blog d’Aaron Bertrand, contient également une liste complète de codes d’erreur. Vous pouvez afficher le journal des erreurs à l’aide de SSMS (si vous pouvez vous connecter) dans la section Gestion de l’Explorateur d’objets. Vous pouvez également afficher le journal des erreurs avec le Bloc-notes Windows. L’emplacement par défaut varie en fonction de votre version et peut être modifié pendant l’installation. L’emplacement par défaut pour SQL Server 2019 (15.x) est C :\Program Files\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Log\ERRORLOG.
Si vous pouvez vous connecter à l’aide de la mémoire partagée, testez la connexion à l’aide du protocole TCP. Vous pouvez forcer une connexion TCP en spécifiant tcp:
avant le nom. Voici quelques exemples :
Connexion à : | Tapez : | Exemple : |
---|---|---|
Instance par défaut | tcp:<computer name> |
tcp:ACCNT27 |
Instance nommée | tcp:<computer name/instance name> |
tcp:ACCNT27\PAYROLL |
Si vous pouvez vous connecter à l’aide de la mémoire partagée, mais pas du protocole TCP, vous devez résoudre le problème lié au protocole TCP. Le problème le plus probable est que le protocole TCP n’est pas activé. Pour activer le protocole TCP, consultez la section Étape 6 : vérifier les protocoles activés sur SQL Server.
Si votre objectif est de vous connecter à l’aide d’un compte autre qu’un compte d’administrateur, vous pouvez commencer par vous connecter en tant qu’administrateur. Essayez ensuite de vous reconnecter avec les identifiants d’authentification Windows ou avec les identifiants de connexion SQL Server utilisés par l’application client.
Une fois qu’il est possible de vous connecter au même ordinateur à l’aide du protocole TCP, il est temps d’essayer de vous connecter à partir de l’ordinateur client. Vous pouvez utiliser n’importe quelle application client, mais pour éviter toute complexité, installez les outils de gestion SQL Server sur l’ordinateur client. Après l’installation, essayez d’utiliser SQL Server Management Studio.
192.168.1.101,1433
. Si cette connexion échoue, vous avez probablement l’un des problèmes suivants : ping
de l’adresse IP ne fonctionne pas. Cela indique un problème de configuration général du protocole TCP. Retournez à la section Étape 7 : tester la connectivité du protocole TCP/IP.192.168.1.101\<instance name>
.) Si cela ne fonctionne pas, cela signifie que le numéro de port n’a pas été renvoyé au client. Le problème est lié au service SQL Server Browser, qui fournit au client le numéro de port d’une instance nommée. Voici les solutions : tcp:
devant le nom de l’ordinateur pour forcer une connexion à l’aide du protocole TCP/IP. Par exemple, pour l’instance par défaut sur un ordinateur nommé ACCNT27, utilisez tcp:ACCNT27
. Pour une instance nommée appelée PAYROLL, sur cet ordinateur, utilisez tcp:ACCNT27\PAYROLL
. Si vous pouvez vous connecter à l’aide de l’adresse IP, mais pas en utilisant le nom de l’ordinateur, alors votre problème se situe au niveau de la résolution de nom. Retournez à la section Étape 7 : tester la connectivité du protocole TCP/IP.Si vous utilisez des canaux nommés pour vous connecter, vérifiez si un utilisateur dispose des autorisations nécessaires pour se connecter à Windows. Pour plus d’informations, consultez Résolution des problèmes liés aux connexions de canaux nommés.
Entrainement
Module
Découvrez comment connecter en toute sécurité un serveur Azure SQL à l’aide d’un point de terminaison privé Azure via le Portail Azure, ce qui garantit une communication privée et sécurisée avec votre serveur SQL.
Documentation
Gestionnaire de configuration SQL Server - SQL Server
Utilisation du client Gestionnaire de configuration SQL Server
Résoudre les problèmes de connectivité dans SQL Server - SQL Server
Cet article fournit une vue d’ensemble des problèmes de connectivité courants dans SQL Server et décrit les outils permettant de résoudre ces problèmes.
Message d’erreur lors de la connexion à SQL Server - SQL Server
Cet article fournit des solutions au problème qui se produit quand vous vous connectez à SQL Server à l’aide de SSL.