Udostępnij za pośrednictwem


Błąd podczas nawiązywania połączenia z niższą wersją SQL Server przy użyciu funkcji połączonego serwera SQL Server

Ten artykuł ułatwia znalezienie rozwiązania problemu z łącznością przy użyciu funkcji połączonego serwera SQL Server z systemu Windows Server 2022 lub nowszego do SQL Server hostowanego w starszej wersji systemu Windows.

Symptomy

Ten problem może wystąpić, jeśli nawiązujesz połączenie z systemu Windows Server 2022 lub nowszego z SQL Server uruchomioną w niższej wersji systemu Windows przy użyciu funkcji połączonego serwera SQL Server.

Może zostać wyświetlony jeden z następujących komunikatów o błędach:

[Sterownik OLE DB firmy Microsoft dla SQL Server]: Klient nie może nawiązać połączenia

[Sterownik OLE DB firmy Microsoft dla SQL Server]: Dostawca TCP: Istniejące połączenie zostało zmuszone do przerwania przez hosta zdalnego.

W tym miejscu serwer zdalny odbiera komunikaty TLS, gdy serwer próbuje nawiązać połączenie z SQL Server. Nieodwracalny alert jest generowany i wysyłany do zdalnego końca. Ten błąd może zakończyć połączenie. Kod błędu krytycznego zdefiniowany przez protokół TLS to 40. Stan błędu Schannel systemu Windows to 1205.

Przyczyna

Obecność obsługi protokołu TLS 1.2 może być możliwą przyczyną problemu podczas nawiązywania połączenia z SQL Server 2012 r. z maszynami wirtualnymi platformy Azure.

Rozwiązanie

Aby rozwiązać ten problem, dodaj następujące wymagane klucze rejestru i zaktualizuj SQL Server do wersji 2012 z dodatkiem SP4, aby SQL Server 2022 r. mógł się z nim połączyć.

[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

Po zainstalowaniu aktualizacji na serwerze opartym na SQL Server 2012 r. może zostać wyświetlony następujący komunikat o błędzie:

Język wystąpienia SQL Server MSSQLSERVER jest niezgodny z językiem oczekiwanym przez aktualizację SQL Server. Język zainstalowanego produktu SQL Server to <inny język,> a oczekiwanym językiem SQL Server jest angielski (Stany Zjednoczone).

Aby rozwiązać ten błąd, wykonaj następujące kroki.

Uwaga

Przed uruchomieniem poleceń w tej procedurze upewnij się, że masz zainstalowany pakiet językowy angielski (Stany Zjednoczone).

  1. Otwórz program PowerShell.

  2. Aby uzyskać bieżącą listę języków, uruchom następujące polecenie:

    Get-WinUserLanguageList

  3. Aby ustawić język jako angielski (Stany Zjednoczone), uruchom następujące polecenie:

    Set-WinUserLanguageList -LanguageList en-US

  4. Uruchom ponownie serwer.

  5. Zainstaluj aktualizację SQL Server 2012 z dodatkiem SP4.

  6. Ponownie uruchom serwer.

Aby sprawdzić łączność przy użyciu biblioteki UDL, zobacz Konfiguracja usługi Universal Data Link (UDL).

Zobacz też

Istniejące połączenie zostało wymuszone przez hosta zdalnego (błąd systemu operacyjnego 10054)