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

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_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:

Spécifie la phrase secrète qui déchiffre le 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.

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.

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

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.

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.

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.

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

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

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