Les utilisateurs peuvent ne pas être en mesure de se connecter à distance à SQL Server à l’aide du protocole TCP/IP
Cet article vous aide à résoudre le problème où vous ne pouvez pas vous connecter à distance à SQL Server à l’aide du protocole TCP/IP.
Version du produit d’origine : SQL Server
Numéro de base de connaissances d’origine : 2018930
Symptômes
Lorsque vous utilisez Microsoft SQL Server, vous pouvez voir un ou plusieurs des symptômes suivants :
Seuls les utilisateurs disposant de l’autorisation CONTROL SERVER (par exemple, les membres du rôle serveur fixe syadmin ) peuvent se connecter via TCP/IP. Les utilisateurs qui n’ont pas cette autorisation ne peuvent pas se connecter à distance via le protocole TCP/IP à l’aide de l’authentification Windows ou SQL Server.
Note
Vous remarquerez que les connexions utilisateur avec élévation de privilèges s’affichent uniquement dans sys.dm_exec_sessions (Transact-SQL) Vue de gestion dynamique (DMV), mais pas en mode sys.dm_exec_connections (Transact-SQL).
Les connexions locales et distantes à l’aide du protocole Canaux nommés ainsi que les connexions locales à l’aide du protocole de mémoire partagée continuent de fonctionner correctement.
En outre, les messages suivants sont consignés dans le fichier de journal des erreurs SQL Server :
Au démarrage de SQL Server :
Erreur : 26023, Gravité : 16, État : 1.
Le fournisseur TCP du serveur n’a pas pu écouter ['any’ipv6<> 1963]. Le port TCP est déjà utilisé.
Erreur : 9692, Gravité : 16, État : 1.
Le transport de protocole Service Broker ne peut pas écouter sur le port 1963, car il est utilisé par un autre processus.Pour les connexions ayant échoué :
SQL Server 2008 et versions ultérieures :
Erreur : 18456, Gravité : 14, État : 11.
Échec de la connexion pour l’utilisateur « MyDomain\TestAcc ». Raison : échec de la validation de l'accès au serveur par jeton en raison d'une erreur d'infrastructure. Recherchez les erreurs antérieures.
Cause
L’erreur se produit lorsque vous configurez un point de terminaison TCP pour Service Broker à l’aide du même port que celui utilisé par l’instance SQL Server. Vous pouvez obtenir la liste des points de terminaison en exécutant la requête suivante :
SELECT * FROM sys.tcp_endpoints
Note
Comme expliqué dans la documentation en ligne sur sys.tcp_endpoints (Transact-SQL), cette vue ne contient pas d’informations sur les ports et les protocoles actuellement configurés pour l’instance SQL Server. Pour trouver ces informations, consultez Gestionnaire de configuration SQL Server.
Résolution
Méthode 1 : Supprimez le point de terminaison qui provoque le problème à l’aide de la commande DROP ENDPOINT (Transact-SQL).
Par exemple, pour supprimer un point de terminaison nommé
TestEP
, vous pouvez utiliser la commande suivante :DROP ENDPOINT TestEP
Méthode 2 : Modifiez le point de terminaison pour utiliser un autre port à l’aide de la commande ALTER ENDPOINT (Transact-SQL).
Par exemple, pour modifier un point de terminaison nommé
TestEP
pour utiliser un autre port, vous pouvez utiliser la commande suivante :ALTER ENDPOINT TestEP as tcp (listener_port=1980)
Plus d’informations
Des problèmes similaires peuvent également se produire avec d’autres points de terminaison TCP tels que ceux créés pour la mise en miroir de bases de données, et les messages d’erreur au démarrage de SQL Server changent en conséquence.