Erreur lors de la connexion supérieure à la version inférieure de SQL Server à l’aide de la fonctionnalité serveur lié SQL Server
Cet article vous aide à trouver la solution du problème de connectivité à l’aide de la fonctionnalité SQL Server Linked Server à partir d’un serveur Windows Server 2022 ou ultérieur vers un serveur SQL Server hébergé sur une version antérieure de Windows.
Symptômes
Ce problème peut se produire si vous vous connectez à partir d’un serveur Windows Server 2022 ou version ultérieure à un serveur SQL Server exécuté sur une version inférieure de Windows à l’aide de la fonctionnalité SQL Server Linked Server.
Vous pouvez recevoir l’un des messages d’erreur suivants :
[Microsoft OLE DB Driver pour SQL Server] : le client ne peut pas établir la connexion
[Microsoft OLE DB Driver pour SQL Server] : Fournisseur TCP : une connexion existante a été forcée d’être interrompue par l’hôte distant.
Ici, le serveur distant reçoit les messages TLS lorsque le serveur tente de se connecter à SQL Server. Une alerte irrécupérable est générée et envoyée à la fin distante. Cette erreur peut arrêter la connexion. Le code d’erreur irrécupérable défini par le protocole TLS est 40. L’état d’erreur Windows Schannel est 1205.
Cause
La présence de la prise en charge de TLS 1.2 peut être une cause possible du problème de connexion à SQL Server 2012 avec les machines virtuelles Azure.
Résolution
Pour résoudre ce problème, ajoutez les clés de Registre requises suivantes et mettez à jour SQL Server vers 2012 SP4 afin que SQL Server 2022 puisse se connecter à celui-ci.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001
Vous pouvez recevoir le message d’erreur suivant après avoir installé les mises à jour sur le serveur SQL Server 2012 :
La langue de l’instance SQL Server MSSQLSERVER ne correspond pas à la langue attendue par la mise à jour de SQL Server. La langue du produit SQL Server installé est <autre langue> et la langue SQL Server attendue est l’anglais (États-Unis).
Pour résoudre cette erreur, procédez comme suit.
Note
Vérifiez que le module linguistique anglais (États-Unis) est installé avant d’exécuter les commandes de cette procédure.
Ouvrez PowerShell.
Pour obtenir la liste des langues actuelles, exécutez la commande suivante :
Get-WinUserLanguageList
Pour définir la langue en anglais (États-Unis), exécutez la commande suivante :
Set-WinUserLanguageList -LanguageList en-US
Redémarrez le serveur.
Installez la mise à jour SQL Server 2012 SP4 .
Redémarrez à nouveau le serveur.
Pour vérifier la connectivité à l’aide de l’UDL, consultez la configuration de la liaison de données universelle (UDL).