Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje zásadní změny mezi ovladačem Microsoft OLE DB 19 pro SQL Server a staršími verzemi.
Návod
MSOLEDBSQL19 (ovladač Microsoft OLE DB 19 pro SQL Server) je aktuálně doporučený ovladač OLE DB. Podporuje TDS 8.0 a moderní funkce zabezpečení. Verze 19.2.0+ podporuje také protokol TLS 1.3. Použijte Provider=MSOLEDBSQL19 v připojovacích řetězcích.
Souhrn vašich změn
| Area | Verze 18 a starší | Verze 19 nebo novější |
|---|---|---|
Výchozí nastavení šifrování (Encrypt) |
no (žádné šifrování nebo server nemůže vyžadovat šifrování) |
Mandatory (vyžadováno šifrování) |
Encrypt typ vlastnosti |
VT_BOOL |
VT_BSTR |
Encrypt platné hodnoty |
no/yes |
no/yes/true/false/Optional/Mandatory/Strict |
| Ověření certifikátu | Vynecháno při sadách klientů Encrypt=no |
Vždy vyhodnoceno při výskytu šifrování |
| Název ovladače | MSOLEDBSQL |
MSOLEDBSQL19 |
| identifikátor CLSID |
MSOLEDBSQL_CLSID (starší verze) |
MSOLEDBSQL_CLSID (aktualizováno v hlavičce) |
Výstraha
Ověřování ActiveDirectoryPassword je zastaralé. Pokud migrujete z verze 18 na 19 a používáte Authentication=ActiveDirectoryPassword, naplánujte migraci na bezpečnější metodu ověřování. Alternativy najdete v tématu Zastaralé metody ověřování .
Změny vlastností šifrování
Změna typu vlastnosti Encrypt
Vlastnost SSPROP_INIT_ENCRYPT ovladače se změní z VT_BOOL na VT_BSTR.
| Připojovací řetězec | Hodnoty verze 18 | Hodnoty verze 19 |
|---|---|---|
Poskytovatel: Encrypt |
no/yes |
no/yes/true/false/Optional/Mandatory/Strict |
IDataInitialize: Use Encryption for Data |
true/false |
no/yes/true/false/Optional/Mandatory/Strict |
Mapování hodnot:
| Mode | Ekvivalentní hodnoty | Chování |
|---|---|---|
Optional |
no, false |
Nešifrované, pokud ho server nevyžaduje |
Mandatory (výchozí) |
yes, true |
Vyžaduje se šifrované připojení. |
Strict |
(bez ekvivalentu) | Šifrování TDS 8.0; vyžaduje SQL Server 2022+ |
Návod
Od verze 19.2.0 můžou připojení TDS 8.0 při připojování k SQL Serveru 2022 nebo novějším používat protokol TLS 1.3. Vlastnost ServerCertificate byla přidána také v této verzi. Další informace najdete v tématu Podpora protokolu TLS 1.3.
Kvůli zpětné kompatibilitě přijímá verze 19 kromě nových hodnot () všechny hodnoty verze 18 (yes///noMandatoryOptionalStrict).
Výchozí chování šifrování
| Version | Výchozí | Result |
|---|---|---|
| 18 a starší | no |
Nešifrovaná připojení ve výchozím nastavení |
| 19+ | Mandatory |
Připojení se ve výchozím nastavení šifrují |
Pokud chcete obnovit chování verze 18, přidejte do připojovacího řetězce jednu z těchto možností:
- Poskytovatel:
Encrypt=Optional; - IDataInitialize:
Use Encryption for Data=Optional;
Chování ověření certifikátu
| Scenario | Verze 18 | Verze 19 nebo novější |
|---|---|---|
Klientské sady Encrypt=no, server nevynucuje šifrování |
Bez ověření | Bez ověření |
Klientské sady Encrypt=no, server vynutí šifrování |
Trust Server Certificate
Ignorovány |
Trust Server Certificate
Vyhodnocena |
Klientské sady Encrypt=yes |
Trust Server Certificate Vyhodnocena |
Trust Server Certificate Vyhodnocena |
Poznámky k kompatibilitě
Klienti verze 19, kteří používají výchozí nastavení, se nepodaří připojit, když server vynutí šifrování a použije nedůvěryhodný certifikát. Aktualizujte nastavení Trust Server Certificate nebo použijte důvěryhodný certifikát.
TrustServerCertificate
nebyla odebrána ve verzi 19. Tato možnost stále funguje. Verze 18 ignorovala toto nastavení, když Encrypt bylo nastaveno no, i když server vynucené šifrování. Verze 19 se teď vyhodnocuje TrustServerCertificate ve všech šifrovaných scénářích.
Ovladač verze 19, před verzí 19.4.1, měl problém s instalačním programem, který by mohl nastavit TrustServerCertificate možnost registru na no systémy, které dříve měly nainstalovanou verzi 18. Když k tomuto problému dojde, ovladač by použil bezpečnější nastavení registru, což by mohlo znamenat, že možnosti připojovacího řetězce nemají žádný vliv. Tento problém byl vyřešen ve verzi 19.4.1. Čerstvá instalace v19 (bez verze 18) vždy správně výchozí možnost yesregistru . Pro více informací viz nastavení registru.
Formát klíčového slova se liší podle rozhraní:
- Připojovací řetězce zprostředkovatele nepoužívají žádné mezery:
TrustServerCertificate=yes; - IDataInitialize připojovacích řetězců používá mezery:
Trust Server Certificate=yes;
Další informace naleznete v tématu Šifrování a ověření certifikátu v OLE DB.
Nastavení registru pro vynucené šifrování protokolu
Nastavení registru Force Protocol Encryption používá číselné hodnoty, které se mapuje na režimy šifrování:
| Hodnota registru | Režim šifrování | Description |
|---|---|---|
0 |
Optional |
Šifrování pouze v případě, že server vyžaduje |
1 |
Mandatory |
Vyžaduje se šifrování. |
2 |
Strict |
Šifrování TDS 8.0 |
Ovladač používá nejbezpečnější možnost mezi nastavením registru a vlastností připojení. Informace o umístění klíčů registru najdete v tématu Nastavení registru.
Změny názvu ovladače
Verze 19 podporuje souběžnou instalaci s verzí 18. Název ovladače obsahuje číslo hlavní verze pro rozlišení.
| Rozhraní | Verze 18 | Verze 19 |
|---|---|---|
| Klíčové slovo zprostředkovatele | MSOLEDBSQL |
MSOLEDBSQL19 |
| CLSID – konstanta | MSOLEDBSQL_CLSID |
MSOLEDBSQL_CLSID (aktualizováno v msoledbsql.h) |
| Zobrazovaný název uživatelského rozhraní | Ovladač Microsoft OLE DB pro SQL Server | Ovladač Microsoft OLE DB 19 pro SQL Server |
Kroky migrace
- Do projektu zahrňte aktualizované
msoledbsql.hzáhlaví. - Pro
IDBInitialize: Nejsou potřeba žádné změny (CLSID aktualizováno v hlavičce). - Pro
IDataInitialize: ZměnitProvider=MSOLEDBSQLnaProvider=MSOLEDBSQL19. - Pro nástroje uživatelského rozhraní (SSMS, vlastnosti datového propojení): Vyberte ovladač Microsoft OLE DB 19 pro SQL Server.
Příklady připojovacích řetězců
Verze 18 (před):
Provider=MSOLEDBSQL;Server=myserver;Database=mydb;Trusted_Connection=yes;
Verze 19 (po):
Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Trusted_Connection=yes;
Verze 19 s explicitním nastavením šifrování:
Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Encrypt=Mandatory;TrustServerCertificate=no;
Verze 19 s přísným šifrováním (TDS 8.0):
Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Encrypt=Strict;ServerCertificate=C:\certs\server.cer;
Nová verze 19 možností ubytování
Verze 19 zavádí vlastnosti pro rozšířené ověřování certifikátů v Strict režimu šifrování.
HostNameInCertificate (v19.0.0+)
Určuje název hostitele, který se má ověřit vůči certifikátu TLS/SSL serveru. Tuto vlastnost použijte, pokud se název serveru v připojovacím řetězci liší od společného názvu certifikátu (CN) nebo alternativního názvu subjektu (SAN).
| Rozhraní | Vlastnictví |
|---|---|
| Klíčové slovo zprostředkovatele | HostNameInCertificate |
| Klíčové slovo IDataInitialize | Host Name In Certificate |
| Vlastnost OLE DB | SSPROP_INIT_HOST_NAME_CERTIFICATE |
Poznámka:
Tato vlastnost je ignorována, pokud Trust Server Certificate je povolena. Pokud Encrypt=Strictse certifikát vždy ověří.
ServerCertificate (v19.2.0+)
Určuje cestu k souboru certifikátu (formát PEM, DER nebo CER) pro přesnou shodu certifikátu. Ovladač porovnává tento certifikát s certifikátem serveru během metody handshake protokolu TLS.
| Rozhraní | Vlastnictví |
|---|---|
| Klíčové slovo zprostředkovatele | ServerCertificate |
| Klíčové slovo IDataInitialize | Server Certificate |
| Vlastnost OLE DB | SSPROP_INIT_SERVER_CERTIFICATE |
Důležité
ServerCertificate lze použít pouze v případech, kdy Encrypt=Strict. Při pokusu o použití Mandatory s šifrováním dojde Optional k chybě připojení.
Zastaralé metody ověřování
ActiveDirectoryPassword
ActiveDirectoryPassword Metoda ověřování (ověřování hesla Microsoft Entra ID) je zastaralá. Toto ověřování vychází z udělení hesla vlastníka prostředku OAuth 2.0 (ROPC), které není kompatibilní s vícefaktorovým ověřováním (MFA) a představuje bezpečnostní rizika.
Výstraha
Microsoft odchází od tohoto vysoce rizikového toku ověřování, aby chránil uživatele před škodlivými útoky. Před odebráním této možnosti naplánujte migraci na bezpečnější metodu ověřování. Další informace najdete v tématu Plánování povinného vícefaktorového ověřování pro Azure.
Doporučené alternativy
| Scenario | Doporučené ověřování | Klíčové slovo připojovacího stringu |
|---|---|---|
| Interaktivní kontext uživatele | Vícefaktorové ověřování | Authentication=ActiveDirectoryInteractive |
| Aplikace spuštěná v Azure | Spravovaná identita | Authentication=ActiveDirectoryMSI |
| Služba nebo démon bez uživatele | Servisní principal | Authentication=ActiveDirectoryServicePrincipal |
Další informace naleznete v tématu Použití Microsoft Entra ID.
Řešení problémů
Připojení selže s chybou ověření certifikátu
Příznak: Připojení selže s chybou ověření certifikátu nebo zprávou o nedůvěryhodném certifikátu.
Příčina: Výchozí hodnota Encrypt=Mandatoryverze 19, která vyžaduje platný certifikát serveru. Výchozí Encrypt=no verze 18 je (nešifrovaná).
Řešení:
- Doporučeno: Nainstalujte na server důvěryhodný certifikát.
-
Pouze vývoj: Přidejte
TrustServerCertificate=yes;do připojovacího řetězce (nedoporučuje se pro produkční prostředí). -
Náhradní: Přidání
Encrypt=Optional;k chování při obnovení verze 18 (snižuje zabezpečení).
Připojení selže s chybou "Certifikát serveru se dá použít pouze s přísným šifrováním".
Příznak: Připojení selže při použití ServerCertificate vlastnosti.
Příčina: Vlastnost ServerCertificate vyžaduje Encrypt=Strict.
Řešení: Buď odeberte ServerCertificate z připojovacího řetězce, nebo změňte na Encrypt=Strict;.
Při nastavení vlastnosti Encrypt dojde k chybě VT_BOOL aplikace
Příznak: Nastavení SSPROP_INIT_ENCRYPT s logickou hodnotou selže.
Příčina: Verze 19 změnila typ vlastnosti z VT_BOOL na VT_BSTR.
Řešení: Místo logických hodnot použijte řetězcové hodnoty ("Mandatory", "Optional", "Strict""yes", , "no").
Poskytovatel se po upgradu nenašel.
Příznak: Aplikace selže s chybou "Zprostředkovatel nebyl nalezen" nebo podobnou chybou.
Příčina: Verze 19 používá jiný název poskytovatele (MSOLEDBSQL19).
Řešení:
- Aktualizujte připojovací řetězec z
Provider=MSOLEDBSQLdoProvider=MSOLEDBSQL19. - Pokud používáte
IDBInitializes CLSID, zahrňte aktualizovanoumsoledbsql.hhlavičku.
Související obsah
- Ovladač Microsoft OLE DB pro SQL Server
- Použití klíčových slov pro spojovací řetězce s OLE DB Driver pro SQL Server
- Šifrování a ověření certifikátu v OLE DB
- Konfigurace univerzálního datového propojení (UDL)
- Dialogové okno Pro přihlášení k SQL Serveru (OLE DB)
- Inicializační a autorizační vlastnosti
- Nastavení registru