Condividi tramite


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.

  1. Aprire PowerShell.

  2. Per ottenere l'elenco di lingue corrente, eseguire il comando seguente:

    Get-WinUserLanguageList

  3. Per impostare la lingua come inglese (Stati Uniti), eseguire il comando seguente:

    Set-WinUserLanguageList -LanguageList en-US

  4. Riavviare il server.

  5. Installare l'aggiornamento di SQL Server 2012 SP4 .

  6. Riavviare il server.

Per controllare la connettività tramite UDL, vedere Configurazione UDL (Universal Data Link).

Vedi anche

Una connessione esistente è stata chiusa forzatamente dall'host remoto (errore del sistema operativo 10054)