Fout bij het verbinden met een hogere versie van SQL Server met behulp van de functionaliteit van SQL Server Linked Server
Dit artikel helpt u bij het vinden van de oplossing van connectiviteitsproblemen met behulp van sql Server Linked Server-functionaliteit van een Windows Server 2022 of hoger naar een SQL Server die wordt gehost op een oudere versie van Windows.
Symptomen
Dit probleem kan optreden als u verbinding maakt vanaf een Windows Server 2022 of hoger met een SQL Server die wordt uitgevoerd in een lagere versie van Windows met behulp van de functionaliteit van de gekoppelde SQL Server-server.
Mogelijk ontvangt u een van de volgende foutberichten:
[Microsoft OLE DB-stuurprogramma voor SQL Server]: Client kan geen verbinding tot stand brengen
[Microsoft OLE DB-stuurprogramma voor SQL Server]: TCP-provider: een bestaande verbinding is gedwongen te worden onderbroken door de externe host.
Hier ontvangt de externe server de TLS-berichten wanneer de server verbinding probeert te maken met SQL Server. Er wordt een onherstelbare waarschuwing gegenereerd en verzonden naar het externe einde. Deze fout kan de verbinding beëindigen. De door het TLS-protocol gedefinieerde fatale foutcode is 40. De windows-Schannel-foutstatus is 1205.
Oorzaak
De aanwezigheid van ondersteuning voor TLS 1.2 kan een mogelijke oorzaak zijn van het probleem bij het maken van verbinding met SQL Server 2012 met de virtuele Azure-machines.
Oplossing
U kunt dit probleem oplossen door de volgende vereiste registersleutels toe te voegen en SQL Server bij te werken naar 2012 SP4, zodat SQL Server 2022 er verbinding mee kan maken.
[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
Mogelijk ontvangt u het volgende foutbericht nadat u updates hebt geïnstalleerd op de sql Server 2012-server:
De taal van het SQL Server-exemplaar MSSQLSERVER komt niet overeen met de taal die wordt verwacht door de SQL Server-update. De taal van het geïnstalleerde SQL Server-product is <een andere taal> en de verwachte SQL Server-taal is Engels (Verenigde Staten).
Volg deze stappen om deze fout op te lossen.
Notitie
Zorg ervoor dat het Taalpakket Engels (Verenigde Staten) is geïnstalleerd voordat u de opdrachten in deze procedure uitvoert.
Open PowerShell.
Voer de volgende opdracht uit om de huidige taallijst op te halen:
Get-WinUserLanguageList
Voer de volgende opdracht uit om de taal in te stellen als Engels (Verenigde Staten):
Set-WinUserLanguageList -LanguageList en-US
Start de server opnieuw.
Installeer de SQL Server 2012 SP4-update .
Start de server opnieuw op.
Als u de connectiviteit wilt controleren met behulp van UDL, raadpleegt u de UDL-configuratie (Universal Data Link).
Zie ook
Een bestaande verbinding is geforceerd gesloten door de externe host (besturingssysteemfout 10054)