Définition des propriétés de connexion

Télécharger le pilote JDBC

Les propriétés de chaîne de connexion peuvent être spécifiées de plusieurs manières :

  • En tant que propriétés nom=valeur dans l’URL de connexion, lors de la connexion à l’aide de la classe DriverManager. Pour connaître la syntaxe de la chaîne de connexion, consultez Génération de l’URL de connexion.

  • En tant que propriétés nom=valeur dans le paramètre Properties de la méthode Connect de la classe DriverManager.

  • En tant que valeurs dans la méthode setter appropriée de la source de données du pilote. Par exemple :

    datasource.setServerName(value)
    datasource.setDatabaseName(value)
    

Notes

Les noms de propriétés ne sont pas sensibles à la casse et les noms de propriétés dupliqués sont résolus dans l'ordre suivant :

  1. Arguments API (utilisateur et mot de passe)
  2. Collection de propriétés
  3. Dernière instance de la chaîne de connexion

Les valeurs inconnues sont autorisées dans les noms de propriétés. Le pilote JDBC ne valide pas les valeurs sensibles à la casse.

Les synonymes sont autorisés et sont résolus dans l'ordre, tout comme les noms de propriétés dupliqués.

Propriétés

Le tableau suivant répertorie toutes les propriétés de chaîne de connexion actuellement disponibles pour le pilote JDBC.

Propriété
Type
Default
Description
accessToken

String

null
(Version 6.0+) Utilisez cette propriété pour vous connecter à une base de données à l’aide d’un jeton d’accès. Il n’est pas possible de définir accessToken avec l’URL de connexion.
accessTokenCallbackClass

Chaîne

null
(Version 12.4+) Nom de la classe d’implémentation de rappel à utiliser avec le rappel de jeton d’accès.
applicationIntent

String

Lecture/écriture
(Version 6.0+) Déclare le type de la charge de travail de l’application pour se connecter à un serveur.

Les valeurs possibles sont ReadOnly et ReadWrite.

Pour plus d’informations sur la reprise d’activité, consultez Prise en charge de la haute disponibilité et de la reprise d’activité par le pilote JDBC.
applicationName

String
[<=128 char]

null
Nom de l’application, ou « Microsoft JDBC Driver pour SQL Server » si aucun nom n’est fourni.

Utilisé pour identifier l’application spécifique dans les divers outils de journalisation et de profilage SQL Server.
Authentification

String

NotSpecified
(Version 6.0+) Cette propriété facultative indique la méthode d’authentification à utiliser pour la connexion. Les valeurs possibles sont ActiveDirectoryIntegrated, ActiveDirectoryPassword, ActiveDirectoryManagedIdentity (version 12.2+), ActiveDirectoryMSI (version 7.2+), ActiveDirectoryInteractive (version 9.2+), ActiveDirectoryServicePrincipal (version 9.2+), SqlPassword et NotSpecified (valeur par défaut).

Utilisez ActiveDirectoryIntegrated (version 6.0+) pour vous connecter à SQL avec l’authentification intégrée de Windows.

Utilisez ActiveDirectoryPassword (version 6.0+) pour vous connecter à SQL à l’aide d’un nom de principal et d’un mot de passe Microsoft Entra.

Utilisez ActiveDirectoryManagedIdentity (version 12.2+) ou ActiveDirectoryMSI (version 7.2+) pour vous connecter à SQL à partir d’une ressource Azure. Par exemple, une machine virtuelle Azure, App Service ou une application de fonction en utilisant l’authentification d’identités managées.

Les deux types d’identités managées pris en charge par le pilote en utilisant le mode d’authentification ActiveDirectoryManagedIdentity ou ActiveDirectoryMSI sont les suivants :
1. Identité managée affectée par le système : permet d’acquérir accessToken par défaut.
2. Identité managée affectée par l’utilisateur : permet d’acquérir accessToken si l’ID client d’une identité managée est spécifié avec la propriété de connexion msiClientId.

Utilisez ActiveDirectoryInteractive pour vous connecter à une base de données en utilisant un flux d’authentification interactif.

Utilisez ActiveDirectoryServicePrincipal (version 9.2+) pour vous connecter à une base de données en utilisant le secret et l’ID client d’une identité de principal de service. Spécifiez l’ID client dans la propriété Nom d'utilisateur et le secret dans la propriété Mot de passe (10.2 +).

Utilisez SqlPassword pour vous connecter à SQL avec les propriétés userName/user et password.

Utilisez NotSpecified si aucune de ces méthodes d’authentification n’est nécessaire.

Important : si l’authentification est définie sur ActiveDirectoryIntegrated, les deux bibliothèques suivantes doivent être installées : mssql-jdbc_auth-<version>-<arch>.dll (disponible dans le package de pilotes JDBC) et la bibliothèque d’authentification Microsoft pour SQL Server (ADAL.DLL). La bibliothèque d’authentification Microsoft peut être installée à partir de Microsoft ODBC Driver for SQL Server ou de Microsoft OLE DB Driver pour SQL Server. Le pilote JDBC ne prend en charge que les versions 1.0.2028.318 et ultérieures d’ADAL.DLL.

Remarque : quand la propriété d’authentication est définie avec une valeur autre que NotSpecified, le pilote utilise par défaut le chiffrement TLS (Transport Layer Security), anciennement SSL (Secure Sockets Layer).

Pour plus d’informations sur la configuration de l’authentification Microsoft Entra, consultez Utilisation de l’authentification Microsoft Entra.
authenticationScheme

String

NativeAuthentication
Indique le genre de sécurité intégrée que votre application doit utiliser. Les valeurs possibles sont JavaKerberos, NTLM (version 7.4+) et NativeAuthentication (par défaut).

NativeAuthentication fait que le pilote charge mssql-jdbc_auth-<version>-<arch>.dll (par exemple mssql-jdbc_auth-8.2.2.x64.dll) sur Windows, qui est utilisé pour obtenir les informations d’authentification intégrées.

(La bibliothèque d’authentification native chargée est nommée sqljdbc_auth.dll lors de l’utilisation des versions 6.0 à 7.4 du pilote.)

Si vous utilisez authenticationScheme=JavaKerberos, vous devez spécifier le nom de domaine complet (FQDN) dans la propriété serverName ou la propriété serverSpn. Sinon, une erreur se produit (serveur introuvable dans la base de données Kerberos).

Pour plus d’informations sur l’utilisation de authenticationScheme=JavaKerberos, consultez Utilisation de l’authentification intégrée Kerberos pour se connecter à SQL Server.

Si vous utilisez authenticationScheme=NTLM, vous devez spécifier le domaine Windows à l’aide de la propriété domain ou domainName, les informations d’identification Windows dans la propriété user ou userName, et la propriété password. Sinon, une erreur se produit (les propriétés de connexion doivent être spécifiées).
calcBigDecimalPrecision

booléen
["true" | "false"]

false
(Version 12.6+) Indicateur qui spécifie si le pilote doit calculer la précision pour les entrées BigDecimal, au lieu d’utiliser la valeur maximale autorisée pour la précision (38).
cancelQueryTimeout

int

-1
(Version 6.4+) Cette propriété peut être utilisée pour annuler un délai queryTimeout défini sur la connexion. L’exécution de la requête se bloque et ne lève pas d’exception si la connexion TCP au serveur est annulée en mode silencieux. Cette propriété s’applique uniquement si « queryTimeout » est également défini sur la connexion.

Le pilote attend la valeur totale en secondes de cancelQueryTimeout + queryTimeout pour annuler la connexion et fermer le canal.

La valeur par défaut de cette propriété est -1 et le comportement consiste à attendre indéfiniment.
clientCertificate

String

null
(Version 8.4+) Spécifie l’emplacement du certificat à utiliser pour l’authentification par certificat client. Le pilote JDBC prend en charge les extensions de fichier PFX, PEM, DER et CER.

Pour plus d’informations, consultez Authentification par certificat client pour les scénarios de bouclage.
clientKey

Chaîne

null
(Version 8.4+) Spécifie l’emplacement de la clé privée pour les certificats PEM, DER et CER spécifiés par l’attribut clientCertificate.

Pour plus d’informations, consultez Authentification par certificat client pour les scénarios de bouclage.
clientKeyPassword

Chaîne

null
(Version 8.4+) Spécifie la chaîne de mot de passe facultative pour accéder à la clé privée du fichier clientKey.

Pour plus d’informations, consultez Authentification par certificat client pour les scénarios de bouclage.
columnEncryptionSetting

String
["Enabled" | "Disabled"]

Désactivé
(Version 6.0+) Affectez la valeur « Enabled » pour utiliser la fonctionnalité Always Encrypted (AE). Quand la fonctionnalité AE est activée, le pilote JDBC chiffre et déchiffre de manière transparente les données sensibles stockées dans des colonnes de base de données chiffrées sur le serveur.

Pour plus d’informations sur Always Encrypted, consultez Utilisation d’Always Encrypted avec le pilote JDBC.

Remarque : Always Encrypted est disponible avec SQL Server 2016 ou version ultérieure et Azure SQL Database.
connectRetryCount

int
[0..255]

1
(Version 9.4+) Nombre de nouvelles tentatives de connexion en cas d’échec de connexion.
connectRetryInterval

int
[1..60]

10
(Version 9.4+) Nombre de secondes entre les nouvelles tentatives de connexion.
databaseName,
database

String
[<=128 char]

null
Nom de la base de données à laquelle se connecter.

S'il n'est pas indiqué, une connexion à la base de données par défaut est établie.
datetimeParameterType

String
["datetime" | "datetime2" | "datetimeoffset"]

datetime2
(Version 12.2+) Type de données SQL à utiliser pour les paramètres date/timestamp Java.

Les clients qui se connectent à SQL Server 2016 ou ultérieur et qui interagissent avec des valeurs « datetime » héritées peuvent définir la propriété sur « datetime » pour atténuer les problèmes de conversion côté serveur entre les valeurs « datetime » et « datetime2 ». Pour plus d’informations, découvrez comment gérer le changement de comportement lié à la conversion de valeurs datetime en datetime2 à partir de SQL Server 2016.
delayLoadingLobs

boolean
["true" | "false"]

true
Indicateur qui spécifie s’il faut ou non diffuser en continu tous les objets LOB récupérés de ResultSet. Si cette propriété est définie sur « false », l’intégralité de l’objet LOB est chargée dans la mémoire sans diffusion en continu.
domainName,
domaine

String
null
(Version 7.4+) Domaine Windows auprès duquel s’authentifier lors de l’utilisation de l’authentification NTLM.
disableStatementPooling

boolean
["true" | "false"]

true
Indicateur spécifiant si le regroupement d’instructions doit être utilisé.
enablePrepareOnFirst...
PreparedStatementCall

boolean
["true" | "false"]

false
Affectez la valeur « true » pour activer la création du descripteur d’instruction préparée en appelant sp_prepexec lors de la première exécution d’une instruction préparée.

Affectez la valeur « false » pour modifier la première exécution d’une instruction préparée afin d’appeler sp_executesql et de ne pas préparer d’instruction. Si une deuxième exécution se produit, elle appelle sp_prepexec pour configurer un descripteur d’instruction préparée.
enclaveAttestationUrl

String

null
(Version 8.2+) Cette propriété facultative indique l’URL de point de terminaison du service d’attestation à utiliser pour Always Encrypted avec enclaves sécurisées.

Pour plus d’informations sur Always Encrypted avec enclaves sécurisées, consultez Always Encrypted avec enclaves sécurisées.
enclaveAttestationProtocol

String

null
(Version 8.2+) Cette propriété facultative indique le protocole d’attestation à utiliser pour Always Encrypted avec enclaves sécurisées. Actuellement, les seules valeurs prises en charge pour ce champ sont HGS, AAS et NONE (NONE n’est prise en charge que dans la version 11.2+).

Pour plus d’informations sur Always Encrypted avec enclaves sécurisées, consultez Always Encrypted avec enclaves sécurisées.
encrypt

String

null
Affecter la valeur « true » pour spécifier que SQL Server utilise le chiffrement TLS pour toutes les données envoyées entre le client et le serveur si le serveur a un certificat installé. La valeur par défaut est « true » dans la version 10.2 et versions ultérieures et « false » dans 9.4 et versions ultérieures.

Dans les versions 6.0 et ultérieures, un nouveau paramètre de connexion « authentification » utilise le chiffrement TLS par défaut.

Pour plus d’informations sur cette propriété, reportez-vous à la propriété « authentication ».

Dans la version 11.2.0 et les versions supérieures, le chiffrement a été modifié de booléen à chaîne, ce qui permet la prise en charge de TDS 8.0 lorsque la propriété est définie sur stricte.
failoverPartner

String

null
Nom du serveur de basculement utilisé dans la configuration de la mise en miroir de bases de données. Cette propriété est utilisée en cas d’échec de connexion initiale au serveur principal. Une fois que vous avez effectué la connexion initiale, cette propriété est ignorée. Doit être utilisée avec la propriété databaseName.

Remarque : Le pilote ne prend pas en charge la spécification du numéro de port de l’instance du serveur pour l’instance du partenaire de basculement dans le cadre de la propriété failoverPartner dans la chaîne de connexion. Toutefois, la spécification des propriétés serverName, instanceName et portNumber de l’instance du serveur principal et la propriété failoverPartner de l’instance du partenaire de basculement dans la même chaîne de connexion est prise en charge.

Si vous spécifiez un nom de réseau virtuel dans la propriété de connexion Server, vous ne pouvez pas utiliser la mise en miroir de bases de données. Pour plus d’informations sur la reprise d’activité, consultez Prise en charge de la haute disponibilité et de la reprise d’activité par le pilote JDBC.
fips

boolean
["true" | "false"]

"false"
Pour la machine virtuelle Java (JVM) compatible FIPS, cette propriété doit être true.
fipsProvider

String

null
Fournisseur FIPS configuré dans la machine virtuelle Java, par exemple BCFIPS ou SunPKCS11-NSS. Supprimé dans la version 6.4.0. Pour plus d’informations, consultez le problème GitHub n° 460.
gsscredential

org.ietf.jgss.GSSCredential

null
(Version 6.2 +) Les informations d’identification de l’utilisateur à utiliser pour la délégation Kerberos contrainte peuvent être transmises dans cette propriété.

Ce paramètre doit être utilisé avec integratedSecurity défini sur true et JavaKerberos défini sur authenticationScheme.
hostNameInCertificate

String

null
Nom d’hôte à utiliser pour valider le certificat SQL Server TLS/SSL.

Si la propriété hostNameInCertificate n'est pas spécifiée ou si elle a la valeur Null, le pilote JDBC Microsoft pour SQL Server utilise la valeur de propriété serverName sur l'URL de connexion comme nom d'hôte pour valider le certificat TLS/SSL SQL Server.

Remarque : cette propriété est utilisée en association avec les propriétés chiffrer/authentication et la propriété trustServerCertificate. Cette propriété affecte la validation du certificat si la connexion utilise le chiffrement TLS et que trustServerCertificate est définie sur « false ». Pour garantir une connexion TLS, vérifiez que la valeur passée à hostNameInCertificate correspond au nom CN (Nom commun) ou DNS dans le nom SAN (Autre nom du sujet) du certificat de serveur. Pour plus d’informations sur la prise en charge du chiffrement, consultez Comprendre la prise en charge du chiffrement.
INSTANCENAME

String
[<=128 char]

null
Nom de l’instance de base de données à laquelle se connecter. Si elle n’est pas spécifiée, une connexion à l’instance par défaut est établie. Si l'instanceName et le port sont tous deux spécifiés, consultez les notes relatives au port.

Si vous spécifiez un nom de réseau virtuel dans la propriété de connexion Server, vous ne pouvez pas utiliser la propriété de connexion instanceName. Pour plus d’informations sur la reprise d’activité, consultez Prise en charge de la haute disponibilité et de la récupération d’urgence par le pilote JDBC.
integratedSecurity

boolean
["true"|"false"]

false
Affectez la valeur « true » pour indiquer que les informations d’identification Windows sont utilisées par SQL Server sur les systèmes d’exploitation Windows. Si la valeur est « true », le pilote JDBC recherche des informations d’identification fournies lors de la connexion de l’utilisateur à l’ordinateur ou au réseau dans la mémoire cache des informations d’identification de l’ordinateur local.

Affectez la valeur « true » (avec authenticationscheme=JavaKerberos) pour indiquer que SQL Server utilise les informations d'identification Kerberos. Pour plus d’informations sur l’authentification Kerberos, consultez Utilisation de l’authentification intégrée Kerberos pour se connecter à SQL Server.

Affectez la valeur « true » (avec authenticationscheme=NTLM) pour indiquer que SQL Server utilise les informations d’identification NTLM.

Si la valeur est « false », le nom d'utilisateur et le mot de passe doivent être fournis.
ipaddresspreference

String
[<=128 char]

IPv4First
Préférence IP utilisée par l’application cliente.

Avec IPV4First, le pilote parcourt d’abord les adresses IPv4. Si aucune adresse IPv4 ne peut être connectée, le pilote continue et essaie les adresses IPv6, le cas échéant.

Avec IPV6First, le pilote parcourt d’abord les adresses IPv6. Si aucune adresse IPv6 ne peut être connectée, le pilote continue et essaie les adresses IPv4, le cas échéant.

Avec UsePlatformDefault, le pilote parcourt toutes les adresses IP dans l’ordre initial à partir de la résolution DNS.
jaasConfigurationName

String

SQLJDBCDriver
(Version 6.2+) Chaque connexion à SQL Server peut utiliser son propre nom de configuration de connexion JAAS pour établir une connexion Kerberos. Le nom de l’entrée de configuration peut être transmis par le biais de cette propriété. Cela est destiné à être utilisé lors de la création d’un fichier de configuration Kerberos. Par défaut, le pilote recherche le nom SQLJDBCDriver.

Si aucune configuration externe n’est trouvée, le pilote configure useDefaultCcache = true pour les machines virtuelles Java IBM et useTicketCache = true pour les autres machines virtuelles Java.
keyStoreAuthentication

String

null
(Version 6.0+) Cette propriété identifie le magasin de clés à utiliser avec Always Encrypted, et détermine le mécanisme d’authentification utilisé auprès du magasin de clés. Le pilote prend en charge la configuration transparente du magasin de clés Java quand vous définissez « keyStoreAuthentication=JavaKeyStorePassword ». Pour pouvoir utiliser cette propriété, vous devez également définir les propriétés keyStoreLocation et keyStoreSecret pour le magasin de clés Java.

Pour plus d’informations sur Always Encrypted, consultez Utilisation d’Always Encrypted avec le pilote JDBC.

À compter de Microsoft JDBC Driver 8.4, vous pouvez définir « keyStoreAuthentication=KeyVaultManagedIdentity » ou « keyStoreAuthentication=KeyVaultClientSecret » pour vous authentifier auprès d’Azure Key Vault en utilisant des identités managées.

Pour plus d’informations sur Always Encrypted, consultez Utilisation d’Always Encrypted avec le pilote JDBC.
keyStoreLocation

String

null
(Version 6.0+) Lorsque keyStoreAuthentication=JavaKeyStorePassword, la propriété keyStoreLocation identifie le chemin du fichier de magasin de clés Java qui stocke la clé principale de colonne à utiliser avec les données Always Encrypted. Le chemin doit inclure le nom de fichier du magasin de clés.

Pour plus d’informations sur Always Encrypted, consultez Utilisation d’Always Encrypted avec le pilote JDBC.
keyStorePrincipalId

String

null
(Version 8.4+) En présence dekeyStoreAuthentication=KeyVaultManagedIdentity, la propriété keyStorePrincipalId spécifie un ID client d’application Microsoft Entra valide.

Pour plus d’informations sur Always Encrypted, consultez Utilisation d’Always Encrypted avec le pilote JDBC.
keyStoreSecret

String

null
(Version 6.0+) Quand keyStoreAuthentication=JavaKeyStorePassword, la propriété keyStoreSecret identifie le mot de passe à utiliser pour le magasin de clés et la clé. Pour pouvoir utiliser le magasin de clés Java, il est nécessaire que le magasin de clés et le mot de passe de clé soient identiques.

Pour plus d’informations sur Always Encrypted, consultez Utilisation d’Always Encrypted avec le pilote JDBC.
lastUpdateCount

boolean
["true" | "false"]

true
Une valeur « true » retourne uniquement le dernier nombre de mises à jour à partir d’une instruction SQL transmise au serveur, et peut être utilisée dans des instructions uniques SELECT, INSERT ou DELETE pour ignorer les autres nombres de mises à jours causés par les déclencheurs du serveur. La définition de cette propriété sur « false » fait que tous les nombres de mises à jour sont retournés, y compris les nombres de mises à jour retournés par les déclencheurs du serveur.

Remarque : cette propriété est applicable seulement quand elle est utilisée avec les méthodes executeUpdate. Toutes les autres méthodes execute retournent l’ensemble des résultats et des nombres de mises à jour. Cette propriété affecte uniquement les nombres de mises à jour retournés par les déclencheurs du serveur. Elle n’affecte pas les jeux de résultats ou les erreurs provenant de l’exécution du déclencheur.
lockTimeout

int

-1
Nombre de millisecondes à attendre avant que la base de données ne rapporte l'expiration d'un délai de verrouillage. Par défaut, la durée de l'attente est indéterminée. Si elle est spécifiée, cette valeur est la valeur par défaut pour toutes les instructions sur la connexion.

Sinon, Statement.setQueryTimeout() peut être utilisé pour définir le délai d’expiration de requête de certaines instructions. La valeur peut être 0, ce qui signifie aucune attente.
loginTimeout

int
[0..65535]

30 (version 11.2 et ultérieures)
15 (version 10.2 et antérieures)
Nombre de secondes que le pilote doit attendre avant l'expiration d'une connexion qui a échoué. Une valeur zéro indique que le délai d’expiration correspond à la valeur par défaut du délai d’expiration système, qui s’élève à 30 secondes par défaut dans la version 11.2 et ultérieures et à 15 secondes par défaut dans la version 10.2 et antérieures. Une valeur différente de zéro correspond au nombre de secondes que le pilote doit attendre avant l’expiration d’une connexion échouée.

Si vous spécifiez un nom de réseau virtuel dans la propriété de connexion Server, vous devez spécifier une valeur de délai de connexion de trois minutes minimum, afin que les connexions de basculement de serveur aient suffisamment de temps pour s’établir. Pour plus d’informations sur la reprise d’activité, consultez Prise en charge de la haute disponibilité et de la reprise d’activité par le pilote JDBC.
maxResultBuffer

String

null
(Version 9.2+) maxResultBuffer peut être utilisé pour définir le nombre maximal d’octets à lire lors de la lecture d’un jeu de résultats. S’il n’est pas spécifié, le jeu de résultats entier est lu. La taille peut être spécifiée dans deux styles :
1. taille en octets (par exemple 100, 150M, 300K, 400G)
2. pourcentage de la mémoire maximale du tas (par exemple 10p, 15pct, 20percent).
msiClientId

String

null
(Déconseillé) (Version 7.2+) ID client de l’identité managée utilisé pour acquérir accessToken lors de l’établissement d’une connexion avec le mode d’authentification ActiveDirectoryManagedIdentity ou ActiveDirectoryMSI.
multiSubnetFailover

Boolean

false
Spécifiez toujours MultiSubnetFailover=True pour vous connecter à l’écouteur de groupe de disponibilité d’un groupe de disponibilité SQL Server ou d’une instance de cluster de basculement SQL Server. multiSubnetFailover=true configure le pilote pour accélérer la détection et la connexion au serveur (actuellement) actif. Les valeurs possibles sont true et false. Pour plus d’informations sur la reprise d’activité, consultez Prise en charge de la haute disponibilité et de la récupération d’urgence par le pilote JDBC.

Vous pouvez accéder par programmation à la propriété de connexion multiSubnetFailover avec getPropertyInfo, getMultiSubnetFailover et setMultiSubnetFailover.

Remarque : à compter de Microsoft JDBC Driver 6.0 pour SQL Server, il n’est plus obligatoire de définir multiSubnetFailover sur « true » pour se connecter à un écouteur de groupe de disponibilité. Une nouvelle propriété, transparentNetworkIPResolution, activée par défaut, assure la détection du serveur (actuellement) actif et la connexion à ce serveur.
packetSize

int
[-1 | 0 | 512..32767]

8000
Taille de paquet réseau utilisée pour communiquer avec le serveur, spécifiée en octets. Une valeur de -1 indique qu'il faut utiliser la taille de paquet par défaut du serveur. La valeur 0 indique qu’il faut utiliser la valeur maximale de 32767. Si cette propriété est définie sur une valeur située en dehors des limites acceptables, une exception se produit.

Important : l’utilisation de la propriété packetSize n’est pas recommandée quand le chiffrement est activé (encrypt=true). Sinon, le pilote risque de générer une erreur de connexion. Pour plus d’informations sur cette propriété, reportez-vous à la méthode setPacketSize de la classe SQLServerDataSource.
mot de passe

String
[<=128 char]

null
Mot de passe de la base de données, en cas de connexion avec l’utilisateur et le mot de passe SQL.
Pour la connexion Kerberos avec le nom de principal et le mot de passe, cette propriété a comme valeur le mot de passe du principal Kerberos.

(Version 10.2+) Quand authentication=ActiveDirectoryServicePrincipal, la propriété mot de passe identifie le mot de passe à utiliser pour le principal Active Directory.
portNumber,
port

int
[0..65535]

1433
Port sur lequel le serveur est à l’écoute. Si le numéro du port est spécifié dans la chaîne de connexion, aucune demande n’est formulée à SQLbrowser. Lorsque le port et instanceName sont spécifiés, la connexion se fait vers le port spécifié. Cependant, instanceName est validé et une erreur est générée s’il ne correspond pas au port.

Important : il est recommandé de toujours spécifier le numéro du port, car cette pratique est plus sûre que l’utilisation de SQLbrowser.
prepareMethod

String

prepexec
(Version 11.2.0+) Spécifie la méthode de préparation sous-jacente à utiliser par le pilote avec des instructions préparées.

Définissez sur prepare pour utiliser sp_prepare comme méthode de préparation. Cela entraîne un transfert initial distinct vers la base de données pour préparer l’instruction sans aucune valeur initiale à prendre en compte par la base de données dans le plan d’exécution. Définissez sur prepexec pour utiliser sp_prepexec comme méthode de préparation. Cette méthode combine l’action de préparation avec la première exécution, ce qui réduit les allers-retours. Elle fournit également à la base de données des valeurs de paramètre initiales que la base de données peut prendre en compte dans le plan d’exécution.
queryTimeout

int

-1
Nombre de secondes à attendre avant expiration du délai d’attente sur une requête. La valeur -1 par défaut signifie un délai infini. La définition de cette valeur sur 0 implique également d’attendre indéfiniment.
realm

String

null
(Version 9.4 +) Domaine pour l’authentification Kerberos. La définition de cette valeur remplace le domaine d’authentification Kerberos que le pilote détecte automatiquement à partir du domaine du serveur.
la réplication

boolean
["true" | "false"]

false
(Version 9.4 +) Ce paramètre indique au serveur si la connexion est utilisée pour la réplication. Quand l’option est activée, les déclencheurs avec l’option NOT FOR REPLICATION ne sont pas activés à la connexion.
responseBuffering

String
["full" | "adaptive"]

adaptive
Si cette propriété a la valeur « adaptive », les données possibles minimales sont mises en mémoire tampon en cas de nécessité. Le mode par défaut est « adaptive ».

Si cette propriété est définie sur « full », le jeu de résultats entier est lu à partir du serveur quand une instruction est exécutée.

Remarque : à compter de la version 1.2 du pilote JDBC, le comportement de mise en mémoire tampon par défaut est « adaptatif ». Si vous souhaitez conserver le comportement par défaut de la version 1.2 dans votre application, définissez la propriété responseBufferring sur « complète » dans les propriétés de connexion ou utilisez la méthode setResponseBuffering de l’objet SQLServerStatement.
selectMethod

String
["direct" | "cursor"]

directes
Si cette propriété a la valeur « cursor », un curseur de base de données est créé pour chaque requête créée sur la connexion pour les curseurs TYPE_FORWARD_ONLY et CONCUR_READ_ONLY. Cette propriété n’est généralement requise que si l’application génère de grands jeux de résultats qui ne peuvent pas être entièrement contenus dans la mémoire du client. Si cette propriété est définie sur « cursor », seul un nombre limité de lignes du jeu de résultats est conservé dans la mémoire du client.

Le comportement par défaut est que toutes les lignes du jeu de résultats sont conservées dans la mémoire du client. Ce comportement est le plus rapide si l'application doit traiter toutes les lignes.
sendStringParameters...
AsUnicode

boolean
["true" | "false"]

true
Si la propriété sendStringParametersAsUnicode a la valeur « true », les paramètres de chaîne sont envoyés au serveur au format Unicode.

Si la propriété sendStringParametersAsUnicode a la valeur « false », les paramètres de chaîne sont envoyés au serveur dans un format non Unicode, par exemple ASCII/MBCS.

La valeur par défaut de la propriété sendStringParametersAsUnicode est « true ».

Remarque : La propriété sendStringParametersAsUnicode est uniquement vérifiée lors de l’envoi d’une valeur de paramètre avec les types JDBC CHAR, VARCHAR ou LONGVARCHAR. Les nouvelles méthodes JDBC 4.0 prenant en charge les caractères nationaux, telles que les méthodes setNString, setNCharacterStream et setNClob des classes SQLServerPreparedStatement et SQLServerCallableStatement, envoient toujours leurs valeurs de paramètres au serveur au format Unicode, quelle que soit la valeur de cette propriété.

Pour garantir des performances optimales avec les types de données JDBC CHAR, VARCHAR et LONGVARCHAR, une application doit affecter la valeur « false » à la propriété sendStringParametersAsUnicode et utiliser les méthodes setString, setCharacterStream et setClob et basées sur les caractères non nationaux des classes SQLServerPreparedStatement et SQLServerCallableStatement.

Quand l’application définit la propriété sendStringParametersAsUnicode sur « false » et qu’elle utilise une méthode basée sur des caractères non nationaux pour accéder aux types de données Unicode côté serveur (comme nchar, nvarchar et ntext), certaines données risquent d’être perdues si le classement de la base de données ne prend pas en charge les caractères des paramètres de chaîne passés par la méthode utilisant des caractères non nationaux.

Une application doit utiliser les méthodes basées sur les caractères nationaux setNString, setNCharacterStream et setNClob des classes SQLServerPreparedStatement et SQLServerCallableStatement pour les types de données JDBC NCHAR, NVARCHAR et LONGNVARCHAR.

La modification de cette valeur peut affecter le tri des résultats de la base de données. Les différences de tri sont dues à différentes règles de tri pour les caractères Unicode et non Unicode.
sendTemporalDataTypes...
AsStringForBulkCopy

booléen
["true" | "false"]

true
(Version 8.4+) Cette propriété de connexion, lorsqu’elle a la valeur « false », envoie les types de données DATE, DATETIME, DATIMETIME2, DATETIMEOFFSET, SMALLDATETIME et TIME en tant que leurs types respectifs au lieu de les envoyer en tant que Chaîne.

Avec cette propriété de connexion définie sur « false », le pilote accepte seulement le format de littéral de chaîne par défaut de chaque type de données temporel, par exemple :

DATE : YYYY-MM-DD
DATETIME : YYYY-MM-DD hh:mm:ss[.nnn]
DATETIME2 : YYYY-MM-DD hh:mm:ss[.nnnnnnn]
DATETIMEOFFSET : YYYY-MM-DD hh:mm:ss[.nnnnnnn] [{+/-}hh:mm]
SMALLDATETIME : YYYY-MM-DD hh:mm:ss
TIME : hh:mm:ss[.nnnnnnn]
sendTimeAsDatetime

boolean
["true" | "false"]

true
Cette propriété a été ajoutée dans SQL Server JDBC Driver 3.0.

Affectez la valeur « true » pour envoyer les valeurs de temps java.sql. au serveur en tant que valeurs DateHeure.
Affectez la valeur « false » pour envoyer les valeurs de temps java.sql. au serveur en tant que valeurs temps.

La valeur par défaut de cette propriété, actuellement « true », pourra être modifiée dans une prochaine version.

Pour savoir plus en détail comment le pilote JDBC Microsoft pour SQL Server configure les valeurs de temps java.sql. avant de les envoyer au serveur, consultez Configuration de la manière dont les valeurs de temps java.sql. sont envoyées au serveur.
serverCertificate,
server

String

null
(Version 11.2.0+) Chemin d’accès au fichier de certificat du serveur. Utilisé pour la validation lors de l’utilisation du chiffrement défini sur strict. Le pilote prend en charge les fichiers de certificat au format de fichier PEM.
serverName,
server

String

null
L’ordinateur qui exécute SQL Server ou une base de données Azure SQL.

Vous pouvez également spécifier le nom du réseau virtuel d’un groupe de disponibilité. Pour plus d’informations sur la reprise d’activité, consultez Prise en charge de la haute disponibilité et de la reprise d’activité par le pilote JDBC.
serverNameAsACE

boolean
["true" | "false"]

false
(Version 6.0+) Affectez la valeur « true » pour indiquer que le pilote doit traduire le nom du serveur Unicode en codage compatible ASCII (Punycode) pour la connexion. Si ce paramètre a la valeur « false », le pilote utilise le nom du serveur tel qu’il est fourni pour la connexion.

Pour plus d’informations sur les fonctionnalités internationales, consultez Fonctionnalités internationales du pilote JDBC.
serverPreparedStatement...
DiscardThreshold

Integer

10
(Version 6.2+) Cette propriété permet de contrôler le nombre maximal d’actions d’abandon d’instruction préparée en attente (sp_unprepare) par connexion avant l’exécution d’un appel pour nettoyer les descripteurs en attente sur le serveur.

Si elle a la valeur définie sur <= 1, les actions d’annulation de la préparation sont exécutées immédiatement à la fermeture de l’instruction préparée. Si elle est définie sur > 1, ces appels sont regroupés pour éviter la surcharge d’appeler sp_unprepare trop fréquemment.
serverSpn

String

null
(Version 4.2+) Cette propriété facultative peut être utilisée pour spécifier le nom de principal du service (SPN) pour une connexion Java Kerberos. Elle est utilisée avec authenticationScheme.

Pour spécifier le nom de principal du service, vous pouvez utiliser le format « MSSQLSvc/fqdn:port@REALM », où fqdn désigne le nom de domaine complet, port désigne le numéro de port et REALM désigne le domaine Kerberos de SQL Server en majuscules.

Remarque : la partie @REALM est facultative si le domaine par défaut du client (comme spécifié dans la configuration Kerberos) est le même que le domaine Kerberos pour le serveur SQL Server.

Pour plus d’informations sur l’utilisation de serverSpn avec Java Kerberos, consultez Utilisation de l’authentification intégrée Kerberos pour se connecter à SQL Server.
socketFactoryClass

String

null
(Version 8.4+) Spécifie le nom de classe d’une fabrique de sockets personnalisée à utiliser à la place de la fabrique de sockets par défaut.
socketTimeout

int

0
Nombre de millisecondes à attendre avant expiration du délai d’attente de lecture ou d’acceptation d’un socket. La valeur 0 par défaut signifie un délai infini.
statementPooling…
CacheSize

int

0
(Version 6.4+) Cette propriété permet d’activer la mise en cache des descripteurs d’instructions préparées dans le pilote.

Cette propriété définit la taille du cache du regroupement d’instructions.

Cette propriété peut être utilisée seulement avec la propriété de connexion disableStatementPooling, qui doit avoir la valeur « false ». Si disableStatementPooling a la valeur « true » ou statementPoolingCacheSize la valeur 0, la mise en cache des handles d’instructions préparées est désactivée.
sslProtocol

String

TLS
(Version 6.4+) Cette propriété permet de spécifier le protocole TLS à utiliser pendant la connexion sécurisée.
Les valeurs possibles sont les suivantes : TLS, TLSv1, TLSv1.1 et TLSv1.2.

Pour plus d’informations sur le protocole SSL (Secure Sockets Layer), consultez SSLProtocol.
transparentNetwork…
IPResolution

boolean
["true" | "false"]

true
(Version 6.0+) Cette propriété accélère la détection et la connexion au serveur (actuellement) actif. Les valeurs possibles sont « true » (par défaut) et « false ».

Avant la version 6.0 de Microsoft JDBC Driver pour SQL Server, l’application devait définir la chaîne de connexion de façon à inclure « multiSubnetFailover=true » pour indiquer qu’elle se connectait à un groupe de disponibilité AlwaysOn. Si elle ne définissait le mot clé de connexion multiSubnetFailover sur « true », elle risquait de se heurter à un délai d’expiration lors de la connexion au groupe de disponibilité AlwaysOn. Avec les versions 6.0 et ultérieures, une application n’a plus besoin d’affecter la valeur « true » à multiSubnetFailover.

Remarque : Lorsque transparentNetworkIPResolution=true, la première tentative de connexion utilise 500 ms comme délai d’expiration. Toutes les tentatives suivantes utilisent la même logique de délai d’attente que la propriété multiSubnetFailover.
trustManagerClass

String

null
(Version 6.4+) Nom complet de la classe d’une implémentation javax.net.ssl.TrustManager personnalisée.
trustManager…
ConstructorArg

String

null
(Version 6.4+) Argument facultatif à transmettre au constructeur du TrustManager. Si trustManagerClass est spécifié et qu’une connexion chiffrée est demandée, c’est le TrustManager personnalisé qui est utilisé à la place du TrustManager par défaut basé sur le magasin de clés de la machine virtuelle Java du système.
trustServerCertificate

boolean
["true" | "false"]

false
Affectez la valeur « true » pour spécifier que le pilote ne valide pas le certificat TLS/SSL du serveur.

Si la valeur est « true », le certificat TLS/SSL du serveur est approuvé automatiquement quand la couche de communication est chiffrée à l’aide du protocole TLS.

Si la valeur est « false », le pilote valide le certificat TLS/SSL du serveur. Si la validation du certificat de serveur échoue, le pilote génère une erreur et ferme la connexion. La valeur par défaut est « false ». Pour garantir une connexion TLS/SSL, vérifiez que la valeur passée à serverName correspond exactement au nom CN (Nom commun) ou DNS dans le nom SAN (Autre nom du sujet) du certificat de serveur. Pour plus d’informations sur la prise en charge du chiffrement, consultez Comprendre la prise en charge du chiffrement.

Remarque : Cette propriété est utilisée en association avec les propriétés encrypt/authentication. Cette propriété affecte seulement la validation du certificat TLS/SSL de serveur si la connexion utilise le chiffrement TLS.
trustStore

String

null
Chemin d'accès (y compris le nom de fichier) au fichier trustStore de certificat. Le fichier trustStore contient la liste des certificats approuvés par le client.

Quand cette propriété n’est pas spécifiée ou a la valeur null, le pilote se fie aux règles de recherche de la fabrication du gestionnaire d’approbation pour déterminer le magasin de certificats à utiliser.

Le TrustManagerFactory SunX509 par défaut essaie de localiser les informations approuvées dans l’ordre de recherche suivant :

Un fichier spécifié par la propriété système de machine virtuelle Java (JVM) « javax.net.ssl.trustStore ».

fichier <java-home>/lib/security/jssecacerts.

fichier <java-home>/lib/security/cacerts.



Pour plus d’informations sur l’interface SUNX509 TrustManager, consultez la documentation de l’interface SUNX509 TrustManager sur le site web de Sun Microsystems.

Remarque : Cette propriété affecte seulement la recherche du trustStore du certificat si la connexion utilise le chiffrement TLS et que la propriété trustServerCertificate est définie sur « false ».
trustStorePassword

String

null
Mot de passe utilisé pour vérifier l'intégrité des données trustStore.

Si la propriété trustStore est définie mais que la propriété trustStorePassword ne l’est pas, l’intégrité du trustStore n’est pas vérifiée.

Quand les propriétés trustStore et trustStorePassword ne sont pas spécifiées, le pilote utilise les propriétés système JVM « javax.net.ssl.trustStore » et « javax.net.ssl.trustStorePassword ». Si la propriété système « javax.net.ssl.trustStorePassword » n’est pas spécifiée, l’intégrité du trustStore n’est pas vérifiée.

Si la propriété trustStore n’est pas définie mais que la propriété trustStorePassword est définie, le pilote JDBC utilise le fichier spécifié par la propriété « javax.net.ssl.trustStore » comme magasin d’approbations et l’intégrité du magasin d’approbations est vérifiée à l’aide de la propriété trustStorePassword spécifiée. Ce paramètre est nécessaire quand l’application cliente ne veut pas stocker le mot de passe dans la propriété système JVM.

Remarque : la propriété trustStorePassword affecte uniquement la recherche du trustStore de certificats si la connexion utilise la connexion TLS et que la propriété trustServerCertificate est définie sur « false ».
trustStoreType

String

JKS
Définissez cette propriété pour spécifier le type de magasin de confiance à utiliser pour le mode FIPS.

Les valeurs possibles sont PKCS12 ou le type défini par le fournisseur FIPS.
useBulkCopyFor…
BatchInsert

boolean
["true" | "false"]

false
(Version 9.2+) Cette propriété de connexion peut être activée pour utiliser de manière transparente l’API de copie en bloc lors de l’exécution d’opérations d’insertion par lots avec java.sql.PreparedStatement. Cette fonctionnalité offre potentiellement des performances nettement supérieures lorsqu’elle est activée.

Cette fonctionnalité est désactivée par défaut. Affectez la valeur « true » à cette propriété pour activer cette fonctionnalité.

Remarque importante : cette fonctionnalité prend uniquement en charge des requêtes INSERT entièrement paramétrables. Si les requêtes INSERT sont combinées avec d’autres requêtes SQL ou contiennent des données dans des valeurs, l’exécution revient à l’opération d’insertion par lots de base.

Pour plus d’informations sur l’utilisation de cette propriété, consultez Utiliser l’API de copie en bloc pour les opérations d’insertion par lots.
useDefaultGSSCredential

booléen
["true" | "false"]

false
(Version 12.6+) Indicateur qui spécifie si le pilote doit créer le GSSCredential au nom de l’utilisateur pour l’utilisation de l’interface native GSS-API pour l’authentification Kerberos.
useDefaultJaasConfig

booléen
["true" | "false"]

false
(Version 12.6+) Lorsque l’application existe en même temps que les bibliothèques qui configurent JAAS au niveau système, la définition de cette valeur permet au pilote d’utiliser cette même configuration pour effectuer l’authentification Kerberos.
useFlexibleCallableStatements

booléen
["true" | "false"]

true
(Version 12.6+) Lorsque la valeur est true, les paramètres d’instruction peuvent être définis à l’aide de n’importe quelle combinaison d’index ou de noms de paramètres. Cela permet également de définir ces paramètres dans un ordre différent de celui de la définition sproc. Ces deux options sont possibles grâce à une recherche de métadonnées de paramètres supplémentaires.

Lorsque la valeur est false, la définition des paramètres doit se faire soit à l’aide d’index, soit à l’aide de noms de paramètres, mais pas les deux à la fois. Ils doivent également être définis dans le même ordre que celui défini dans la définition de l’instruction préparée. La définition de cette option sur false ne déclenche pas la recherche de métadonnées supplémentaires mentionnée ci-dessus.
useFmtOnly

boolean
["true" | "false"]

false
(Version 7.4+) Propose un autre moyen d’interroger les métadonnées des paramètres à partir du serveur. Définissez cette propriété sur « true » pour spécifier que le pilote doit utiliser la logique SET FMTONLY lors de l’interrogation des métadonnées de paramètre. Cette fonctionnalité est désactivée par défaut ; il n’est pas recommandé d’utiliser cette propriété, car SET FMTONLY est déprécié. useFmtOnly n’est utilisable que comme solution de contournement des problèmes et limitations connus dans sp_describe_undeclared_parameters.

Cette fonctionnalité ne prend actuellement en charge que les requêtes SELECT/INSERT/UPDATE/DELETE uniques. Si vous essayez de l’utiliser avec des requêtes non prises en charge/multiples, le pilote tente d’analyser la ou les requêtes, mais une exception se produit probablement.

Pour plus d’informations sur cette propriété, consultez Récupérer ParameterMetaData via useFmtOnly.
userName,
utilisateur

String
[<=128 char]

null
Utilisateur de la base de données, en cas de connexion avec un utilisateur et un mot de passe SQL.

Pour la connexion Kerberos avec un nom de principal et un mot de passe, cette propriété est définie sur le nom du principal Kerberos.

(Version 10.2+) Quand authentication=ActiveDirectoryServicePrincipal, la propriété nom d'utilisateur spécifie un ID de client sécurisé Azure Active Directory valide.
workstationID

String
[<=128 char]

<empty string>
ID de station de travail. Sert à identifier la station de travail spécifique dans divers outils de profilage et de journalisation.

Si aucune option est spécifiée, <empty string> est utilisé.
xopenStates

boolean
["true" | "false"]

false
Définir sur « true » pour spécifier que le pilote retourne les codes d'état compatibles XOPEN dans des exceptions.

Par défaut, des codes d'état SQL 99 sont retournés.

Notes

Le pilote JDBC Microsoft pour SQL Server prend les valeurs par défaut du serveur pour les propriétés de connexion à l'exception de ANSI_DEFAULTS et IMPLICIT_TRANSACTIONS. Le pilote JDBC Microsoft pour SQL Server définit automatiquement la valeur ON à ANSI_DEFAULTS et la valeur OFF à IMPLICIT_TRANSACTIONS.

Important

Si l’authentification est définie sur ActiveDirectoryPassword, la bibliothèque suivante doit être incluse dans classpath : microsoft-authentication-library-for-java. Elle se trouve dans le référentiel Maven. Le plus simple pour télécharger la bibliothèque et ses dépendances consiste à utiliser Maven :

  1. Installez Maven sur votre système.
  2. Accédez à la page GitHub du pilote.
  3. Téléchargez le fichier pom.xml.
  4. Exécutez la commande Maven suivante pour télécharger la bibliothèque et ses dépendances : mvn dependency:copy-dependencies.

Voir aussi

Connexion à SQL Server avec le pilote JDBC
Mode FIPS