Référence Paramètre de connexion pilote JDBC

Cette rubrique répertorie les paramètres de connexion que vous pouvez utiliser pour configurer le pilote JDBC. Vous pouvez définir ces paramètres dans la chaîne de connexion JDBC ou dans un objet Java Properties.

Dans ce chapitre :

Paramètres requis

Cette section énumère les paramètres que vous devez définir dans la chaîne de connexion ou dans les Map de propriétés.

Note

Vous devez également définir les paramètres d’authentification.

user

Description:

Spécifie le nom de connexion de l’utilisateur pour la connexion.

Paramètres d’authentification

allowUnderscoresInHost

Description:

Indique si les caractères de soulignement sont autorisés dans les noms de comptes. Le pilote JDBC ne prend pas en charge les caractères de soulignement dans les URLs, qui comprennent le nom du compte. Ainsi, le pilote JDBC convertit automatiquement les traits de soulignement en traits d’union. La valeur par défaut est false.

Note

À partir de la version 3.13.25, le pilote JDBC de Snowflake change la valeur par défaut du paramètre allowUnderscoresInHost sur false. Ce changement a un impact sur les clients PrivateLink dont les noms de compte contiennent des caractères de soulignement. Dans cette situation, vous devez remplacer la valeur par défaut en donnant à allowUnderscoresInHost la valeur true.

authenticator

Description:

Spécifie l’authentificateur à utiliser pour vérifier les identifiants de connexion utilisateur. Vous pouvez définir cette option sur l’une des valeurs suivantes :

  • snowflake pour utiliser l’authentificateur interne Snowflake.

  • externalbrowser pour utiliser votre navigateur Web pour vous authentifier avec Okta, des ADFS ou tout autre fournisseur d’identification conforme à SAML 2.0 (IdP) qui a été défini pour votre compte.

  • https://<nom_compte_okta>.okta.com (c.-à-d. le point de terminaison d’URL pour votre compte Okta) pour vous authentifier via Okta natif (uniquement pris en charge si votre IdP est Okta).

  • oauth pour vous authentifier à l’aide de OAuth. Lorsque OAuth est spécifié comme authentificateur, vous devez également définir le paramètre token pour spécifier le jeton OAuth (voir ci-dessous).

  • snowflake_jwt pour vous authentifier à l’aide de l’authentification par paire de clés. Pour plus de détails sur l’authentification par paire de clés, voir Utilisation de l’authentification par paire de clés et rotation de clés.

  • username_password_mfa pour s’authentifier avec la mise en cache du jeton MFA. Pour plus de détails, voir Utilisation de l’authentification multifactorielle

Si la chaîne de connexion spécifie une paire de clés, l’authentification par paire de clés sera utilisée même si le paramètre authenticator n’est pas défini ou est défini sur « Snowflake ».

Pour plus d’informations sur l’authentification, voir Gestion/Utilisation de l’authentification fédérée et Clients, pilotes et connecteurs.

Par défaut:

snowflake

disableGcsDefaultCredentials

Description:

Indique s’il faut utiliser la recherche d’identifiants de connexion par défaut au lieu des identifiants de connexion par défaut de l’application externe lors de l’utilisation de GCP (Google Cloud Platform).

Par défaut, les utilisateurs de GCP peuvent utiliser diverses options pour configurer les identifiants de connexion par défaut de l’application Google en dehors de Snowflake. Occasionnellement, ces méthodes d’authentification peuvent interférer avec les opérations de stockage dans le cloud qui proviennent du pilote JDBC de Snowflake. Dans de tels cas, vous pouvez fixer la valeur sur true pour forcer le pilote à ignorer les identifiants de connexion GCP provenant d’autres sources.

Pour plus d’informations, voir Identifiants de connexion par défaut de l’application

Vous pouvez également utiliser la propriété Java net.snowflake.jdbc.disableGcsDefaultCredentials pour obtenir le même effet.

Par défaut:

false

disableSamlURLCheck

Description:

Indique s’il faut désactiver le contrôle de validation d’une réponse SAML.

Par défaut:

false

passcode

Description:

Spécifie le code à utiliser pour l’authentification multifactorielle.

Pour plus d’informations sur l’authentification multifactorielle, voir Authentification multifactorielle (MFA).

passcodeInPassword

Description:

Indique si le code pour l’authentification multifactorielle est ajouté au mot de passe :

  • on (ou true) spécifie que le code est ajouté.

  • off (ou false) ou toute autre valeur spécifie que le code n’est pas ajouté.

Par défaut:

off

password

Description:

Spécifie le mot de passe de l’utilisateur spécifié.

Il existe deux manières de spécifier le mot de passe :

  • La première consiste à transmettre l’ID et le mot de passe de l’utilisateur directement à la méthode getConnection :

    String user = "<user>";          // replace "<user>" with your user name
    String password = "<password>";  // replace "<password>" with your password
    Connection con = DriverManager.getConnection("jdbc:snowflake://<account>.snowflakecomputing.com/", user, password);
    
    Copy
  • La deuxième consiste à créer un objet Properties, à mettre à jour l’objet avec le mot de passe et à le transmettre à la méthode getConnection :

    String user = "<user>";          // replace "<user>" with your user name
    String password = "<password>";  // replace "<password>" with your password
    Properties props = new Properties();
    props.put("user", user);
    props.put("password", password);
    Connection con = DriverManager.getConnection("jdbc:snowflake://<account>.snowflakecomputing.com/", props);
    
    Copy

Attention

Nous vous recommandons fortement de ne pas inclure le mot de passe utilisateur directement dans la chaîne de connexion JDBC, car le mot de passe pourrait être exposé par inadvertance par l’application client qui utilise la chaîne pour se connecter à Snowflake. Utilisez plutôt les interfaces fournies par l’application pour spécifier le mot de passe utilisateur.

privatekey

Description:

Spécifie la clé privée pour l’utilisateur spécifié. Voir Utilisation de l’authentification par paire de clés et rotation de clés.

private_key_base64

Description:

Spécifie la clé privée base64 pour l’utilisateur spécifié. Voir Utilisation de l’authentification par paire de clés et rotation de clés.

private_key_file

Description:

Spécifie le chemin d’accès au fichier de clé privée pour l’utilisateur spécifié. Voir Utilisation de l’authentification par paire de clés et rotation de clés.

private_key_file_pwd

Description:

(Obsolète) Utilisez private_key_pwd plutôt.

private_key_pwd

Description:

Spécifie la phrase secrète qui déchiffre le fichier de clé privée ou la clé privée encodée en base64 pour l’utilisateur spécifié. Voir Utilisation de l’authentification par paire de clés et rotation de clés.

token

Description:

Spécifie le jeton OAuth à utiliser pour l’authentification, où <chaîne> est le jeton. Ce paramètre est requis uniquement lorsque le paramètre authenticator est réglé sur oauth, à l’exception de ce qui est noté ci-dessous.

Note

À partir de la version 3.13.24, le pilote JDBC Snowflake vous permet d’envoyer le jeton OAuth dans le mot de passe de connexion en plus de l’inclure dans le paramètre de configuration du token. Si le paramètre de configuration du token n’est pas spécifié, la méthode Driver.connect() s’attend à ce que le jeton soit stocké dans le mot de passe de la connexion.

Cette fonctionnalité prend principalement en charge l’utilisation de l’authentification OAuth pour les pools de connexion, ce qui vous permet de transmettre des jetons actualisés selon les besoins au lieu d’être limité par un jeton expiré spécifié dans le paramètre de configuration token.

Par exemple, au lieu de définir le paramètre de configuration du token, vous pouvez transmettre le jeton comme mot de passe dans les propriétés de la méthode getConnection(), comme suit :

Properties props = new Properties();
props.put("user", "myusername");
props.put("authenticator", "oauth");
props.put("role", "myrole");
props.put("password", "xxxxxxxxxxxxx"); // where xxxxxxxxxxxxx is the token string
Connection myconnection = DriverManager.getConnection(url, props);
Copy
Par défaut:

Aucun

Paramètres pour la base de données, le rôle, le schéma et l’entrepôt par défaut

db

Description:

Spécifie la base de données par défaut à utiliser une fois la connexion effectuée, ou une chaîne vide. La base de données spécifiée doit être une base de données existante pour laquelle le rôle par défaut spécifié a des privilèges.

Si vous devez utiliser une autre base de données après la connexion, exécutez la commande USE DATABASE.

role

Description:

Spécifie le rôle de contrôle d’accès par défaut à utiliser dans la session Snowflake initiée par le pilote. Le rôle spécifié doit être un rôle existant qui a déjà été affecté à l’utilisateur spécifié pour le pilote. Si le rôle spécifié n’a pas déjà été affecté à l’utilisateur, il n’est pas utilisé lorsque la session est lancée par le pilote.

Si vous devez utiliser un rôle différent après la connexion, exécutez la commande USE ROLE.

Pour plus d’informations sur les rôles et le contrôle d’accès, voir Aperçu du contrôle d’accès.

schema

Description:

Spécifie le schéma par défaut à utiliser pour la base de données spécifiée une fois connecté, ou une chaîne vide. Le schéma spécifié doit être un schéma existant pour lequel le rôle par défaut spécifié possède des privilèges.

Si vous devez utiliser un schéma différent après la connexion, exécutez la commande USE SCHEMA.

warehouse

Description:

Spécifie l’entrepôt virtuel à utiliser une fois connecté, ou une chaîne vide. L’entrepôt spécifié doit être un entrepôt existant pour lequel le rôle par défaut spécifié possède des privilèges.

Si vous devez utiliser un entrepôt différent après la connexion, exécutez la commande USE WAREHOUSE pour définir un entrepôt différent pour la session.

Paramètres du proxy

disableSocksProxy

Description:

Indique si le pilote doit ignorer la configuration proxy SOCKS spécifiée dans les options système Java :

  • on (ou true) spécifie d’ignorer le proxy.

  • off (ou false) ou toute autre valeur spécifie d’utiliser le proxy.

Note

Le réglage de ce paramètre de connexion modifie le comportement de toutes les connexions d’une même JVM (machine virtuelle Java).

Par défaut:

off

nonProxyHosts

Description:

Spécifie la liste des hôtes auxquels le pilote doit se connecter directement, sans passer par le serveur proxy. Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC pour plus de détails.

proxyHost

Description:

Spécifie le nom d’hôte du serveur proxy à utiliser. Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC pour plus de détails.

proxyPassword

Description:

Spécifie le mot de passe pour l’authentification au serveur proxy. Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC pour plus de détails.

proxyPort

Description:

Spécifie le numéro de port du serveur proxy à utiliser. Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC pour plus de détails.

proxyProtocol

Description:

Spécifie le protocole utilisé pour se connecter au serveur proxy. Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC pour plus de détails.

Par défaut:

http

proxyUser

Description:

Spécifie le nom d’utilisateur pour l’authentification au serveur proxy. Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC pour plus de détails.

useProxy

Description:

Indique si le pilote doit utiliser un proxy :

  • on (ou true) spécifie que le pilote doit utiliser un proxy.

  • off (ou false) ou toute autre valeur spécifie que le pilote ne doit pas utiliser de proxy. Ce paramètre n’a aucun effet si des arguments de proxy JVM sont présents.

Voir Spécification d’un serveur proxy dans la chaîne de connexion JDBC.

Par défaut:

off

Paramètres de délai d’expiration

loginTimeout

Description:

Indique le nombre de secondes pour l’obtention d’une réponse lors de la connexion au service Snowflake avant de renvoyer une erreur d’échec de connexion.

Par défaut:

60

networkTimeout

Description:

Spécifie le nombre de millisecondes à attendre pour obtenir une réponse lors d’une interaction avec le service Snowflake avant de renvoyer une erreur. 0 (zéro) indique qu’aucun délai d’expiration réseau n’est défini.

Par défaut:

0

net.snowflake.jdbc.http_client_connection_timeout_in_ms

Description:

Spécifie le temps maximum, en millisecondes, à attendre avant d’établir complètement une nouvelle connexion (y compris la négociation TLS) avec l’hôte distant.

Vous pouvez également définir ceci dans la chaîne de connexion avec ${HTTP_CLIENT_CONNECTION_TIMEOUT}.

Par défaut:

60000 (1 minute)

net.snowflake.jdbc.http_client_socket_timeout_in_ms

Description:

Spécifie le temps maximum, en millisecondes, d’attente des données (temps d’inactivité entre deux paquets de données) après qu’une connexion a été établie avec succès.

Vous pouvez également définir ceci dans la chaîne de connexion avec ${HTTP_CLIENT_SOCKET_TIMEOUT}.

Par défaut:

300000 (5 minutes)

queryTimeout

Description:

Spécifie le nombre de secondes à attendre pour qu’une requête se termine avant de retourner une erreur. 0 (zéro) indique que le pilote doit attendre indéfiniment.

Par défaut:

0

Autres paramètres

application

Description:

Pour partenaire Snowflake uniquement : spécifie le nom d’une application partenaire à connecter via JDBC.

client_config_file

Description:

Spécifie le chemin d’un fichier de configuration de journalisation que vous pouvez utiliser pour définir le niveau de journalisation et le répertoire d’enregistrement des fichiers journaux.

DIAGNOSTICS_ALLOWLIST_FILE

Description:

Chemin complet et nom de fichier JSON contenant la sortie des fonctions SYSTEM$ALLOWLIST ou SYSTEM$ALLOWLIST_PRIVATELINK.

Si ENABLE_DIAGNOSTICS est true, vous devez fournir ce paramètre.

ENABLE_DIAGNOSTICS

Description:

Quand true et l’application appelante appelle la méthode DriverManager ou DataSource getConnection(), le pilote exécute plusieurs tests de connectivité et écrit les résultats dans un fichier journal préconfiguré. Le pilote renvoie également l’exception suivante :

net.snowflake.client.jdbc.SnowflakeSQLException: A connection was not created because the driver is running in diagnostics mode. If this is unintended then disable diagnostics check by removing the ENABLE_DIAGNOSTICS connection parameter

Si vous activez ce paramètre, vous devez fournir une valeur pour le paramètre DIAGNOSTICS_ALLOWLIST_FILE.

Par défaut:

false

enablePatternSearch

Description:

Active ou désactive la recherche de modèles pour les opérations de métadonnées getCrossReference, getExportedKeys, getImportedKeys, et getPrimaryKeys qui ne doivent pas utiliser leurs paramètres comme modèles.

Par défaut:

true

enablePutGet

Description:

Indique s’il faut autoriser les commandes PUT et GET à accéder aux systèmes de fichiers locaux. La valeur false désactive l’exécution des commandes PUT et GET.

Par défaut:

true

JDBC_ARROW_TREAT_DECIMAL_AS_INT

Description:

Indique si tous les nombres d’un jeu de résultats d’un appel getObject Arrow doivent être renvoyés sous forme d’entiers. Si cette valeur et les valeurs du paramètre JDBC_TREAT_DECIMAL_AS_INT sont toutes deux false, tous les nombres entiers figurant dans les jeux de retour Arrow d’un appel getObject sont renvoyés sous la forme d’un type BigDecimal.

Par défaut:

true

JDBC_DEFAULT_FORMAT_DATE_WITH_TIMEZONE

Description:

Spécifie s’il faut utiliser la valeur précédemment codée en dur pour le formateur (pour une compatibilité descendante).

Par défaut:

true

JDBC_GET_DATE_USE_NULL_TIMEZONE

Description:

Spécifie s’il faut utiliser la valeur de fuseau horaire précédemment nulle pour la méthode getDate (pour la rétrocompatibilité).

Par défaut:

true

maxHttpRetries

Description:

Indique le nombre maximum de tentatives de requêtes HTTP qui ont échoué avant de renvoyer une erreur.

Par défaut:

7

net.snowflake.jdbc.max_connections

Description:

Spécifie le nombre total maximum de connexions disponibles dans le pool de connexion.

Par défaut:

300

net.snowflake.jdbc.max_connections_per_route

Description:

Spécifie le nombre maximum de connexions autorisées pour un seul port ou par URL. La valeur ne peut pas dépasser la valeur net.snowflake.jdbc.max_connections.

Par défaut:

300

net.snowflake.jdbc.objectMapper.maxJsonStringLength

Description:

Spécifie le nombre maximal d’octets pour une chaîne. Vous pouvez augmenter la valeur de cette propriété Java pour définir une mémoire tampon plus grande pour la désérialisation de la réponse Snowflake si vous recevez des messages d’erreur similaires aux suivants :

com.fasterxml.jackson.core.exc.StreamConstraintsException: String length (XXXXXXX) exceeds the maximum length (180000000)
Par défaut:

180000000

ocspFailOpen

Description:

Spécifie que le pilote doit « échouer » s’il ne peut pas atteindre le serveur OCSP pour vérifier le certificat. Voir OCSP.

putGetMaxRetries

Description:

Spécifie le nombre maximum de tentatives de réessayer les exceptions PUT/GET pour les clients de stockage.

Par défaut:

25

stringsQuotedForColumnDef

Description:

Si ce paramètre est défini sur true, alors lorsque DatabaseMetaData.getColumns() et DatabaseMetaData.getProcedureColumns() renvoient une valeur de type String dans la colonne COLUMN_DEF, cette valeur est intégrée dans des guillemets simples. (Si le type de données de la valeur n’est pas String, la valeur n’est pas entre guillemets, quel que soit le réglage de ce paramètre.)

  • true spécifie que les valeurs de chaîne doivent être intégrées entre guillemets simples (les guillemets font partie de la chaîne, pas des délimiteurs). Ceci est conforme à la norme JDBC.

  • false spécifie que les valeurs de chaîne ne sont pas intégrées entre guillemets simples.

Par défaut:

false

tracing

Description:

Spécifie le niveau de journal du conducteur. Le pilote utilise l’utilitaire de journalisation standard Java. Vous pouvez définir ce paramètre sur l’un des niveaux de journalisation suivants :

  • OFF

  • SEVERE

  • WARNING

  • INFO

  • CONFIG

  • FINE

  • FINER

  • FINEST

  • ALL

Par défaut:

INFO