Compartilhar via


Erro ao conectar a versão superior à versão inferior do SQL Server usando a funcionalidade do SQL Server Linked Server

Este artigo ajuda você a encontrar a solução do problema de conectividade usando a funcionalidade do SQL Server Linked Server de um Windows Server 2022 ou mais recente para um SQL Server hospedado em uma versão mais antiga do Windows.

Sintomas

Esse problema pode ocorrer se você estiver se conectando de um Windows Server 2022 ou posterior a um SQL Server em execução em uma versão inferior do Windows usando a funcionalidade SQL Server Linked Server.

Você pode receber uma das seguintes mensagens de erro:

[Microsoft OLE DB Driver for SQL Server]: o cliente não consegue estabelecer conexão

[Microsoft OLE DB Driver for SQL Server]: Provedor TCP: uma conexão existente foi forçada a ser interrompida pelo host remoto.

Aqui, o servidor remoto recebe as mensagens TLS quando tenta se conectar ao SQL Server. Um alerta irrecuperável é gerado e enviado para a extremidade remota. Esse erro pode encerrar a conexão. O código de erro fatal definido pelo protocolo TLS é 40. O status de erro do Windows Schannel é 1205.

Motivo

A presença de suporte para TLS 1.2 pode ser uma possível causa do problema na conexão com o SQL Server 2012 com as máquinas virtuais do Azure.

Resolução

Para resolver esse problema, adicione as seguintes chaves do Registro necessárias e atualize o SQL Server para 2012 SP4 para que o SQL Server 2022 possa se conectar a ele.

[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

Você pode receber a seguinte mensagem de erro depois de instalar atualizações no servidor baseado no SQL Server 2012:

O idioma da instância do SQL Server MSSQLSERVER não corresponde ao idioma esperado pela atualização do SQL Server. O idioma do produto SQL Server instalado é <outro idioma> e o idioma esperado do SQL Server é inglês (Estados Unidos).

Para resolver esse erro, siga estas etapas.

Observação

Verifique se você tem o pacote de idiomas em inglês (Estados Unidos) instalado antes de executar os comandos neste procedimento.

  1. Abra o PowerShell.

  2. Para obter a lista de idiomas atual, execute o seguinte comando:

    Get-WinUserLanguageList

  3. Para definir o idioma como inglês (Estados Unidos), execute o seguinte comando:

    Set-WinUserLanguageList -LanguageList en-US

  4. Reinicie o servidor.

  5. Instale a atualização do SQL Server 2012 SP4 .

  6. Reinicie o servidor novamente.

Para verificar a conectividade usando UDL, consulte Configuração do Universal Data Link (UDL).

Confira também

Uma conexão existente foi fechada à força pelo host remoto (erro do sistema operacional 10054)