Megosztás a következőn keresztül:


Főbb verzióbeli különbségek

Ez a cikk az SQL Serverhez készült Microsoft OLE DB Driver 19 és a korábbi verziók közötti kompatibilitástörő változásokat ismerteti.

Jótanács

MSOLEDBSQL19 (SQL Serverhez készült Microsoft OLE DB Driver 19) az aktuálisan ajánlott OLE DB-illesztő. Támogatja a TDS 8.0 és a modern biztonsági funkciókat. A 19.2.0+-os verzió a TLS 1.3-at is támogatja. Használja Provider=MSOLEDBSQL19 a kapcsolati sztringekben.

Módosítások összefoglalása

Area 18-es és korábbi verzió 19-es vagy újabb verzió
Alapértelmezett titkosítási (Encrypt) beállítás no (nincs titkosítás, vagy a kiszolgáló titkosítást igényelhet) Mandatory (titkosítás szükséges)
Encrypt tulajdonságtípus VT_BOOL VT_BSTR
Encrypt érvényes értékek no/yes no/yes/true/false/Optional/Mandatory/Strict
Tanúsítvány érvényesítése Kihagyva az ügyfélkészletek esetén Encrypt=no Mindig kiértékelve, amikor titkosítás történik
Illesztőprogram neve MSOLEDBSQL MSOLEDBSQL19
CLSID MSOLEDBSQL_CLSID (örökölt) MSOLEDBSQL_CLSID (frissítve a fejlécben)

Figyelmeztetés

Az ActiveDirectoryPassword hitelesítés elavult. Ha a 18-ról a 19-es verzióra migrál, és azt használja Authentication=ActiveDirectoryPassword, tervezze meg, hogy biztonságosabb hitelesítési módszerre migrál. Alternatív megoldásokért lásd az elavult hitelesítési módszereket .

Titkosítási tulajdonságok változásai

Tulajdonságtípus módosítása titkosítása

Az illesztőprogram tulajdonsága SSPROP_INIT_ENCRYPT a következőre VT_BOOLVT_BSTRváltozik: .

Csatlakozási karakterlánc A 18-es verzió értékei A 19-es verzió értékei
Szolgáltató: Encrypt no/yes no/yes/true/false/Optional/Mandatory/Strict
IDataInitialize: Use Encryption for Data true/false no/yes/true/false/Optional/Mandatory/Strict

Értékleképezés:

Üzemmód Egyenértékű értékek Magatartás
Optional no, false Titkosítatlan, kivéve, ha a kiszolgáló megköveteli
Mandatory (alapértelmezett) yes, true Titkosított kapcsolat szükséges
Strict (nincs egyenértékű) TDS 8.0 titkosítás; az SQL Server 2022+-t igényli

Jótanács

A 19.2.0-s verziótól kezdve a TDS 8.0-kapcsolatok használhatják a TLS 1.3-at az SQL Server 2022-es vagy újabb verziójához való csatlakozáskor. A ServerCertificate tulajdonságot ebben a verzióban is hozzáadták. További információ: TLS 1.3 támogatása.

A visszamenőleges kompatibilitás érdekében a 19-es verzió az új értékek () mellett az összes 18-at (yesMandatorynoStrict/Optional//) elfogadja.

Alapértelmezett titkosítási viselkedés

verzió Alapértelmezett Result
18 és korábbi no Alapértelmezés szerint titkosítatlan kapcsolatok
19+ Mandatory Alapértelmezés szerint titkosított kapcsolatok

A 18-es verzió működésének visszaállításához adja hozzá az alábbi lehetőségek egyikét a kapcsolati sztringhez:

  • Szolgáltató: Encrypt=Optional;
  • IDataInitialize: Use Encryption for Data=Optional;

Tanúsítványérvényesítési viselkedés

Scenario 18-es verzió 19-es vagy újabb verzió
Ügyfélkészletek Encrypt=no, a kiszolgáló nem kényszeríti a titkosítást Nincs ellenőrzés Nincs ellenőrzés
Ügyfélkészletek Encrypt=no, kiszolgáló kényszeríti a titkosítást Trust Server Certificate Figyelmen kívül hagyja Trust Server Certificate Értékelni
Ügyfélkészletek Encrypt=yes Trust Server Certificate Értékelni Trust Server Certificate Értékelni

Kompatibilitási megjegyzések

Az alapértelmezett beállításokat használó 19-es verziójú ügyfelek nem csatlakoznak, ha a kiszolgáló titkosítást kényszerít, és nem megbízható tanúsítványt használ. Frissítse a Trust Server Certificate beállítást, vagy használjon megbízható tanúsítványt.

TrustServerCertificate nem lett eltávolítva a 19-es verzióban. A lehetőség továbbra is működik. A 18-es verzió figyelmen kívül hagyta ezt a beállítást, amikor Encrypt a beállítás a nokiszolgáló kényszerített titkosítása esetén is megtörtént. A 19-es verzió mostantól minden titkosított forgatókönyvben kiértékeli TrustServerCertificate azokat.

A 19-es verzió illesztője a 19.4.1-es verzió előtt olyan telepítőproblémával rendelkezett, amely a TrustServerCertificate beállításjegyzék beállítását no olyan rendszereken tudta beállítani, amelyeken korábban v18 volt telepítve. Amikor ez a probléma történt, az illesztőprogram a biztonságosabb beállításjegyzék-beállítást használná, ami miatt a kapcsolati sztring beállításai hatástalannak tűnhetnek. Ezt a problémát a 19.4.1-es verzió oldotta meg. A v19 friss telepítése (v18 nélkül) mindig helyesen alapértelmezette a beállításjegyzék beállítását yes. További információ: Beállításjegyzék beállításai.

A kulcsszó formátuma interfészenként eltérő:

  • A szolgáltatói kapcsolati sztringek nem használnak szóközöket: TrustServerCertificate=yes;
  • Az IDataInitialize kapcsolati sztringek szóközöket használnak: Trust Server Certificate=yes;

További információ: Titkosítás és tanúsítványérvényesítés az OLE DB-ben.

A Force Protocol Encryption beállításjegyzék-beállításai

A Force Protocol Encryption beállításjegyzék a titkosítási módokhoz megfeleltetendő numerikus értékeket használ:

Beállításazonosító Titkosítási mód Description
0 Optional Titkosítás csak akkor, ha a kiszolgáló megköveteli
1 Mandatory Titkosítás szükséges
2 Strict TDS 8.0-titkosítás

Az illesztőprogram a beállításjegyzék-beállítás és a kapcsolati tulajdonság közötti legbiztonságosabb beállítást használja. A beállításkulcsok helyéről a Beállításjegyzék beállításai című témakörben olvashat.

A járművezető nevének változása

A 19-es verzió támogatja az egymás melletti telepítést a 18-es verzióval. Az illesztőprogram neve tartalmazza a főverzió számát a differenciáláshoz.

Interfész 18-es verzió 19-es verzió
Szolgáltatói kulcsszó MSOLEDBSQL MSOLEDBSQL19
CLSID-állandó MSOLEDBSQL_CLSID MSOLEDBSQL_CLSID(frissítve)msoledbsql.h
Felhasználói felület megjelenítendő neve Microsoft OLE DB-illesztő az SQL Serverhez Microsoft OLE DB Driver 19 for SQL Server

Migrálási lépések

  1. Adja meg a frissített msoledbsql.h fejlécet a projektben.
  2. For IDBInitialize: Nincs szükség módosításokra (CLSID frissítve a fejlécben).
  3. For IDataInitialize: Change Provider=MSOLEDBSQL to Provider=MSOLEDBSQL19.
  4. Felhasználói felületi eszközök (SSMS, adatkapcsolat tulajdonságai): Válassza a Microsoft OLE DB Driver 19 for SQL Server lehetőséget.

Kapcsolati sztringek példái

18-es verzió (korábban):

Provider=MSOLEDBSQL;Server=myserver;Database=mydb;Trusted_Connection=yes;

19-es verzió (utána):

Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Trusted_Connection=yes;

19-es verzió explicit titkosítási beállításokkal:

Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Encrypt=Mandatory;TrustServerCertificate=no;

19-es verzió szigorú titkosítással (TDS 8.0):

Provider=MSOLEDBSQL19;Server=myserver;Database=mydb;Encrypt=Strict;ServerCertificate=C:\certs\server.cer;

Új 19-es verzió tulajdonságai

A 19-es verzió a bővített tanúsítványérvényesítés tulajdonságait mutatja be titkosítási móddal Strict .

HostNameInCertificate (v19.0.0+)

Megadja a kiszolgáló TLS/SSL-tanúsítványa alapján érvényesítendő állomásnevet. Ezt a tulajdonságot akkor használja, ha a kapcsolati sztring kiszolgálóneve eltér a tanúsítvány köznapi nevétől (CN) vagy tulajdonos alternatív neve (SAN).

Interfész Ingatlan
Szolgáltatói kulcsszó HostNameInCertificate
IDataInitialize kulcsszó Host Name In Certificate
OLE DB tulajdonság SSPROP_INIT_HOST_NAME_CERTIFICATE

Megjegyzés:

Ezt a tulajdonságot a rendszer figyelmen kívül hagyja, ha Trust Server Certificate engedélyezve van. Amikor Encrypt=Stricta rendszer mindig érvényesíti a tanúsítványt.

ServerCertificate (v19.2.0+)

Megadja a tanúsítványfájl elérési útját (PEM, DER vagy CER formátum) a pontos tanúsítványegyeztetéshez. Az illesztőprogram összehasonlítja ezt a tanúsítványt a kiszolgáló tanúsítványával a TLS-kézfogás során.

Interfész Ingatlan
Szolgáltatói kulcsszó ServerCertificate
IDataInitialize kulcsszó Server Certificate
OLE DB tulajdonság SSPROP_INIT_SERVER_CERTIFICATE

Fontos

ServerCertificate csak akkor használható, ha Encrypt=Strict. A használat megkísérlése vagy MandatoryOptional titkosítása csatlakozási hibát eredményez.

Elavult hitelesítési módszerek

ActiveDirectoryPassword

A ActiveDirectoryPassword hitelesítési módszer (Microsoft Entra ID Password authentication) elavult. Ez a hitelesítés az OAuth 2.0 erőforrás-tulajdonosi jelszó hitelesítő adatainak (ROPC) megadásán alapul, amely nem kompatibilis a többtényezős hitelesítéssel (MFA), és biztonsági kockázatot jelent.

Figyelmeztetés

A Microsoft távolodik ettől a magas kockázatú hitelesítési folyamattól, hogy megvédje a felhasználókat a rosszindulatú támadásoktól. A beállítás eltávolítása előtt tervezze meg a biztonságosabb hitelesítési módszerre való migrálást. További információ: Kötelező többtényezős hitelesítés tervezése az Azure-ban.

Scenario Ajánlott hitelesítés Kapcsolati string kulcsszó
Interaktív felhasználói környezet Többtényezős hitelesítés Authentication=ActiveDirectoryInteractive
Az Azure-ban futó alkalmazás Felügyelt identitás Authentication=ActiveDirectoryMSI
Szolgáltatás/démon felhasználó nélkül Szolgáltatásfelelős Authentication=ActiveDirectoryServicePrincipal

További információ: A Microsoft Entra-azonosító használata.

Hibaelhárítás

A kapcsolat tanúsítványérvényesítési hibával meghiúsul

Hibajelenség: A kapcsolat tanúsítványérvényesítési hibával vagy nem megbízható tanúsítványüzenettel meghiúsul.

Ok: A 19-es verzió alapértelmezés szerint érvényes Encrypt=Mandatorykiszolgálótanúsítványt igényel. A 18-es Encrypt=no verzió alapértelmezett értéke (titkosítatlan).

Megoldások:

  • Ajánlott: Megbízható tanúsítvány telepítése a kiszolgálón.
  • Csak fejlesztés: Adja hozzá TrustServerCertificate=yes; a kapcsolati sztringet (éles környezetben nem ajánlott).
  • Tartalék: Hozzáadás Encrypt=Optional; a 18-es verzió visszaállításához (csökkenti a biztonságot).

A kapcsolat meghiúsul a "Kiszolgálótanúsítvány csak szigorú titkosítással használható"

Hibajelenség: A kapcsolat a tulajdonság használatakor ServerCertificate meghiúsul.

Ok: A ServerCertificate tulajdonsághoz szükséges Encrypt=Strict.

Megoldás: Távolítsa el ServerCertificate a kapcsolati sztringet, vagy váltson a következőre Encrypt=Strict;: .

Az alkalmazás VT_BOOL hibaüzenetet kap a Titkosítás tulajdonság beállításakor

Hibajelenség: A logikai értékkel való beállítás SSPROP_INIT_ENCRYPT sikertelen.

Ok: A 19-es verzió a tulajdonságtípust VT_BOOL a következőre VT_BSTRmódosította: .

Megoldás: Logikai értékek helyett sztringértékeket ("Mandatory", "Optional", "Strict", "yes", ) "no"használjon.

A szolgáltató nem található a frissítés után

Hibajelenség: Az alkalmazás a "Szolgáltató nem található" vagy hasonló hibával meghiúsul.

Ok: A 19-es verzió egy másik szolgáltatónevet (MSOLEDBSQL19) használ.

Megoldások:

  • Frissítse a kapcsolati sztringet a között Provider=MSOLEDBSQLProvider=MSOLEDBSQL19.
  • Adja meg a frissített msoledbsql.h fejlécet, ha a CLSID-vel használja IDBInitialize .