Partilhar via


Erro ao conectar-se mais alto à versão inferior do SQL Server usando SQL Server funcionalidade do Linked Server

Este artigo ajuda você a encontrar a solução de problema de conectividade usando SQL Server funcionalidade do 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:

[Driver do Microsoft OLE DB para SQL Server]: Cliente não pode estabelecer conexão

[Driver do Microsoft OLE DB para 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 o servidor tenta se conectar a 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 erro do Windows Schannel status é 1205.

Motivo

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

Resolução

Para resolve esse problema, adicione as seguintes chaves de registro necessárias e atualize SQL Server para 2012 SP4 para que 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 em SQL Server 2012:

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

Para resolve 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. Reiniciar o servidor.

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

  6. Reinicie o servidor novamente.

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

Confira também

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