Nawiązywanie połączenia z programem SQL Server przy użyciu ścisłego szyfrowania

Dotyczy: SQL Server 2022 (16.x) i nowsze wersje

Ścisłe szyfrowanie połączeń wymusza dobre rozwiązania w zakresie zabezpieczeń i sprawia, że ruch programu SQL Server można zarządzać przez standardowe urządzenia sieciowe.

Z tego artykułu dowiesz się, jak nawiązać połączenie z programem SQL Server 2022 (16.x) i nowszymi wersjami przy użyciu ścisłego typu połączenia.

Warunek wstępny

Nawiązywanie połączenia z programem SQL Server przy użyciu aplikacji .NET

Aby uzyskać informacje na temat kompilowania i nawiązywania połączenia z programem SQL Server przy użyciu strict typu szyfrowania, zobacz Składnia parametrów połączenia na temat prawidłowego kompilowania parametrów połączenia. Aby uzyskać więcej informacji na temat nowych właściwości parametrów połączenia, zobacz Dodatkowe zmiany właściwości szyfrowania parametrów połączenia.

Nawiązywanie połączenia przy użyciu nazwy DSN ODBC

Możesz przetestować połączenie z typem szyfrowania Strict przy użyciu DSN ODBC do SQL Server.

  1. Wyszukaj aplikację ŹRÓDŁA danych ODBC w systemie Windows.

    Zrzut ekranu przedstawiający aplikację źródeł danych O D B C.

  2. Upewnij się, że masz najnowszy sterownik ODBC, patrząc na kartę Sterowniki administratora źródła danych ODBC.

    Zrzut ekranu przedstawiający dostępne sterowniki.

  3. Na karcie System DSN wybierz pozycję Dodaj , aby utworzyć nazwę DSN. Następnie wybierz sterownik ODBC 18 dla programu SQL Server. Wybierz Zakończ Użyjemy tego, aby przetestować nasze połączenie.

  4. W oknie Tworzenie nowego źródła danych w serwerze SQL Server podaj nazwę tego źródła danych i dodaj nazwę serwera SQL Server 2022 (16.x) do serwera. Wybierz Dalej.

    Zrzut ekranu przedstawiający tworzenie źródła danych przy użyciu sterownika O D B C.

  5. Użyj wszystkich wartości domyślnych dla wszystkich ustawień, dopóki nie zostanie wyświetlony ekran z szyfrowaniem połączeń. Wybierz pozycję Ścisłe. Jeśli wprowadzona nazwa serwera różni się od podanej w certyfikacie lub jeśli zamiast tego jest używany adres IP, ustaw wartość Nazwa hosta w certyfikacie na wartość użytą w certyfikacie. Wybierz Zakończ

    Zrzut ekranu przedstawiający rygorystyczny typ szyfrowania.

  6. Po wyświetleniu okna dialogowego ODBC Instalator programu Microsoft SQL Server wybierz przycisk Testuj źródło danych... w celu przetestowania połączenia. Powinno to wymusić strict połączenie z programem SQL Server na potrzeby tego testu.

Możesz również przetestować połączenie z programem SQL Server przy użyciu szyfrowania strict za pomocą sterownika OLE DB z usługą Universal Data Link (UDL).

  1. Aby utworzyć plik UDL w celu przetestowania połączenia, kliknij prawym przyciskiem myszy pulpit i wybierz pozycję Nowy>dokument tekstowy. Musisz zmienić rozszerzenie z txt na udl. Możesz nadać plikowi dowolną nazwę.

    Uwaga / Notatka

    Aby zobaczyć nazwę rozszerzenia, co jest konieczne do zmiany rozszerzenia z txt na udl. Jeśli rozszerzenie nie jest widoczne, możesz włączyć jego wyświetlanie, otwierając Eksplorator plików>Widok>Pokaż>Rozszerzenia nazw plików.

  2. Otwórz utworzony plik UDL i przejdź do karty Dostawca , aby wybrać sterownik MICROSOFT OLE DB 19 dla programu SQL Server. Wybierz pozycję Dalej >>.

    Zrzut ekranu przedstawiający ekran dostawcy U D L.

  3. Na karcie Połączenie wprowadź nazwę serwera SQL Server i wybierz metodę uwierzytelniania do logowania do SQL Server.

    Zrzut ekranu przedstawiający ekran połączenia U D L.

  4. Na karcie Zaawansowane wybierz pozycję Ścisłe w polu Szyfrowanie połączeń. Jeśli wprowadzona nazwa serwera różni się od podanej w certyfikacie lub jeśli zamiast tego jest używany adres IP, ustaw wartość Nazwa hosta w certyfikacie na nazwę hosta używaną w certyfikacie. Po zakończeniu wróć do karty Połączenie .

    Zrzut ekranu przedstawiający zaawansowany ekran U D L.

  5. Wybierz pozycję Testuj połączenie , aby przetestować połączenie z szyfrowaniem strict połączenia.

    Zrzut ekranu przedstawiający ekran połączenia U D L i testowanie połączenia.

Nawiązywanie połączenia za pomocą programu SSMS

Począwszy od wersji 20, można wymusić ścisłe szyfrowanie w programie SQL Server Management Studio (SSMS) na karcie Logowania okna dialogowego Łączenie z serwerem :

Zrzut ekranu okna dialogowego połączenia z serwerem w SQL Server Management Studio.

Nawiązywanie połączenia z grupą dostępności Always On

Począwszy od SQL Server 2025 (17.x), można szyfrować komunikację między klastrem Windows Server Failover a repliką grupy dostępności Always On przy użyciu typu szyfrowania połączenia Strict lub Mandatory. Grupa dostępności może wymuszać szyfrowanie tylko wtedy, gdy jest ono oparte na klastrze trybu failover systemu Windows Server. Inne typy grup dostępności nie obsługują ścisłego szyfrowania.

Kroki różnią się w zależności od tego, czy dostępność już istnieje.

Aby wymusić ścisłe szyfrowanie do nowej grupy dostępności, wykonaj następujące kroki:

  1. Jeśli jeszcze tego nie zrobiono, zaimportuj certyfikat TLS do każdej repliki grupy dostępności zgodnie z wymaganiami dotyczącymi certyfikatów. Uruchom ponownie każde wystąpienie programu SQL Server po zaimportowaniu certyfikatu.
  2. Przetestuj połączenia z każdą repliką programu SQL Server przy użyciu jednej z metod wymienionych w tym artykule, która wymusza szyfrowanie.
  3. UTWÓRZ GRUPĘ DOSTĘPNOŚCI z właściwością Encrypt ustawioną na Strict w CLUSTER_CONNECTION_OPTIONS klauzuli dla grupy dostępności. Gwarantuje to, że wszystkie połączenia z grupą dostępności używają określonego typu szyfrowania.
  4. Jeśli grupa dostępności jest obecnie w trybie online, przełącz grupę dostępności w tryb failover do repliki pomocniczej, aby zastosować nowe ustawienia szyfrowania do grupy dostępności. Jeśli grupa dostępności nie stanie się aktywna, może to oznaczać, że ClusterConnectionOptions jest ustawione niepoprawnie. Sprawdź cluster.log pod kątem błędów ODBC związanych z niepowodzeniem połączenia klastra z repliką programu SQL Server. Opcjonalnie można przenieść grupę dostępności z powrotem do oryginalnej repliki podstawowej, po uruchomieniu i połączeniu nowej repliki pomocniczej z tą grupą.
  5. (Opcjonalnie) Możesz dodatkowo wymusić szyfrowanie, ustawiając opcję Yes na właściwości programu SQL Server Configuration Manager dla protokołu połączenia dla każdej repliki. To ustawienie zapewnia, że wszystkie połączenia z replikami grupy dostępności używają ścisłego szyfrowania. Uruchom ponownie każdą replikę programu SQL Server po zmianie tego ustawienia.

Nawiązywanie połączenia z wystąpieniem klastra failover

Począwszy od programu SQL Server 2025 (17.x), możesz zaszyfrować komunikację między klastrem trybu failover systemu Windows Server a instancją klastra Always On przy użyciu typu szyfrowania połączenia lub Strict. Aby to zrobić, wykonaj następujące kroki:

  1. Jeśli jeszcze tego nie zrobiono, zaimportuj certyfikat TLS do każdego węzła klastra trybu failover zgodnie z wymaganiami dotyczącymi certyfikatów. Uruchom ponownie instancję programu SQL Server po zaimportowaniu certyfikatu.
  2. Przetestuj połączenia z wystąpieniem klastra trybu failover przy użyciu jednej z metod wymienionych w tym artykule, która wymusza szyfrowanie.
  3. ALTER SERVER CONFIGURATION z klauzulą CLUSTER_CONNECTION_OPTIONS , aby ustawić Encrypt właściwość na Mandatory lub Strict. Gwarantuje to, że wszystkie połączenia z wystąpieniem klastra przełączania awaryjnego używają określonego typu szyfrowania.
  4. Przełącz wystąpienie w tryb failover do węzła pomocniczego, aby zastosować nowe ustawienia szyfrowania do wystąpienia klastra trybu failover. Jeśli wystąpienie klastra failover nie zostanie uruchomione, może to oznaczać, że ClusterConnectionOptions nie jest poprawnie skonfigurowany. Sprawdź cluster.log pod kątem błędów ODBC związanych z problemami z połączeniem klastra z SQL Server. Opcjonalnie można przywrócić wystąpienie do oryginalnego węzła podstawowego po przełączeniu nowego węzła pomocniczego w tryb online i nawiązać połączenie z wystąpieniem klastra trybu failover.
  5. (Opcjonalnie) Możesz dodatkowo wymusić szyfrowanie, ustawiając opcję Force Strict Encryption na Yes we właściwościach programu SQL Server Configuration Manager dla protokołu połączenia dla każdego węzła w klastrze. To ustawienie zapewnia, że wszystkie połączenia z instancją klastra awaryjnego używają ścisłego szyfrowania. Wprowadź tę zmianę w węźle pomocniczym, przełącz instancję do węzła pomocniczego, a następnie wprowadź zmianę w węźle podstawowym.

Wymuszanie ścisłego szyfrowania za pomocą programu SQL Server Configuration Manager

Możesz wymusić ścisłe szyfrowanie przy użyciu programu SQL Server Configuration Manager, począwszy od programu SQL Server 2022 (16.x). W tym celu wykonaj następujące kroki:

  1. Otwórz program SQL Server Configuration Manager.

  2. W okienku po lewej stronie rozwiń węzeł Konfiguracja sieci programu SQL Server i wybierz Protokoły dla [InstanceName].

  3. Kliknij prawym przyciskiem myszy pozycję TCP/IP, a następnie wybierz pozycję Właściwości.

  4. W oknie dialogowym Właściwości protokołu TCP/IP przejdź do karty Flagi , a następnie wybierz pozycję Tak dla opcji Wymuszaj ścisłe szyfrowanie :

    Zrzut ekranu przedstawiający opcję Wymuszanie szyfrowania ścisłego w programie SQL Server Configuration Manager.

  5. Uruchom ponownie wystąpienie programu SQL Server podczas okna konserwacyjnego w celu zastosowania zmian.

Uwagi

Jeśli widzisz wartość SSL certificate validation failed, sprawdź, czy:

  • Certyfikat serwera jest ważny na maszynie używanej do testowania
  • Co najmniej jedna z następujących wartości jest prawdziwa:
    • Dostawca SQL Server pasuje do nazwy urzędu certyfikacji (CA) lub jednej z nazw DNS w certyfikacie.
    • HostNameInCertificate właściwość parametrów połączenia jest zgodna z nazwą urzędu certyfikacji lub jedną z nazw DNS w certyfikacie.