Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel beschrijft brekende wijzigingen tussen Microsoft ODBC Driver 18 voor SQL Server en versie 17.
De meeste applicaties die upgraden van versie 17 naar versie 18 worden door één wijziging getroffen: verbindingen zijn standaard versleuteld. Als je applicatie na de upgrade stopt met verbinden, lees dan eerst het standaardversleutelingsgedrag.
Overzicht van wijzigingen
| Area | Versie 17 | Versie 18 en latere versies |
|---|---|---|
Standaardinstelling Encrypt |
no |
yes |
Encrypt Geaccepteerde waarden |
yes, no |
yes, no, Mandatory, Optional, , Strict |
| Versleutelingsmodi | Aan of aan | Uit, aan of strikt |
| Validatie van servercertificaat | Het gebeurt niet tenzij je om encryptie vraagt | Dit gebeurt standaard, omdat encryptie standaard aan staat |
| Trefwoorden voor verbindingsreeks | Basisset | Basisset plus nieuwe trefwoorden |
Versleutelingswijzigingen
Standaardgedrag voor versleuteling
In versie 17 zijn verbindingen niet versleuteld, tenzij je om encryptie vraagt of de server het vereist. In versie 18 en latere versies zijn verbindingen standaard versleuteld.
Omdat de driver het servercertificaat valideert telkens wanneer hij een verbinding versleutelt, maakt een applicatie die verbinding maakt met een server met een zelfondertekend of anderszins onbetrouwbaar certificaat succesvol verbinding met versie 17 en faalt met versie 18. De fout is een certificaatvalidatiefout, geen authenticatiefout.
Je hebt drie manieren om het op te lossen, van meest tot minst veilig:
- Installeer een certificaat op de server dat de client vertrouwt. Deze optie wordt aanbevolen en is de enige die zowel encryptie als validatie behoudt.
- Houd encryptie aan en vertel de driver welke naam hij moet valideren, door of
ServerCertificatein te stellenHostNameInCertificate. - Schakel de encryptie uit om de standaard versie 17 te herstellen, door toe te voegen
Encrypt=noaan de verbindingsreeks.
Caution
Door de verbinding te stellen TrustServerCertificate=yes blijft de verbinding versleuteld, maar wordt certificaatvalidatie uitgeschakeld, waardoor de verbinding kwetsbaar is voor aanvallen van het midden van de tegenstander. Geef de voorkeur aan een vertrouwd certificaat.
Versleutel waarden
Versie 17 accepteert alleen yes en no. Versie 18 en latere versies accepteren deze waarden en voegen er drie extra toe:
| Value | Gelijk aan | Gedrag |
|---|---|---|
Mandatory |
yes |
De verbinding is versleuteld. |
Optional |
no |
De verbinding is niet versleuteld tenzij de server dat vereist. |
Strict |
Geen | De verbinding gebruikt TDS 8.0-encryptie. |
Strict heeft geen equivalent van versie 17. Het is de enige waarde die TDS 8.0 selecteert, waarbij encryptie wordt onderhandeld vóór de login-uitwisseling in plaats van tijdens deze uitwisseling.
Herstel het encryptiegedrag van versie 17
Om het standaardgedrag van versie 17 te herstellen, stel expliciet in Encrypt :
Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;
Het expliciet instellen van de waarde is zelfs op versie 17 voordelig, omdat het ervoor zorgt dat de verbindingsreeks zich op beide versies hetzelfde gedraagt.
Nieuwe verbindingsreeks-sleutelwoorden
Versie 18 voegt de volgende verbindingsreeks-zoekwoorden toe, die versie 17 niet herkent:
| Keyword | Purpose |
|---|---|
ConcatNullYieldsNull |
Bepaalt of het samenvoegen van een nulwaarde nul oplevert. |
GetDataExtensions |
Bepaalt welke SQLGetData uitbreiding de driver inschakelt. |
HostNameInCertificate |
Specificeert de hostnaam die gevalideerd moet worden in het TLS-certificaat van de server. |
IpAddressPreference |
Geeft de IP-adresfamilie aan die de driver als eerste probeert. |
LongAsMax |
Kaarten lange datatypes af naar hun max equivalenten. |
RetryExec |
Stelt herkansingsregels in voor mislukte zoekopdrachten. |
ServerCertificate |
Specificeert het pad naar een certificaatbestand om de server tegen te valideren. |
Individuele trefwoorden werden geïntroduceerd in verschillende versies 18. Voor de release waarin elk trefwoord werd geïntroduceerd, en voor de volledige trefwoordreferentie, zie ODBC DSN en verbindingsreeks keywords.