Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit les changements marquants entre le pilote ODBC 18 de Microsoft pour SQL Server et la version 17.
La plupart des applications qui passent de la version 17 à la version 18 sont affectées par un seul changement : les connexions sont chiffrées par défaut. Si votre application cesse de se connecter après la mise à jour, lisez d’abord « Comportement de chiffrement par défaut ».
Récapitulatif des modifications
| Area | Version 17 | Version 18 et versions ultérieures |
|---|---|---|
Réglage par défaut Encrypt |
no |
yes |
Encrypt Valeurs acceptées |
yes, no |
yes, no, Mandatory, Optional, Strict |
| Modes de chiffrement | De temps en temps | Éteint, allumé ou strict |
| Validation de certificat de serveur | Cela ne se produit que si vous demandez le chiffrement | Cela se produit par défaut, car le chiffrement est activé par défaut |
| Mots-clés de chaîne de connexion | Ensemble de base | Ensemble de base plus nouveaux mots-clés |
Modifications du chiffrement
Comportement de chiffrement par défaut
Dans la version 17, les connexions ne sont chiffrées que si vous demandez le chiffrement ou que le serveur l’exige. Dans la version 18 et les versions ultérieures, les connexions sont chiffrées par défaut.
Parce que le pilote valide le certificat serveur chaque fois qu’il chiffre une connexion, une application qui se connecte à un serveur avec un certificat auto-signé ou autrement non fiable se connecte avec succès avec la version 17 et échoue avec la version 18. L’échec est une erreur de validation de certificat, et non une erreur d’authentification.
Vous avez trois façons de le résoudre, listées du plus au moins sécurisé :
- Installez un certificat sur le serveur auquel le client a confiance. Cette option est la recommandée, et c’est la seule qui conserve à la fois le chiffrement et la validation.
- Gardez le chiffrement activé et indiquez au pilote quel nom valider, en définissant
HostNameInCertificateouServerCertificate. - Désactivez le chiffrement pour restaurer la version 17 par défaut, en ajoutant
Encrypt=noà la chaîne de connexion.
Avertissement
Le réglage TrustServerCertificate=yes maintient la connexion chiffrée mais désactive la validation du certificat, ce qui laisse la connexion ouverte aux attaques adversaires intermédiaires. Privilégiez un certificat fiable.
Chiffrer les valeurs
La version 17 n’accepte que yes et no. La version 18 et les versions ultérieures acceptent ces valeurs et en ajoutent trois autres :
| Value | Équivalent à | Comportement |
|---|---|---|
Mandatory |
yes |
La connexion est chiffrée. |
Optional |
no |
La connexion n’est chiffrée que si le serveur l’exige. |
Strict |
None | La connexion utilise le chiffrement TDS 8.0. |
Strict il n’existe pas d’équivalent version 17. C’est la seule valeur qui sélectionne TDS 8.0, où le chiffrement est négocié avant l’échange de connexion plutôt que pendant celui-ci.
Restaurez le comportement de chiffrement de la version 17
Pour restaurer le comportement par défaut de la version 17, définissez Encrypt explicitement :
Driver={ODBC Driver 18 for SQL Server};Server=<server>;Database=<database>;UID=<user_id>;PWD=<password>;Encrypt=no;
Définir explicitement la valeur est bénéfique même sur la version 17, car cela fait que la chaîne de connexion se comporte de la même manière sur les deux versions.
Nouveaux mots-clés pour chaîne de connexion
La version 18 ajoute les mots-clés suivants pour chaîne de connexion, que la version 17 ne reconnaît pas :
| Mot clé | Purpose |
|---|---|
ConcatNullYieldsNull |
Contrôle si concaténer une valeur nulle donne nulle. |
GetDataExtensions |
Contrôle quelles SQLGetData extensions le pilote permet. |
HostNameInCertificate |
Spécifie le nom d’hôte à valider dans le certificat TLS du serveur. |
IpAddressPreference |
Spécifie la famille d’adresses IP que le pilote essaie en premier. |
LongAsMax |
Associe les types de données longs à leurs max équivalents. |
RetryExec |
Configure les règles de réessai pour les requêtes échouées. |
ServerCertificate |
Spécifie le chemin vers un fichier de certificat pour valider le serveur. |
Des mots-clés individuels ont été introduits dans différentes versions de la version 18. Pour la version qui introduisait chaque mot-clé, et pour la référence complète des mots-clés, voir ODBC DSN et mots-clés de chaîne de connexion.