Errore durante la connessione a una versione precedente di SQL Server tramite la funzionalità di SQL Server collegato
Questo articolo illustra come trovare la soluzione del problema di connettività usando la funzionalità di SQL Server Linked Server da windows Server 2022 o versione successiva a SQL Server ospitata in una versione precedente di Windows.
Sintomi
Questo problema può verificarsi se ci si connette da windows Server 2022 o versione successiva a SQL Server in esecuzione in una versione precedente di Windows usando la funzionalità di SQL 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 una connessione
[Microsoft OLE DB Driver per SQL Server]: Provider TCP: una connessione esistente è stata forzata per essere interrotta dall'host remoto.
In questo caso, il server remoto riceve i messaggi TLS quando il server tenta di connettersi a SQL Server. Viene generato un avviso irreversibile e inviato alla fine remota. Questo errore potrebbe terminare la connessione. Il codice di errore irreversibile definito dal protocollo TLS è 40. Lo stato di errore di Windows Schannel è 1205.
Causa
La presenza del supporto per TLS 1.2 può essere una possibile causa del problema di connessione a 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.
[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
È possibile che venga visualizzato il messaggio di errore seguente dopo l'installazione degli aggiornamenti nel server basato su SQL Server 2012:
La lingua dell'istanza di SQL Server MSSQLSERVER non corrisponde alla lingua prevista dall'aggiornamento di SQL Server. La lingua del prodotto SQL Server installato è <un'altra lingua> e la lingua prevista di SQL Server è inglese (Stati Uniti).
Per risolvere questo errore, seguire questa procedura.
Note
Assicurarsi di avere installato il Language Pack 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 il server.
Per controllare la connettività tramite UDL, vedere Configurazione UDL (Universal Data Link).