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 liste les mots-clés pour les chaînes de connexion et les DSN, ainsi que les attributs de connexion pour SQLSetConnectAttr et SQLGetConnectAttr, disponibles dans le pilote ODBC pour SQL Server.
DSN pris en charge, mots-clés des chaînes de connexion et attributs de connexion
Le tableau suivant liste les mots-clés et attributs disponibles pour chaque plateforme (L : Linux ; M : macOS ; W : Windows). Pour plus d’informations, sélectionnez le mot clé ou l’attribut.
Voici quelques mots-clés et attributs de chaîne de connexion qui ne sont pas documentés dans Using Connection String Keywords with SQL Server Native Client, SQLSetConnectAttr et SQLSetConnectAttr Function.
Description
Décrit la source des données.
SQL_COPT_SS_ANSI_OEM
Contrôle la conversion ANSI vers OEM des données.
| Valeur de l’attribut | Description |
|---|---|
SQL_AO_OFF (valeur par défaut) |
La traduction n’est pas terminée. |
SQL_AO_ON |
La traduction est effectuée. |
SQL_COPT_SS_AUTOBEGINTXN
À partir de la version 17.6, lorsque l’autocommit est désactivé, utilisez cette option pour contrôler le BEGIN TRANSACTION automatique après ROLLBACK ou COMMIT.
| Valeur de l’attribut | Description |
|---|---|
SQL_AUTOBEGINTXN_ON (valeur par défaut) |
BEGIN TRANSACTION automatique après ROLLBACK ou COMMIT. |
SQL_AUTOBEGINTXN_OFF |
Aucun BEGIN TRANSACTION automatique après ROLLBACK ou COMMIT. |
SQL_COPT_SS_FALLBACK_CONNECT
Contrôle l’utilisation des connexions de secours SQL Server. Cette option n’est plus prise en charge.
| Valeur de l’attribut | Description |
|---|---|
SQL_FB_OFF (valeur par défaut) |
Désactive les connexions de secours. |
SQL_FB_ON |
Permet de créer des connexions de secours. |
Nouveaux mots-clés de chaîne de connexion et attributs de connexion
Authentification - SQL_COPT_SS_AUTHENTICATION
Définit le mode d’authentification à utiliser lors de la connexion à SQL Server. Pour plus d’informations, consultez Utilisation de Microsoft Entra ID avec le Pilote ODBC.
| Valeur mot-clé | Valeur de l’attribut | Description |
|---|---|---|
SQL_AU_NONE (valeur par défaut) |
Non défini. La combinaison des autres attributs détermine le mode d’authentification. | |
SqlPassword |
SQL_AU_PASSWORD |
Authentification SQL Server avec nom d’utilisateur et mot de passe. |
ActiveDirectoryIntegrated |
SQL_AU_AD_INTEGRATED |
Authentification intégrée Microsoft Entra. |
ActiveDirectoryInteractive |
SQL_AU_AD_INTERACTIVE |
Authentification interactive de Microsoft Entra. |
ActiveDirectoryMsi |
SQL_AU_AD_MSI |
Authentification d’identité managée Microsoft Entra. Pour l’identité attribuée par l’utilisateur, UID est défini à l’ID de l’objet de l’identité utilisateur. |
ActiveDirectoryServicePrincipal |
SQL_AU_AD_SPA |
Authentification du principal de service Microsoft Entra.
UID est défini sur l’ID client du principal de service.
PWD est réglé sur le secret client. |
ActiveDirectoryPassword |
SQL_AU_AD_PASSWORD |
[DÉCONSEILLÉ] Authentification par mot de passe Microsoft Entra.ActiveDirectoryPassword est déconseillé. Pour plus d’informations, consultez ActiveDirectoryPassword est déconseillé. |
SQL_AU_RESET |
Non défini. Remplace tout paramètre DSN ou de chaîne de connexion. |
Remarque
Lorsque vous utilisez le mot-clé ou l’attribut Authentication, spécifiez explicitement le paramètre Encrypt sur la valeur souhaitée dans la chaîne de connexion, le DSN ou l’attribut de connexion. Pour plus d’informations, consultez Utilisation de mots clés de chaîne de connexion avec SQL Server Native Client.
ChiffrementDeColonne - SQL_COPT_SS_COLUMN_ENCRYPTION
Contrôle le chiffrement transparent des colonnes (Always Encrypted). Pour plus d’informations, consultez Utilisation d’Always Encrypted avec ODBC Driver for SQL Server.
| Valeur mot-clé | Valeur de l’attribut | Description |
|---|---|---|
Enabled |
SQL_CE_ENABLED |
Active la fonctionnalité Always Encrypted. |
Disabled (valeur par défaut) |
SQL_CE_DISABLED |
Désactive Always Encrypted. |
SQL_CE_RESULTSETONLY |
Active le déchiffrement uniquement (résultats et valeurs de retour). |
ConcatNullYieldsNull - SQL_COPT_SS_CONCAT_NULL
Contrôle l’utilisation du traitement ISO de NULL lors de la concaténation de chaînes. Pour plus d’informations, consultez SET CONCAT_NULL_YIELDS_NULL.
| Valeur mot-clé | Valeur de l’attribut | Description |
|---|---|---|
Yes (valeur par défaut) |
SQL_CN_ON |
NULL La concaténation donne NULL. |
No |
SQL_CN_OFF |
NULL La concaténation donne une chaîne. |
Chiffrer
Spécifie si les connexions utilisent le chiffrement TLS sur le réseau. Les valeurs possibles sont yes/mandatory(18.0+), no/optional(18.0+) et strict(18.0+). La valeur par défaut est yes dans la version 18.0+ et no dans les versions précédentes.
Quel que soit le paramètre défini pour Encrypt, les informations de connexion du serveur (nom d’utilisateur et mot de passe) sont toujours chiffrées.
Les paramètres Encrypt, TrustServerCertificate et du côté serveur Force Encryption déterminent si les connexions sont chiffrées sur le réseau. Les tableaux suivants montrent l’effet de ces paramètres.
ODBC Driver 18 et versions ultérieures
| Paramètre de chiffrement | Faire confiance au certificat de serveur | Chiffrement forcé du serveur | Résultat |
|---|---|---|---|
| Non | Non | Non | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur ne sont pas chiffrées. |
| Non | Oui | Non | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur ne sont pas chiffrées. |
| Oui | Non | Non | Le certificat de serveur est vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Oui | Oui | Non | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Non | Non | Oui | Le certificat de serveur est vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Non | Oui | Oui | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Oui | Non | Oui | Le certificat de serveur est vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Oui | Oui | Oui | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Strict | - | - |
TrustServerCertificate est ignoré. Le certificat de serveur est vérifié.Les données envoyées entre le client et le serveur sont chiffrées. |
Remarque
La Strict valeur n’est disponible que sur les serveurs supportant les connexions TDS 8.0.
ODBC Driver 17 et versions antérieures
| Paramètre de chiffrement | Faire confiance au certificat de serveur | Chiffrement forcé du serveur | Résultat |
|---|---|---|---|
| Non | Non | Non | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur ne sont pas chiffrées. |
| Non | Oui | Non | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur ne sont pas chiffrées. |
| Oui | Non | Non | Le certificat de serveur est vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Oui | Oui | Non | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Non | Non | Oui | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Non | Oui | Oui | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Oui | Non | Oui | Le certificat de serveur est vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
| Oui | Oui | Oui | Le certificat de serveur n’est pas vérifié. Les données envoyées entre le client et le serveur sont chiffrées. |
TransparentNetworkIPResolution - SQL_COPT_SS_TNIR
Contrôle la fonction Transparent Network IP Resolution, une solution de secours multi-IP héritée pour le pilote ODBC. Ce paramètre n’affecte pas la séquence de connexion lorsque MultiSubnetFailover=Yes, ce qui constitue le paramètre recommandé pour Azure SQL Database, Azure SQL Managed Instance, la base de données SQL de Microsoft Fabric, les écouteurs de groupes de disponibilité et les instances de cluster de basculement. Pour plus d’informations, voir Utiliser une résolution IP réseau transparente avec le pilote ODBC ou Haute disponibilité et reprise après sinistre.
| Valeur mot-clé | Valeur de l’attribut | Description |
|---|---|---|
Enabled (valeur par défaut) |
SQL_IS_ON |
Permet une résolution IP réseau transparente. |
Disabled |
SQL_IS_OFF |
Désactive la résolution d’adresses IP réseau transparente. |
UseFMTONLY
Contrôle l’utilisation de SET FMTONLY pour les métadonnées lors de la connexion à SQL Server 2012 et versions plus récentes.
| Valeur mot-clé | Description |
|---|---|
No (valeur par défaut) |
À utiliser sp_describe_first_result_set pour les métadonnées si disponible. |
Yes |
Utiliser SET FMTONLY pour les métadonnées. |
Réplication
Spécifie l’utilisation d’une connexion de réplication sur la version 17.8 et les versions ultérieures du pilote ODBC.
| Valeur mot-clé | Description |
|---|---|
No (valeur par défaut) |
La connexion de réplication n’est pas utilisée. |
Yes |
Les déclencheurs comportant l’option NOT FOR REPLICATION ne sont pas activés sur la connexion. |
RetryExec
La logique de nouvelle tentative configurable est disponible à compter de la version 18.1. Elle réexécute automatiquement des appels de fonction ODBC spécifiques sur la base de conditions configurables. Activez cette fonctionnalité via la chaîne de connexion en utilisant le RetryExec mot-clé, ainsi qu’une liste de règles de réessayage. Chaque règle de réessai comporte trois composantes séparées par les deux-points : une correspondance d’erreur, une politique de réessayage et une correspondance de requête.
La correspondance de requête détermine la règle de réessai à utiliser pour une exécution donnée. Il correspond au texte de commande entrant (SQLExecDirect) ou au texte de commande préparé dans l’objet d’instruction (SQLExecute). Si plusieurs règles correspondent, la première règle de correspondance de la liste est utilisée. Ce comportement permet de lister les règles par ordre croissant de généralité. Si aucune règle ne correspond, aucune nouvelle tentative n’est appliquée.
Lorsque l’exécution entraîne une erreur et qu’une règle de réévaluation est applicable, la correspondance d’erreur détermine si l’exécution doit être retentée.
La valeur du RetryExec mot-clé est une liste de règles de retentative séparées par point-virgule.
RetryExec={rule1;rule2}
Une règle de nouvelle tentative se présente comme suit : <errormatch>:<retrypolicy>:<querymatch>
Correspondance des erreurs : une liste de codes d’erreur séparée par des virgules. Par exemple, la spécification
1000,2000liste les codes d’erreur que vous souhaitez réessayer.Politique de réessai : Spécifie le délai jusqu’à la prochaine tentative. Le premier paramètre est le nombre de tentatives, et le second est le délai. Par exemple,
3,10+7cela signifie trois essais commençant à 10, et chaque tentative suivante augmente de 7 secondes. Si vous ne précisez+7pas , chaque tentative suivante double exponentiellement.Correspondance de requêtes : Spécifie la requête que vous souhaitez associer. Si vous ne spécifiez rien, la règle s’applique à toutes les requêtes. Spécifier
SELECTsignifie toutes les requêtes commençant parSELECT.
En combinant les trois composants ensemble pour les utiliser dans une chaîne de connexion :
RetryExec={1000,2000:3,10+7:SELECT}
Cette règle signifie : Pour les erreurs 1000 et 2000 sur une requête commençant par SELECT, réessayez deux fois avec un délai initial de 10 secondes, et ajoutez 7 secondes pour chaque tentative suivante.
Exemples
40501,40540:4,5
Pour les erreurs 40501 et 40540, réessayez jusqu’à quatre fois, avec un délai initial de 5 secondes, et un doublement exponentiel entre chaque retentative. Cette règle s’applique à toutes les requêtes.
49919:2,10+:CREATE
Pour une erreur 49919 sur une requête commençant par CREATE, réessayez au maximum deux fois, d’abord après 10 secondes, puis 20 secondes.
49918,40501,10928:5,10+5:SELECT c1
Pour les erreurs 49918, , et 10928 pour les requêtes commençant par SELECT c1, réessayez jusqu’à cinq fois, en attendant 10 secondes à la première tentative et en augmentant l’attente de 5 secondes 40501par la suite.
Spécifiez les trois règles précédentes ensemble dans la chaîne de connexion comme suit :
RetryExec={49918,40501,10928:5,10+5:SELECT c1;49919:2,10+:CREATE;40501,40540:4,5}
Placez la règle la plus générale (match-all) à la fin, pour permettre aux deux règles plus spécifiques avant elle de correspondre à leurs requêtes respectives.
ClientCertificate
Spécifie le certificat d’authentification avec des connexions en boucle. Cette option n’est disponible que sur SQL Server sur Linux. Les options sont :
| Valeur d’option | Description |
|---|---|
sha1:<hash_value> |
Le pilote ODBC utilise le hachage SHA1 pour localiser un certificat dans le magasin de certificats Windows. |
subject:<subject> |
Le pilote ODBC utilise le sujet pour localiser un certificat dans le magasin de certificats Windows. |
file:<file_location>[,password:<password>] |
le pilote ODBC utilise un fichier de certificat. |
Si le certificat est en PFX format et que la clé privée à l’intérieur PFX du certificat est protégée par mot de passe, incluez le password mot-clé. Pour les certificats aux formats PEM et DER, incluez l’attribut ClientKey.
ClientKey
Spécifie l’emplacement du fichier de la clé privée pour PEM ou DER des certificats spécifiés par l’attribut ClientCertificate . Format :
| Valeur d’option | Description |
|---|---|
file:<file_location>[,password:<password>] |
Précise l’emplacement du fichier à clé privée. |
Si le fichier de clé privée est protégé par mot de passe, incluez le password mot-clé. Si le mot de passe contient des , caractères, ajoutez un caractère supplémentaire , immédiatement après chacun. Par exemple, si le mot de passe est a,b,c, le mot de passe échappé dans la chaîne de connexion est a,,b,,c.
Nom d’hôte dans le certificat
Spécifie le nom d’hôte à attendre dans le certificat du serveur lorsque le chiffrement est négocié, s’il est différent de la valeur par défaut dérivée de Addr, Address, ou Server. L’option HostnameInCertificate est ignorée quand vous utilisez l’option ServerCertificate.
Préférence d’adresse IP
À partir de la version 18.1, utilisez cette option pour spécifier le type d’adresse IP à prioriser pour les connexions.
Les options possibles sont IPv4First, IPv6First, et UsePlatformDefault.
UsePlatformDefault se connecte aux adresses dans l’ordre fourni par l’appel système pour résoudre le nom du serveur. La valeur par défaut est IPv4First, ce qui correspond au comportement des versions précédentes.
certificat de serveur
À partir de la version 18.1, utilisez cette option avec un mode de chiffrement strict. Utilisez le ServerCertificate mot-clé pour spécifier le chemin vers un fichier de certificat à comparer avec le certificat TLS/SSL de SQL Server. La vérification de correspondance est effectuée à la place de la validation standard d’un certificat (expiration, nom d’hôte, chaîne de confiance, etc.). Les formats de certificat acceptés sont PEM, DER et CER. Si vous spécifiez cette option, le certificat SQL Server est vérifié en vérifiant si le ServerCertificate certificat fourni correspond exactement.
SQL_COPT_SS_ACCESS_TOKEN
Utilisez un jeton d’accès Microsoft Entra pour l’authentification. Pour plus d’informations, consultez Utilisation de Microsoft Entra ID avec le Pilote ODBC.
| Valeur de l’attribut | Description |
|---|---|
NULL (valeur par défaut) |
Aucun jeton d’accès n’est fourni. |
ACCESSTOKEN* |
Pointeur vers un jeton d’accès. |
SQL_COPT_SS_CEKEYSTOREDATA
Communique avec une bibliothèque de fournisseur de magasins de clés chargée. Contrôle le chiffrement transparent des colonnes (Always Encrypted). Cet attribut n’a aucune valeur par défaut. Pour plus d’informations, consultez Fournisseurs de magasins de clés personnalisés.
| Valeur de l’attribut | Description |
|---|---|
CEKEYSTOREDATA * |
Structure de données de communication pour la bibliothèque du fournisseur de magasin de clés |
SQL_COPT_SS_CEKEYSTOREPROVIDER
Charge une bibliothèque de fournisseur de magasins de clés pour Always Encrypted, ou récupère les noms des bibliothèques de fournisseur de magasins de clés chargées. Pour plus d’informations, consultez Fournisseurs de magasins de clés personnalisés. Cet attribut n’a aucune valeur par défaut.
| Valeur de l’attribut | Description |
|---|---|
char * |
Chemin vers une bibliothèque de fournisseur de keystore |
SQL_COPT_SS_ENLIST_IN_XA
Pour permettre les transactions XA avec un processeur de transactions (TP) conforme à XA, l’application doit appeler SQLSetConnectAttr avec SQL_COPT_SS_ENLIST_IN_XA et un pointeur vers un XACALLPARAM objet. Cette option est prise en charge sur Windows (17.3+), Linux et macOS.
SQLSetConnectAttr(hdbc, SQL_COPT_SS_ENLIST_IN_XA, param, SQL_IS_POINTER); // XACALLPARAM *param
Pour associer une transaction XA uniquement à une connexion ODBC, spécifiez TRUE ou FALSE avec SQL_COPT_SS_ENLIST_IN_XA à la place du pointeur lors de l’appel à SQLSetConnectAttr. Ce paramètre est seulement valide sur Windows et ne peut pas être utilisé pour spécifier des opérations XA avec une application cliente.
SQLSetConnectAttr(hdbc, SQL_COPT_SS_ENLIST_IN_XA, (SQLPOINTER)TRUE, 0);
| Valeur | Description | Plateformes |
|---|---|---|
XACALLPARAM objet* |
Pointeur vers un objet XACALLPARAM. |
Windows, Linux et macOS |
TRUE |
Associe la transaction XA à la connexion ODBC. Toutes les activités de base de données connexes sont effectuées sous la protection de la transaction XA. | Windows |
FALSE |
Dissocie la transaction de la connexion ODBC. | Windows |
Pour plus d’informations sur les transactions XA, consultez Utilisation de transactions XA.
SQL_COPT_SS_LONGASMAX
Envoie les types de données longs aux serveurs en tant que types de données max.
| Valeur de l’attribut | Description |
|---|---|
No (valeur par défaut) |
Ne convertis pas les types longs en types max lors de l’envoi. |
Yes |
Convertir les données des types longs en types max lors de l’envoi. |
SQL_COPT_SS_SPID
Récupère l’ID de session de la connexion. Cette propriété équivaut à la variable T-SQL @@SPID, mais n’entraîne aucun aller-retour supplémentaire sur le serveur.
| Valeur de l’attribut | Description |
|---|---|
DWORD |
SPID |