Főbb verzióbeli különbségek a Microsoft ODBC Driver for SQL Server-ben

Ez a cikk leírja a Microsoft ODBC Driver 18 for SQL Server és a 17-es verzió közötti törésszerű változásokat.

A legtöbb alkalmazást, amely a 17-es verzióról a 18-as verzióra frissít, egyetlen változás érinti: a kapcsolatok alapértelmezés szerint titkosítva vannak. Ha az alkalmazásod nem csatlakozik a frissítés után, először olvasd el az alapértelmezett titkosítási viselkedést .

Módosítások összefoglalása

Area 17-es verzió 18-as verzió és későbbi változatok
Alapértelmezett Encrypt beállítás no yes
Encrypt Elfogadott értékek yes, no yes, no, Mandatory, Optional, Strict
Titkosítási módok Kikapcsolva vagy be Kikapcsolva, bekapcsolva, vagy szigorúan
Kiszolgálótanúsítvány érvényesítése Ez nem történik meg, hacsak nem kérsz titkosítást Alapértelmezetten történik, mert a titkosítás alapértelmezetten be van kapcsolva
Kapcsolati karakterlánc kulcsszavak Alapkészlet Alapkészlet és új kulcsszavak

Titkosítási változások

Alapértelmezett titkosítási viselkedés

A 17-es verzióban a kapcsolatok nincsenek titkosítva, hacsak nem kérsz titkosítást, vagy a szerver nem követeli azt. A 18-as és későbbi verziókban a kapcsolatok alapértelmezetten titkosítottak.

Mivel az illesztőprogram minden alkalommal érvényesíti a szerver tanúsítványt, amikor titkosít egy kapcsolatot, az egy alkalmazás, amely egy szerverhez csatlakozik önalázott vagy más módon nem megbízható tanúsítvánnyal, sikeresen csatlakozik a 17-es verzióhoz, és a 18-as verzióval megbukik. A hiba tanúsítvány ellenőrző hiba, nem hitelesítési hiba.

Három módja van a megoldásnak, a legbiztonságosabbtól a legkevésbé biztonságos állapotáig:

  • Telepíts egy tanúsítványt arra a szerverre, amelyben az ügyfél megbízik. Ez az opció a javasolt, és ez az egyetlen, amely egyszerre fenntartja a titkosítást és a hitelesítést.
  • Tartsd bekapcsolva a titkosítást, és mondd meg a meghajtónak, melyik nevet validálja, vagy beállítással HostNameInCertificateServerCertificate.
  • Kapcsold ki a titkosítást, hogy visszaállítsd a 17-es verzió alapértelmezett állapotát, hozzáadva Encrypt=no a kapcsolati karakterlánc-hez.

Caution

A beállítás TrustServerCertificate=yes titkosítva tartja a kapcsolatot, de letiltja a tanúsítvány ellenőrzését, így a kapcsolat nyitott marad a középpontban lévő támadó támadások előtt. Inkább megbízható tanúsítványt preferálok.

Titkosítási értékek

A 17-es verzió csak yes és noa rendszereket fogadja. A 18-as verzió és későbbi verziók elfogadják ezeket az értékeket, és további három értéket adnak hozzá:

Value Egyenértékű valamivel Magatartás
Mandatory yes A kapcsolat titkosított.
Optional no A kapcsolat nincs titkosítva, hacsak a szerver nem követeli el.
Strict Nincs A kapcsolat TDS 8.0 titkosítást használ.

Strict nincs 17-es verzió megfelelője. Ez az egyetlen érték, amely TDS 8.0-t választ, ahol a titkosítást a bejelentkezés előtti tárgyalás végzi, nem pedig a bejelentkezés során.

Visszaállítás a 17-es verziós titkosítási viselkedés

A 17-es verzió alapértelmezett viselkedésének visszaállításához Encrypt állítsuk be expliciten:

Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;

Az érték explicit beállítása még a 17-es verzióban is hasznos, mert mindkét verzióban ugyanúgy viselkedik a kapcsolati karakterlánc.

Új kapcsolati karakterlánc kulcsszavak

A 18-as verzió a következő kapcsolati karakterlánc kulcsszavakat tartalmazza, amelyeket a 17-es verzió nem ismer fel:

Keyword Alkalmazás célja
ConcatNullYieldsNull Szabályozza, hogy nullérték összekötése nulla eredményt eredményez-e.
GetDataExtensions Szabályozza, mely SQLGetData kiterjesztéseket engedélyezi a driver.
HostNameInCertificate Megadja a szerver TLS tanúsítványában érvényesítendő hosztnevet.
IpAddressPreference Megadja az IP-címcsaládot, amit az illesztőprogram először próbál.
LongAsMax A hosszú adattípusokat a max megfelelőikhez képezi le.
RetryExec Újrapróbálkozási szabályokat konfigurál sikertelen lekérdezésekre.
ServerCertificate Megadja a tanúsítványfájlhoz vezető útvonalat, amellyel a szervert ellen validálják.

Egyedi kulcsszavakat vezettek be különböző 18-as verziókban. Az adott kulcsszót bemutató kiadásért és a teljes kulcsszó-hivatkozásért lásd az ODBC DSN és a kapcsolati karakterlánc kulcsszavakat.