Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel beschreibt aktuelle Änderungen zwischen Microsoft ODBC Driver 18 für SQL Server und Version 17.
Die meisten Anwendungen, die von Version 17 auf Version 18 aktualisieren, sind von einer einzigen Änderung betroffen: Verbindungen sind standardmäßig verschlüsselt. Wenn deine Anwendung nach dem Upgrade keine Verbindung mehr hat, lies zuerst das Standard-Verschlüsselungsverhalten .
Zusammenfassung der Änderungen
| Bereich | Version 17 | Version 18 und spätere Versionen |
|---|---|---|
Standardeinstellung Encrypt |
no |
yes |
Encrypt Akzeptierte Werte |
yes, no |
yes, no, Mandatory, Optional, , Strict |
| Verschlüsselungsmodi | An oder an | Aus, an oder streng |
| Überprüfung des Serverzertifikats | Tritt nur auf, wenn man eine Verschlüsselung anfordert. | Tritt standardmäßig auf, weil die Verschlüsselung standardmäßig aktiviert ist |
| Schlüsselwörter für Verbindungszeichenfolgen | Grundmenge | Basisset plus neue Schlüsselwörter |
Verschlüsselungsänderungen
Standardverschlüsselungsverhalten
In Version 17 sind Verbindungen nicht verschlüsselt, es sei denn, du bittest um Verschlüsselung oder der Server verlangt sie. In Version 18 und späteren Versionen sind die Verbindungen standardmäßig verschlüsselt.
Da der Treiber das Serverzertifikat validiert, wenn er eine Verbindung verschlüsselt, verbindet sich eine Anwendung, die mit einem selbst signierten oder anderweitig nicht vertrauenswürdigen Zertifikat mit einem Server verbunden ist, erfolgreich mit Version 17 und scheitert mit Version 18. Der Fehler ist ein Zertifikatsvalidierungsfehler, kein Authentifizierungsfehler.
Sie haben drei Möglichkeiten, es zu lösen, von am sichersten bis am wenigsten sicher:
- Installiere ein Zertifikat auf dem Server, dem der Client vertraut. Diese Option ist die empfohlene und die einzige, die sowohl Verschlüsselung als auch Validierung beibehält.
- Lassen Sie die Verschlüsselung aktiviert und sagen Sie dem Treiber, welchen Namen er validieren soll, indem Sie oder
ServerCertificatesetzenHostNameInCertificate. - Schalte die Verschlüsselung aus, um die Standardversion 17 wiederherzustellen, indem du die Verbindungszeichenfolge hinzufügst
Encrypt=no.
Caution
Die Einstellung TrustServerCertificate=yes hält die Verbindung verschlüsselt, deaktiviert aber die Zertifikatsvalidierung, wodurch die Verbindung für Angriffe durch Gegner-in-der-Mitte offen bleibt. Bevorzuge ein vertrauenswürdiges Zertifikat.
Verschlüssele Werte
Version 17 akzeptiert nur yes und no. Version 18 und spätere Versionen akzeptieren diese Werte und fügen drei weitere hinzu:
| Wert | Entspricht | Behavior |
|---|---|---|
Mandatory |
yes |
Die Verbindung ist verschlüsselt. |
Optional |
no |
Die Verbindung ist nicht verschlüsselt, es sei denn, der Server verlangt es. |
Strict |
Nichts | Die Verbindung verwendet TDS-8.0-Verschlüsselung. |
Strict hat kein Pendant zur Version 17. Es ist der einzige Wert, der TDS 8.0 auswählt, bei dem die Verschlüsselung vor dem Login-Austausch und nicht währenddessen ausgehandelt wird.
Verschlüsselungsverhalten von Version 17 wiederherstellen
Um das Standardverhalten der Version 17 wiederherzustellen, setzen Encrypt Sie explizit:
Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;
Das explizite Setzen des Wertes ist auch auf Version 17 vorteilhaft, da sich der Verbindungszeichenfolge auf beiden Versionen gleich verhält.
Neue Verbindungszeichenfolge-Schlüsselwörter
Version 18 fügt folgende Verbindungszeichenfolge-Schlüsselwörter hinzu, die Version 17 nicht erkennt:
| Keyword | Purpose |
|---|---|
ConcatNullYieldsNull |
Kontrolliert, ob das Zusammenfügen eines Nullwerts null ergibt. |
GetDataExtensions |
Kontrolliert, welche SQLGetData Erweiterungen der Treiber aktiviert. |
HostNameInCertificate |
Spezifiziert den Hostnamen, der im TLS-Zertifikat des Servers validiert werden soll. |
IpAddressPreference |
Spezifiziert die IP-Adressfamilie, die der Treiber zuerst versucht. |
LongAsMax |
Mappt lange Datentypen auf ihre max Äquivalente. |
RetryExec |
Konfiguriert die Regeln für Wiederholungen für fehlgeschlagene Abfragen. |
ServerCertificate |
Spezifiziert den Pfad zu einer Zertifikatsdatei, gegen die der Server validiert wird. |
Einzelne Schlüsselwörter wurden in verschiedenen Version 18-Versionen eingeführt. Für die Veröffentlichung, die jedes Schlüsselwort einführte, und für die vollständige Schlüsselwortreferenz siehe ODBC DSN und Verbindungszeichenfolge Keywords.