Errore durante la connessione di una versione superiore a una versione inferiore di SQL Server usando SQL Server funzionalità del server collegato
Questo articolo consente di trovare la soluzione al problema di connettività usando SQL Server funzionalità del server collegato da windows server 2022 o versione successiva a un SQL Server ospitato in una versione precedente di Windows.
Sintomi
Questo problema può verificarsi se ci si connette da windows server 2022 o versioni successive a un SQL Server in esecuzione in una versione inferiore di Windows usando la funzionalità SQL Server Server collegato.
È possibile che venga visualizzato uno dei messaggi di errore seguenti:
[Microsoft OLE DB Driver per SQL Server]: Il client non è in grado di stabilire la connessione
[Microsoft OLE DB Driver per SQL Server]: Provider TCP: è stata forzata l'interruzione di una connessione esistente da parte dell'host remoto.
In questo caso, il server remoto riceve i messaggi TLS quando il server tenta di connettersi a SQL Server. Un avviso irreversibile viene generato e inviato all'estremità remota. Questo errore potrebbe terminare la connessione. Il codice di errore irreversibile definito dal protocollo TLS è 40. Lo stato dell'errore Schannel di Windows è 1205.
Causa
La presenza del supporto per TLS 1.2 può essere una possibile causa del problema di connessione al SQL Server 2012 con le macchine virtuali di Azure.
Risoluzione
Per risolvere questo problema, aggiungere le chiavi del Registro di sistema necessarie seguenti e aggiornare SQL Server a 2012 SP4 in modo che SQL Server 2022 possa connettersi ad esso.
[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
Dopo aver installato gli aggiornamenti nel server basato su SQL Server 2012, potrebbe essere visualizzato il messaggio di errore seguente:
Il linguaggio dell'istanza di SQL Server MSSQLSERVER non corrisponde al linguaggio previsto dall'aggiornamento SQL Server. La lingua del prodotto SQL Server installato è <un'altra lingua> e la lingua SQL Server prevista è l'inglese (Stati Uniti).
Per risolvere questo errore, seguire questa procedura.
Nota
Assicurarsi di avere installato il Language Pack in inglese (Stati Uniti) prima di eseguire i comandi in questa procedura.
Aprire PowerShell.
Per ottenere l'elenco di lingue corrente, eseguire il comando seguente:
Get-WinUserLanguageList
Per impostare la lingua come inglese (Stati Uniti), eseguire il comando seguente:
Set-WinUserLanguageList -LanguageList en-US
Riavviare il server.
Installare l'aggiornamento di SQL Server 2012 SP4.
Riavviare di nuovo il server.
Per controllare la connettività tramite UDL, vedere Configurazione UDL (Universal Data Link).