Partager via


Erreur lors de la connexion d’une version supérieure à une version inférieure de SQL Server à l’aide de SQL Server fonctionnalité de serveur lié

Cet article vous aide à trouver la solution au problème de connectivité à l’aide de SQL Server fonctionnalité de serveur lié d’un serveur Windows Server 2022 ou version ultérieure vers un 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’une version Windows Server 2022 ou ultérieure à un SQL Server s’exécutant sur une version inférieure de Windows à l’aide de la fonctionnalité SQL Server Serveur lié.

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 à l’extrémité distante. Cette erreur peut mettre fin à la connexion. Le code d’erreur irrécupérable défini par le protocole TLS est 40. Le status 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 lors de la connexion à l’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 s’y connecter.

[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

Le message d’erreur suivant peut s’afficher après avoir installé les mises à jour sur le serveur SQL Server 2012 :

La langue du SQL Server instance MSSQLSERVER ne correspond pas à la langue attendue par la mise à jour SQL Server. La langue du produit SQL Server installé est <une autre langue> et la langue SQL Server attendue est l’anglais (États-Unis).

Pour résoudre cette erreur, procédez comme suit.

Remarque

Vérifiez que le module linguistique anglais (États-Unis) est installé avant d’exécuter les commandes de cette procédure.

  1. Ouvrez PowerShell.

  2. Pour obtenir la liste des langues actuelles, exécutez la commande suivante :

    Get-WinUserLanguageList

  3. Pour définir la langue en anglais (États-Unis), exécutez la commande suivante :

    Set-WinUserLanguageList -LanguageList en-US

  4. Redémarrez le serveur.

  5. Installez la mise à jour SQL Server 2012 SP4.

  6. Redémarrez à nouveau le serveur.

Pour case activée la connectivité à l’aide de l’UDL, consultez Configuration UDL (Universal Data Link).

Voir aussi

Une connexion existante a été fermée de force par l’hôte distant (erreur de système d’exploitation 10054)