Připojení k SQL Serveru s přísným šifrováním

platí pro: SQL Server 2022 (16.x) a novější verze

Přísné šifrování připojení vynucuje osvědčené postupy zabezpečení a zajišťuje správu provozu SQL Serveru standardními síťovými zařízeními. Přísné šifrování používá tabulkový datový stream (TDS) 8.0, který zabalí relaci TDS v protokolu TLS (Transport Layer Security) pro komplexní šifrování.

V tomto článku se dozvíte, jak se připojit k SQL Serveru 2022 (16.x) a novějším verzím pomocí striktního typu připojení.

Předpoklad

Připojení k SQL Serveru pomocí aplikace .NET

Informace o vytváření a připojování k SQL Serveru pomocí strict typu šifrování najdete v tématu Syntaxe připojovacího řetězce, jak správně sestavit připojovací řetězec. Další informace o nových vlastnostech připojovacího řetězce naleznete v tématu Další změny vlastností šifrování připojovacího řetězce.

Připojení pomocí DSN ODBC

Připojení s Strict typem šifrování připojení můžete otestovat pomocí dsN ODBC k SQL Serveru.

  1. Vyhledejte aplikaci ZDROJE dat ODBC ve Windows.

    Snímek obrazovky aplikace zdrojů dat O D B C

  2. Zkontrolujte, že máte nejnovější ovladač ODBC, a to tak, že se podíváte na kartu Ovladače správce zdroje dat ODBC.

    Snímek obrazovky s dostupnými ovladači

  3. Na kartě System DSN vyberte Přidat a vytvořte DSN. Pak vyberte ovladač ODBC 18 pro SQL Server. Vyberte Dokončit. Použijeme ho k otestování připojení.

  4. V okně Vytvořit nový zdroj dat pro SQL Server zadejte název tohoto zdroje dat a přidejte název serveru SQL Server 2022 (16.x) na server. Vyberte Další.

    Snímek obrazovky s vytvořením zdroje dat pomocí ovladače O D B C

  5. Použijte všechny výchozí hodnoty pro všechna nastavení, dokud se nedostanete na obrazovku s šifrováním připojení. Vyberte Striktní. Pokud se zadaný název serveru liší od názvu serveru v certifikátu nebo pokud se místo toho použije IP adresa, nastavte název hostitele v certifikátu na název hostitele, který jste použili v certifikátu. Vyberte Dokončit.

    Snímek obrazovky znázorňující striktní typ šifrování

  6. Když se zobrazí dialogové okno ODBC Microsoft SQL Server Setup , vyberte tlačítko Test Data Source... a otestujte připojení. To by mělo vynutit strict připojení k SQL Serveru pro tento test.

Můžete také otestovat připojení k SQL Serveru pomocí šifrování pomocí ovladače OLE DB s univerzálním datovým propojením strict (UDL).

  1. Pokud chcete vytvořit soubor UDL pro otestování připojení, klikněte pravým tlačítkem na plochu a vyberte Nový>textový dokument. Potřebujete změnit rozšíření z txt na udl. Soubor můžete pojmenovat libovolným způsobem.

    Poznámka:

    Abyste mohli změnit příponu z txt na udl, musíte být schopni zobrazit název rozšíření . Pokud příponu nevidíte, můžete zapnout zobrazení přípon tak, že otevřete Průzkumník souborů>Zobrazení>Zobrazit>Přípony názvů souborů.

  2. Otevřete soubor UDL, který jste vytvořili, a přejděte na kartu Zprostředkovatel a vyberte ovladač Microsoft OLE DB 19 pro SQL Server. Vyberte Další >>.

    Snímek obrazovky zprostředkovatele U D L

  3. Na kartě Připojení zadejte název serveru SQL Serveru a vyberte metodu ověřování, kterou používáte pro přihlášení k SQL Serveru.

    Snímek obrazovky s připojením U D L

  4. Na kartě Upřesnit vyberte Striktní pro šifrování připojení. Pokud se zadaný název serveru liší od názvu v certifikátu nebo pokud se místo toho použije IP adresa, nastavte název hostitele v certifikátu na název hostitele, který jste použili v certifikátu. Až budete hotovi, vraťte se na kartu Připojení .

    Snímek obrazovky pokročilé obrazovky U D L

  5. Výběrem Test připojení otestujte připojení pomocí strict šifrování připojení.

    Snímek obrazovky připojení U D L a testovacího připojení

Připojení pomocí SSMS

Počínaje verzí 20 můžete vynutit přísné šifrování v aplikaci SQL Server Management Studio (SSMS) na kartě Přihlášení v dialogovém okně Připojit k serveru :

Snímek obrazovky s dialogovým oknem připojit k serveru v aplikaci SQL Server Management Studio

Připojení ke skupině dostupnosti AlwaysOn

Od verze SQL Server 2025 (17.x) můžete šifrovat komunikaci mezi clusterem s podporou převzetí služeb při selhání Windows Server a replikou skupiny dostupnosti Always On pomocí typu šifrování pro připojení Strict nebo Mandatory. Vaše dostupnostní skupina může vynutit šifrování pouze v případě, že je založená na Windows Server Failover Clusteru. Jiné typy skupin dostupnosti nepodporují striktní šifrování.

Poznámka:

Šifrování koncových bodů zrcadlení databáze se konfiguruje samostatně a protokol TLS se nepodporuje. Další informace najdete v tématu Zabezpečení přenosu ve skupinách dostupnosti a zrcadlení databáze.

Postup se liší podle toho, jestli už vaše dostupnost existuje.

Pokud chcete vynutit přísné šifrování pro novou skupinu dostupnosti, postupujte takto:

  1. Pokud jste to ještě neudělali, naimportujte certifikát TLS do každé repliky skupiny dostupnosti, jak je definováno požadavky na certifikáty. Po importu certifikátu restartujte každou instanci SQL Serveru.
  2. Otestujte připojení ke každé replice SQL Serveru pomocí jedné z metod uvedených v tomto článku, která vynucuje šifrování.
  3. CREATE AVAILABILITY GROUP s vlastností Encrypt nastavenou na Strict v klauzuli CLUSTER_CONNECTION_OPTIONS pro skupinu dostupnosti. Tím zajistíte, že všechna připojení ke skupině dostupnosti budou používat zadaný typ šifrování.
  4. Pokud je skupina dostupnosti aktuálně online, skupina dostupnosti převezme služby při selhání sekundární repliky, aby se nová nastavení šifrování použila pro skupinu dostupnosti. Pokud se skupině dostupnosti nepodaří přejít do online režimu, může se jednat o to, že ClusterConnectionOptions není správně nastavená. Zkontrolujte cluster.log kvůli chybám ODBC souvisejícím s chybami clusteru při pokusu o připojení k replice SQL Serveru. Volitelně můžete přepnout skupinu dostupnosti zpět na původní primární repliku poté, co je nová sekundární replika online a připojená ke skupině dostupnosti.
  5. (Volitelné) Šifrování můžete dále vynutit nastavením možnosti Vynucení striktního šifrování ve Yes vlastnostech nástroje SQL Server Configuration Manager pro protokol připojení pro každou repliku. Toto nastavení zajišťuje, aby všechna připojení k replikám skupiny dostupnosti používala striktní šifrování. Po změně tohoto nastavení restartujte každou repliku SQL Serveru.

Připojit se k instanci failover clusteru

Počínaje SQL Serverem 2025 (17.x) můžete šifrovat komunikaci mezi clusterem s podporou převzetí služeb při selhání Windows Serveru a instancí clusteru s podporou převzetí služeb při selhání Always On pomocí některého z typů šifrování připojení nebo Strict. Postupujte takto:

  1. Pokud jste to ještě neudělali, naimportujte certifikát TLS do každého uzlu clusteru s podporou převzetí služeb při selhání, jak je definováno požadavky na certifikáty. Po importu certifikátu restartujte instanci SQL Serveru.
  2. Otestujte připojení k instanci clusteru převzetí služeb při selhání pomocí jedné z metod uvedených v tomto článku, která zabezpečuje šifrování.
  3. ALTER SERVER CONFIGURATION s klauzulí CLUSTER_CONNECTION_OPTIONS k nastavení Encrypt vlastnosti na Mandatory nebo Strict. Tím zajistíte, že všechna připojení k instanci clusteru pro převzetí služeb při selhání budou používat zadaný typ šifrování.
  4. Převeďte instanci na sekundární uzel, abyste aplikovali nová nastavení šifrování na instanci převzetí služeb při selhání. Pokud se instance clusteru s podporou převzetí služeb při selhání nepodaří převést do režimu online, může ClusterConnectionOptions se stát, že není správně nastavená. Zkontrolujte cluster.log ohledně chyb ODBC souvisejících s tím, že se cluster nemůže připojit k instanci SQL Serveru. Volitelně můžete instanci vrátit zpět do původního hlavního uzlu, jakmile bude nový sekundární uzel online a připojený k instanci clusteru failover.
  5. (Volitelné) Šifrování můžete dále vynutit nastavením možnosti Vynucení striktního šifrování ve Yes vlastnostech nástroje SQL Server Configuration Manager pro protokol připojení pro každý uzel v clusteru. Toto nastavení zajišťuje, aby všechna připojení k instanci clusteru s podporou převzetí služeb při selhání používala striktní šifrování. Proveďte tuto změnu na sekundárním uzlu, přesuňte instanci ke štafetě na něj, a poté proveďte změnu na primárním uzlu.

šifrování připojení SQL Server Agent

Od verze SQL Server 2025 (17.x) SQL Server Agent používá Microsoft ovladač ODBC 18 pro SQL Server, který podporuje TDS 8.0 a TLS 1.3. SQL Server Agent automaticky upraví šifrování připojení tak, aby odpovídalo konfiguraci instance SQL Server.

Jak SQL Server Agent určuje šifrování

Když SQL Server Agent spustíte, dotazuje se na místní počítač následující klíče registru, aby určil úroveň šifrování nakonfigurovanou pro SQL Server:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceEncryption
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\ForceStrict
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL17.<InstanceName>\MSSQLServer\SuperSocketNetLib\SubjectAlternativeName(novinka v SQL Server 2025 (17.x))

Na základě těchto hodnot SQL Server Agent vybere režim připojení:

  • Pokud je povolené vynucení striktního šifrování, SQL Server Agent se připojí pomocí strict (TDS 8.0).
  • Pokud je povolené vynucené šifrování, SQL Server Agent se připojí pomocí mandatory (TDS 7.x).
  • Pokud není povolená žádná z nich, SQL Server Agent se připojí pomocí optional (TDS 7.x).

Místní kroky úloh T-SQL dědí stejnou konfiguraci šifrování jako služba SQL Server Agent. Pokud se SQL Server Agent připojuje pomocí strict, úlohy T-SQL spuštěné místně na serveru používají stejnou možnost.

Important

Protokol TLS 1.3 funguje jenom s přísným šifrováním. Pokud má instance SQL Server povolenou pouze protokol TLS 1.3 na úrovni operačního systému, ale je nastaveno pouze vynucení šifrování (nikoli vynucené přísné šifrování), SQL Server Agent nejde spustit, protože mandatory režimy optional vyžadují TDS 7.x, což není kompatibilní s protokolem TLS 1.3.

Matice konfigurace protokolu TLS a šifrování

Povolená verze protokolu TLS Nastavení konfigurace výsledek agenta SQL Serveru Notes
Pouze TLS 1.3 Vynucení striktního šifrování Úspěšně se připojí TDS 8.0 používá striktní šifrování
Pouze TLS 1.3 Vynucení šifrování Nejde se připojit TLS 1.3 vyžaduje striktní
Pouze TLS 1.3 None Nejde se připojit Tls 1.3 vyžaduje striktní šifrování.
Pouze TLS 1.2 Vynucení striktního šifrování Úspěšně se připojí TDS 8.0 může používat protokol TLS 1.2
Pouze TLS 1.2 Vynucení šifrování Úspěšně se připojí TDS 7.x s povinným
Pouze TLS 1.2 None Úspěšně se připojí TDS 7.x s volitelnou podporou
TLS 1.2 a TLS 1.3 Vynucení striktního šifrování Úspěšně se připojí TDS 8.0 používá striktní šifrování
TLS 1.2 a TLS 1.3 Vynucení šifrování Úspěšně se připojí TDS 7.x s povinným
TLS 1.2 a TLS 1.3 None Úspěšně se připojí TDS 7.x s volitelnou podporou

Ověřte vyjednané šifrování agenta SQL Serveru

Po připojení SQL Server Agent spusťte následující dotaz a potvrďte jeho režim šifrování:

SELECT s.session_id, c.encrypt_option, s.program_name, s.client_interface_name, s.nt_user_name
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
    ON c.session_id = s.session_id
WHERE s.program_name LIKE 'SQLAgent%';

Sloupec encrypt_option vrací TRUE, když je SQL Server Agent připojen pomocí šifrování.

Přehled samotné služby SQL Server Agent naleznete v tématu SQL Server Agent.

Vynucení striktního šifrování pomocí nástroje SQL Server Configuration Manager

Přísné šifrování můžete vynutit pomocí SQL Server Configuration Manageru počínaje SQL Serverem 2022 (16.x). Postupujte takto:

  1. Otevřete SQL Server Configuration Manager.

  2. V levém podokně rozbalte položku Konfigurace sítě SQL Serveru a vyberte Protokoly pro [InstanceName].

  3. Klikněte pravým tlačítkem na TCP/IP a vyberte Vlastnosti.

  4. V dialogovém okně Vlastnosti protokolu TCP/IP přejděte na kartu Příznaky a pak u možnosti Vynucení striktního šifrování vyberte Ano:

    Snímek obrazovky s možností Vynucení striktního šifrování v nástroji SQL Server Configuration Manager

  5. Pokud chcete změny použít, restartujte instanci SQL Serveru během časového období údržby.

Poznámky

Pokud se zobrazí SSL certificate validation failed, ověřte, že:

  • Certifikát serveru je platný na počítači, který používáte k testování.
  • Alespoň jedna z následujících hodnot je pravdivá:
    • Zprostředkovatel SQL Server odpovídá názvu certifikační autority nebo jednomu z názvů DNS v certifikátu.
    • HostNameInCertificate Vlastnost připojovacího řetězce odpovídá názvu certifikační autority nebo jednomu z názvů DNS v certifikátu.