Paramètres de configuration et de connexion ODBC

Le pilote ODBC de Snowflake utilise des paramètres de configuration et de connexion. Les procédures de réglage des paramètres sont différentes selon l’environnement dans lequel le pilote est installé.

Dans ce chapitre :

Réglage des paramètres dans Windows

Dans Windows :

  • Les paramètres de configuration sont définis dans le registre Windows à l’aide de regedit et du chemin de registre suivant :

    [HKEY_LOCAL_MACHINE\SOFTWARE\Snowflake\Driver]
    
    Copy
  • Les paramètres de connexion sont définis dans les noms de source de données (DSNs) :

    • Les DSNs sont généralement créés et modifiés à l’aide de l’outil Windows Data Source Administration.

    • Si vous le souhaitez, les clés de registre pour les DSNs peuvent être éditées directement dans le registre Windows en utilisant regedit. Le chemin de registre vers les clés est différent selon que vous utilisez Windows 64 bits ou 32 bits, et que vous éditez un DSN d’utilisateur ou système :

      • Windows 64 bits :

        [HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>]
        
        Copy
      • Windows 32 bits :

        [HKEY_CURRENT_USER\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
        
        [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
        
        Copy

      Pour ajouter un paramètre de connexion à l’aide de regedit, ajoutez une nouvelle String Value, double-cliquez sur la valeur que vous avez créée, puis saisissez le paramètre ODBC en tant que Value name et la valeur du paramètre en tant que Value data.

Définition des paramètres dans macOS ou Linux

Sous macOS ou Linux :

  • Les paramètres de configuration sont définis dans le fichier de configuration (simba.snowflake.ini).

  • Les paramètres de connexion sont définis dans le fichier du nom de source de données (DSN) (odbc.ini).

Paramètres de configuration

CABundleFile

Définissez l’emplacement du fichier bundle de l’autorité de certification (CA). Doit faire référence à un fichier qui inclut une liste valide de certificats CA.

Pour Linux, les programmes d’installation RPM et DEB copient automatiquement le fichier et définissent ce paramètre.

Pour Mac, le programme d’installation PKG copie le fichier et définit ce paramètre.

Pour Windows, le programme d’installation MSI copie le fichier et définit ce paramètre.

Une installation manuelle nécessite de télécharger le fichier depuis https://curl.haxx.se/docs/caextract.html et de définir l’emplacement du fichier.

CURLVerboseMode

Défini sur true pour activer la connexion « verbose » cURL. Le fichier de journal snowflake_odbc_curl.dmp est créé et mis à jour. Le pilote Snowflake ODBC utilise cURL comme bibliothèque HTTP et TLS. Ce paramètre est utile pour diagnostiquer les problèmes réseau.

DisableOCSPCheck

Définissez ce paramètre sur true pour désactiver la vérification du statut de révocation de certificat TLS par le « Online Certificate Status Protocol » (OCSP). Dans des circonstances normales, cet indicateur ne doit pas être activé. Mais si le problème de disponibilité de OCSP persiste, l’application pourrait régler temporairement ce paramètre afin de débloquer les problèmes de connectivité et le supprimer lorsque le problème de disponibilité de OCSP est résolu.

EnableAutoIpdByDefault

Définissez la valeur sur false pour configurer le pilote ODBC pour définir SQL_ATTR_ENABLE_AUTO_IPD sur false (qui est la valeur par défaut de la norme ODBC).

Sinon, par défaut, le pilote ODBC définit SQL_ATTR_ENABLE_AUTO_IPD sur true pour la compatibilité avec les outils tiers.

Dans la version 2.22.0 du pilote ODBC, ce paramètre a été introduit.

EnablePidLogFileNames

Définissez ce paramètre sur true pour inclure l’ID du processus dans le nom du fichier journal. Par exemple, si l’ID du processus est 7394, les fichiers journaux seront nommés :

  • snowflake_odbc_connection_7394_0.log

  • snowflake_odbc_generic7394_0.log

  • snowflake_odbc_curl_7394.dmp

Vous pouvez régler ce paramètre pour éviter que différents processus n’écrasent les mêmes fichiers journaux. Chaque processus génère son propre ensemble de fichiers journaux.

Par défaut, la valeur de ce paramètre est false.

Ce paramètre a été introduit dans la version 2.22.2 du pilote ODBC.

get_size_threshold

Spécifie la taille minimale du fichier, en mégaoctets (MB), pour diviser les fichiers en parties plus petites lors du téléchargement de fichiers avec la commande GET. Les fichiers dont la taille est inférieure à ce seuil n’utiliseront pas le téléchargement en plusieurs parties.

La valeur par défaut est 5 (MB).

Note

Vous pouvez remplacer cette valeur dans des cas spécifiques en définissant le paramètre de connexion obtenir_seuil_taille correspondant.

KeepLeadingTrailingZeros

Détermine la façon dont les zéros de début et de fin correspondant à des nombres au format de valeurs de chaîne sont traités. Par défaut, le paramètre est réglé sur true, ce qui signifie que le pilote conserve tous les zéros de début ou de fin. Réglez le paramètre sur false pour supprimer les zéros de tête ou de fin, par exemple :

  • 0.23 est modifié en .23

  • 7.00 est modifié en 7

LogFileCount

Définit le nombre maximum de fichiers journaux à conserver avant la rotation des anciens fichiers pour faire de la place aux nouveaux fichiers journaux.

LogFileSize

Spécifie la taille maximale, en octets, d’un fichier journal. Lorsqu’un fichier journal atteint la taille spécifiée, le pilote ODBC crée automatiquement un nouveau fichier journal.

La valeur par défaut est 20971520.

LogLevel

Indique le niveau de détail enregistré pour les clients qui utilisent le pilote ODBC :

  • 0 = Désactivé

  • 1 = Irrécupérable

  • 2 = Erreur

  • 3 = Avertissement

  • 4 = Information

  • 5 = Débogage

  • 6 = Suivi

LogPath

Indique l’emplacement des fichiers de journal Snowflake pour les clients qui utilisent le pilote ODBC.

MapToLongVarchar

Spécifie la longueur d’une chaîne à partir de laquelle il faut commencer à mapper les valeurs de chaîne vers un type de données ODBC SQL_LONGVARCHAR au lieu des types de données ODBC SQL_CHAR ou SQL_VARCHAR par défaut.

  • < 0 (ou non défini) : mappe les valeurs de chaînes dans leurs types de données ODBC par défaut. Défault = -1.

  • >= 0 : spécifie le nombre maximum de caractères de chaîne à mapper avec les types de données de chaîne ODBC par défaut. Toutes les chaînes plus grandes que cette valeur sont mappées avec SQL_LONGVARCHAR.

Vous pouvez également spécifier ce paramètre en tant que paramètre de connexion. (Voir les instructions pour définir les paramètres sous Windows, macOS et Linux). Si ce paramètre est défini à la fois comme un paramètre de connexion et comme un paramètre de configuration, le paramètre de connexion dans le DSN (ou chaîne de connexion) a la priorité.

Ce paramètre a été introduit dans la version 2.24.3 du pilote ODBC.

NoExecuteInSQLPrepare

Définissez sur true pour configurer le pilote ODBC afin qu’il utilise le comportement ODBC standard lors de la transmission d’instructions DDL (telles que CREATE et DROP) à SQLPrepare() et SQLExecute().

Dans Snowflake, par défaut, lorsque vous transmettez une instruction DDL à SQLPrepare(), le pilote ODBC envoie l’instruction à la source de données pour exécution (pas pour la préparation). Lorsque vous transmettez une instruction DDL à SQLExecute(), le pilote ODBC n’envoie pas l’instruction à la source de données.

Si vous définissez NoExecuteInSQLPrepare sur true, le pilote ODBC suit le comportement standard ODBC. L’appel de SQLPrepare() envoie l’instruction à la source de données pour la préparation (pas l’exécution). L’appel de SQLExecute() envoie l’instruction à la source de données pour l’exécution.

Dans la version 2.21.6 du pilote ODBC, ce paramètre a été introduit.

NoProxy

Indique les modèles de nom d’hôte servant à contourner le serveur proxy (par exemple .amazonaws.com pour contourner l’accès Amazon S3).

Note

Le pilote ODBC Snowflake transmet la valeur NoProxy à l’option curl CURLOPT_NOPROXY. Le format de la valeur NoProxy se trouve ici.

Proxy

Indique un serveur de proxy sous la forme de port <hôte>:<port> pour les clients qui utilisent le pilote ODBC.

Note

Sous Windows, des entrées pour LogLevel et LogPath sont créées et renseignées avec des valeurs par défaut lorsque le pilote ODBC est installé. Cependant, une entrée pour Proxy n’est pas créée pendant l’installation. Pour spécifier un proxy à utiliser avec le pilote, vous devez ajouter manuellement l’entrée à la clé de registre de pilote.

Pour contourner le proxy pour une ou plusieurs adresses IP ou URLs, ajoutez le paramètre NoProxy.

Paramètres de connexion

Paramètres de connexion requis

<nom> (source de données)

Spécifie le nom de votre DSN.

port (Port)

Spécifie le port sur lequel le pilote écoute la communication Snowflake.

Note

Vous n’avez pas besoin de changer la valeur par défaut Port de 443.

pwd (mot de passe)

Un mot de passe est requis pour se connecter à Snowflake. Cependant, pour des raisons de sécurité et d’authentification, Snowflake déconseille fortement le stockage des identifiants de mot de passe directement dans toute définition DSN.

Généralement, les informations d’identification sont transmises au pilote par programmation par l’application client qui tente de se connecter à Snowflake.

Note

Sous Windows, le pilote ODBC affiche un champ Password dans l’outil Data Source Administration. Cependant, le pilote ne stocke pas les valeurs saisies dans le champ. À la place, le pilote nécessite que les informations d’identification soient fournies au moment de la connexion.

server (serveur)

Spécifie le nom d’hôte de votre compte au format suivant :

account_identifier.snowflakecomputing.com

Pour plus d’informations sur les identificateurs de compte, voir Identificateurs de compte.

uid (utilisateur)

Indique le nom de connexion de l’utilisateur Snowflake à authentifier.

Paramètres de connexion facultatifs

BROWSER_RESPONSE_TIMEOUT

Spécifie le nombre de secondes à attendre pour une réponse d’authentification dans un navigateur externe.

La valeur par défaut est 120.

CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED=<Booléen>

Indique si la télémétrie hors bande doit être activée.

La valeur par défaut est true

CLIENT_SESSION_KEEP_ALIVE=<Booléen>

Indique si la session en cours doit rester active après une période d’inactivité ou si l’utilisateur doit se reconnecter. Si la valeur est true, Snowflake garde la session active indéfiniment, même s’il n’y a aucune activité de l’utilisateur. Si la valeur est false, l’utilisateur doit se reconnecter après quatre heures d’inactivité.

La valeur par défaut est false.

database (base de données)

Indique la base de données par défaut à utiliser pour les sessions lancées par le pilote.

maxHttpRetries (base de données)

Indique le nombre maximal de nouvelles tentatives HTTP pour les requêtes dont les demandes HTTP ont échoué avant de renvoyer une erreur. La configuration de maxHttpRetries=0 supprime la limite de tentatives, mais cela fait courir le risque que le pilote relance indéfiniment les appels HTTP qui ont échoué.

La valeur par défaut est 7.

role (rôle)

Indique le rôle par défaut à utiliser pour les sessions lancées par le pilote. Le rôle indiqué doit être un rôle qui a été affecté à l’utilisateur spécifié pour le pilote. Si le rôle spécifié ne correspond à aucun des rôles affectés à l’utilisateur, les sessions lancées par le pilote n’ont pas de rôle au départ. Toutefois, un rôle peut toujours être spécifié depuis la session.

schema (schéma)

Indique le schéma par défaut à utiliser pour les sessions lancées par le pilote.

La valeur par défaut est public.

SecondaryRoles (rôle)

Indique les rôles secondaires à utiliser pour les sessions lancées par le pilote. Les rôles doivent déjà être accordés à l’utilisateur spécifié pour le pilote. Les rôles secondaires peuvent également être activés depuis une session utilisateur à l’aide de la commande USE SECONDARY ROLES.

Les valeurs possibles sont les suivantes :

  • Tous : tous les rôles accordés à l’utilisateur.

  • Aucun : aucun rôle n’est autorisé (désactive les rôles secondaires).

tracing (traçage)

Le niveau de détail à enregistrer dans les fichiers de trace de pilote :

  • 0 = Désactiver le traçage

  • 1 = Uniquement traçage des erreurs fatales

  • 2 = Traçage des erreurs

  • 3 = Traçage des avertissements

  • 4 = Traçage des informations

  • 5 = Traçage des débogages

  • 6 = Traçage détaillé

warehouse (entrepôt)

Indique l’entrepôt par défaut à utiliser pour les sessions lancées par le pilote.

Paramètres de connexion supplémentaires

Note

Sous Windows, ces paramètres de connexion supplémentaires peuvent être définis dans le registre Windows (à l’aide de la commande regedit).

Sous macOS ou Linux, ils sont définis dans le fichier odbc.ini, comme les autres paramètres de connexion.

allowEmptyProxy

Spécifie s’il faut autoriser des valeurs vides pour les paramètres de connexion proxy et no_proxy comme décrit dans les sections suivantes :

La définition de cette valeur produit les effets suivants :

  • true : le pilote traite les valeurs de proxy vides comme des paramètres de proxy valides et remplace toute variable ou tout paramètre d’environnement existant.

  • false : le pilote ignore les valeurs de proxy vides et utilise la variable d’environnement ou les paramètres de configuration spécifiés.

La valeur par défaut est true.

application

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

Ce paramètre peut également être défini en appelant la fonction SQLSetConnectAttr(). Pour plus d’informations, reportez-vous à la section relative au comportement de la fonction SQLSetConnectAttr, spécifique à Snowflake.

authenticator

Spécifie l’authentifiant à utiliser pour vérifier les informations d’identification d’utilisateur :

  • snowflake (par défaut) 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.

    Note

    Le pilote Snowflake ODBC ne prend pas en charge l’authentification externalbrowser en utilisant Microsoft Excel avec MacOS.

  • 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).

  • 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 (dans cette rubrique).

La valeur par défaut est snowflake.

Sous Windows, vous pouvez utiliser l’outil d’administration de sources de données ODBC pour définir ce paramètre.

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

default_binary_size, . default_varchar_size

Spécifie la taille par défaut que le pilote utilise lors de la récupération et de la conversion de valeurs provenant de colonnes BINARY ou VARCHAR de taille indéterminée. Définissez cette option lorsque vous récupérez des valeurs de ces types de colonnes.

Par défaut, le pilote utilise 8388608 (pour les colonnes BINARY) et 16777216 (pour les colonnes VARCHAR) comme tailles par défaut lors de l’allocation de mémoire pour la récupération de la valeur d’une colonne de taille indéterminée.

Pour réduire la quantité de mémoire allouée à ces valeurs, vous pouvez définir default_binary_size et default_varchar_size à la taille maximale des valeurs dans ces types de colonnes.

Note

La définition de ces valeurs ne modifie que le champ SQL_DESC_LENGTH du descripteur de ligne d’implémentation (IRD) et les valeurs correspondantes renvoyées par SQLDescribeCol/SQLColAttribute/SQLColAttributes. Le pilote renvoie toujours l’intégralité des données, même si leur longueur dépasse le paramètre défini.

D’autre part, une application pourrait allouer un tampon de données en fonction de la longueur spécifiée dans ces paramètres, ce qui pourrait tronquer les données en raison d’un manque d’espace dans le tampon. En tant que meilleure pratique, Snowflake recommande de définir une taille par défaut plus grande que la taille maximale des données typiques (par exemple 4 000 ou 8 000 octets) afin de réduire considérablement l’utilisation de la mémoire par rapport aux valeurs par défaut d’origine de 16 777 216/8 388 608 octets et de réduire le risque de troncation des données.

Notez que vous pouvez également utiliser ces paramètres pour éviter l’erreur suivante, qui peut se produire lors de l’utilisation du fournisseur OLE DB de Microsoft (MSDASQL) avec une base de données Snowflake :

Requested conversion is not supported
Cannot get the current row value of column
Copy

Vous pouvez spécifier ces paramètres en tant que paramètres de configuration de connexion (par exemple, dans le fichier simba.snowflake.ini sur macOS et Linux). Si ce paramètre est défini à la fois comme un paramètre de connexion et comme un paramètre de configuration, le paramètre de connexion dans le DSN (ou chaîne de connexion) a la priorité.

Ces paramètres ont été introduits dans la version 2.23.2 du pilote ODBC.

get_size_threshold

Spécifie la taille minimale du fichier, en mégaoctets (MB), pour diviser les fichiers en parties plus petites lors du téléchargement de fichiers avec la commande GET. Les fichiers dont la taille est inférieure à ce seuil n’utiliseront pas le téléchargement en plusieurs parties.

La valeur par défaut est 5 (MB).

Note

La définition de cette valeur en tant que paramètre de connexion remplace la valeur du paramètre de configuration obtenir_taille_seuil correspondant.

login_timeout

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

La valeur par défaut est 300 (secondes).

network_timeout

Indique le temps d’attente, en secondes, pour l’obtention d’une réponse lors d’une interaction avec le service Snowflake avant de renvoyer une erreur. Zéro (0) indique qu’aucun délai d’attente réseau n’est défini.

La valeur par défaut est 0 (secondes).

retryTimeout

Spécifie combien de temps, en secondes, il faut attendre avant de renvoyer une erreur pour les nouvelles tentatives HTTP de requêtes HTTP ayant échoué. Zéro (0) indique qu’aucun délai d’expiration de nouvelle tentative n’est défini.

La valeur par défaut est 300 (secondes).

no_proxy

Spécifie les terminaisons de nom d’hôte qui doivent être autorisées à ignorer le serveur proxy. Par exemple, no_proxy=.amazonaws.com signifie que l’accès d’Amazon S3 n’a pas besoin de passer par le proxy.

Ce paramètre ne prend pas en charge les caractères génériques. Chaque valeur spécifiée doit être l’une des suivantes :

  • La fin d’un nom d’hôte (ou d’un nom d’hôte complet), par exemple :

    • .amazonaws.com

    • myorganization-myaccount.snowflakecomputing.com

  • Une adresse IP, par exemple :

    • 192.196.1.15

Si plusieurs valeurs sont spécifiées, elles doivent être séparées par des virgules, par exemple :

no_proxy=localhost,.my_company.com,myorganization-myaccount.snowflakecomputing.com,192.168.1.15,192.168.1.16
Copy

Note

Ce paramètre est appliqué au processus. Si une autre connexion partage le même processus, le paramètre de proxy doit être identique ou le comportement n’est pas prévisible.

odbc_use_standard_timestamp_columnsize

Ce paramètre booléen a une incidence sur la largeur de colonne (en caractères) renvoyée pour SQL_TYPE_TIMESTAMP. Lorsque ce paramètre est défini sur True, le pilote renvoie 29, en suivant la norme ODBC. Lorsque ce paramètre est défini sur false, le pilote renvoie 35, ce qui laisse de la place pour le décalage de fuseau horaire (par exemple, « -08:00 »).

Cette valeur peut être définie via non seulement le fichier odbc.ini (linux ou macOS) ou le registre Windows, mais également la chaîne de connexion.

La valeur par défaut est false.

passcode

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

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

passcodeInPassword

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é.

La valeur par défaut est off.

proxy

Indique l’URL de serveur de proxy au format http://<nom_hôte>:<port>/ ou <nom_hôte>:<numéro_port> pour que toutes les communications depuis ODBC utilisent le serveur de proxy.

Note

Ce paramètre est appliqué au processus. Si une autre connexion partage le même processus, le paramètre de proxy doit être identique ou le comportement n’est pas prévisible.

put_compresslv

Spécifie le taux de compression que le pilote ODBC utilise lors du transfert des données avec la commande PUT. Ce paramètre remplace le niveau de compression gzip par défaut. Si vous ne spécifiez pas put_compresslv, le pilote ODBC utilise le niveau de compression par défaut.

Les valeurs valides vont de -1 à 9. La valeur par défaut est -1 et spécifie la valeur par défaut Z_DEFAULT_COMPRESSION.

Les valeurs 0 à 9 spécifient un taux de compression personnalisé. 0 fait en sorte que le pilote ODBC utilise un taux de compression inférieur et 9 un taux de compression supérieur. L’utilisation d’un taux de compression plus élevé entraîne des vitesses de transfert de données plus lentes.

Vous pouvez également spécifier ce paramètre en tant que paramètre de configuration (par exemple, dans le simba.snowflake.ini sur macOS et Linux). Si ce paramètre est défini à la fois comme un paramètre de connexion et comme un paramètre de configuration, le paramètre de connexion dans le DSN (ou chaîne de connexion) a la priorité.

Ce paramètre a été introduit dans la version 2.23.3 du pilote ODBC.

put_fastfail

Si vous utilisez des caractères génériques avec la commande PUT pour charger plusieurs fichiers à la fois et que vous souhaitez que le pilote arrête le chargement des fichiers lorsqu’une erreur se produit, réglez ce paramètre sur true.

La valeur par défaut est false , ce qui signifie que si une erreur se produit avec un fichier, le pilote continue de charger le reste des fichiers.

Ce paramètre a été introduit dans la version 2.22.3 du pilote ODBC.

À partir de la version 2.22.5 du pilote ODBC, vous pouvez également spécifier ce paramètre en tant que paramètre de configuration (par exemple, dans le simba.snowflake.ini sur macOS et Linux). Si ce paramètre est défini à la fois comme un paramètre de connexion et comme un paramètre de configuration, le paramètre de connexion dans le DSN (ou chaîne de connexion) a la priorité.

put_maxretries

Spécifie le nombre de fois que le pilote doit réessayer la commande PUT si la commande échoue.

La valeur par défaut est 5.

La plage de valeurs valable pour ce paramètre est de 0 à 100. Si vous spécifiez une valeur en dehors de cette plage, le pilote utilise la valeur par défaut de 5.

Ce paramètre a été introduit dans la version 2.22.3 du pilote ODBC.

À partir de la version 2.22.5 du pilote ODBC, vous pouvez également spécifier ce paramètre en tant que paramètre de configuration (par exemple, dans le simba.snowflake.ini sur macOS et Linux). Si ce paramètre est défini à la fois comme un paramètre de connexion et comme un paramètre de configuration, le paramètre de connexion dans le DSN (ou chaîne de connexion) a la priorité.

put_tempdir

Spécifie le répertoire temporaire à utiliser pour les demandes de commandes PUT. Le pilote utilise ce répertoire temporaire pour créer des fichiers compressés temporaires avant de télécharger ces fichiers vers Snowflake.

Si ce paramètre n’est pas défini, le pilote crée et utilise le répertoire temporaire /tmp/snowflakeTmp_username, où username est le nom d’utilisateur de l’utilisateur actuel dans le système d’exploitation.

Vous pouvez également spécifier ce paramètre en tant que paramètre de configuration (par exemple, dans le simba.snowflake.ini sur macOS et Linux). Si ce paramètre est défini à la fois comme un paramètre de connexion et comme un paramètre de configuration, le paramètre de connexion dans le DSN (ou chaîne de connexion) a la priorité.

Ce paramètre a été introduit dans la version 2.23.1 du pilote ODBC.

query_timeout

Indique le temps d’attente, en secondes, pour qu’une requête se termine avant de renvoyer une erreur. Zéro (0) indique une attente indéfinie.

La valeur par défaut est 0 (secondes).

token=<chaîne>

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=oauth est défini.

La valeur par défaut est aucun.

validateSessionParam

Spécifie comment répondre lorsque l’un des paramètres de connexion de session suivants n’est pas valide :

Les valeurs possibles sont les suivantes :

  • false (par défaut) : se connecte avec succès, mais définit les valeurs des paramètres database et schema comme des chaînes vides et définit le paramètre warehouse comme sa valeur par défaut. Pour plus d’informations sur les entrepôts, voir Utilisation d’entrepôts dans les sessions.

  • true : rejette la connexion et génère une erreur.

Vérification de la connexion réseau à Snowflake avec SnowCD

Après avoir configuré votre pilote, vous pouvez évaluer et dépanner votre connectivité réseau à Snowflake en utilisant SnowCD.

Vous pouvez utiliser SnowCD pendant le processus de configuration initiale et à la demande à tout moment pour évaluer et dépanner votre connexion réseau à Snowflake.

Connexion via un serveur proxy

Les instructions de configuration d’une connexion au serveur de proxy dépendent de votre système d’exploitation et de la version du pilote :

Système d’exploitation

Version du pilote

Instructions prises en charge

Linux

2.16.0 (du 3 mai 2018) ou ultérieur

2.13.18 (du 7 février 2018) - 2.15.0 (du 30 avril 2018)

Utilisation de variables d’environnement

2.13.17 ou antérieur

Utilisation des paramètres de configuration

macOS

2.16.0 (du 3 mai 2018) ou ultérieur

2.14.0 (du 28 mars 2018) - 2.15.0 (du 30 avril 2018)

Utilisation de variables d’environnement

2.13.21 ou antérieur

Utilisation des paramètres de configuration

Windows

2.16.0 (du 3 mai 2018) ou ultérieur

2.15.0 (du 30 avril 2018)

Utilisation de variables d’environnement

2.14.0 ou antérieur

Utilisation des paramètres de configuration

Note

Les dernières versions du pilote ODBC , indiquées ci-dessus, prennent en charge toutes les options de configuration répertoriées. Les options sont répertoriées dans l’ordre de priorité. Si plus d’une option est définie, le paramètre ayant la priorité la plus élevée est appliqué.

Utilisation des paramètres de connexion

Pour se connecter via un serveur de proxy, ajoutez les paramètres de connexion suivants au DSN :

  • proxy

  • no_proxy

Par exemple :

[connection]
Description = SnowflakeDB
Driver      = SnowflakeDSIIDriver
Locale      = en-US
server      = myorganization-myaccount.snowflakecomputing.com
proxy       = http://proxyserver.company:80
no_proxy    = .amazonaws.com
Copy

Voir Paramètres de connexion pour la description des paramètres.

Utilisation des paramètres de configuration

Note

Ces paramètres sont obsolètes (c’est-à-dire qu’ils ne sont plus pris en charge) dans les versions récentes du pilote ODBC. Voir le tableau des options prises en charge dans Connexion via un serveur de proxy. Lorsque vous mettez à niveau votre pilote, configurez les paramètres de votre serveur de proxy en utilisant les variables d’environnement ou les paramètres de connexion.

Pour vous connecter via un serveur de proxy, ajoutez les paramètres de configuration suivants :

  • Proxy

  • NoProxy

Voir Paramètres de configuration pour la description des paramètres.

Utilisation de variables d’environnement

Pour vous connecter via un serveur de proxy, configurez les variables d’environnement suivantes :

  • http_proxy

  • https_proxy

  • no_proxy

Note

Ces variables d’environnement sont sensibles à la casse pour Linux et macOS, et doivent être définies en minuscules. Pour Windows, les variables d’environnement sont insensibles à la casse.

Par exemple :

  • Linux ou macOS :

    export http_proxy=http://proxyserver.company.com:80
    export https_proxy=http://proxyserver.company.com:80
    
    Copy

    Si le serveur proxy nécessite un nom d’utilisateur et un mot de passe, indiquez les informations d’identification, par exemple :

    export https_proxy=http://username:password@proxyserver.company.com:80
    
    Copy
  • Windows :

    set http_proxy=http://proxyserver.company.com:80
    set https_proxy=http://proxyserver.company.com:80
    
    Copy

    Si le serveur proxy nécessite un nom d’utilisateur et un mot de passe, indiquez les informations d’identification, par exemple :

    set https_proxy=http://username:password@proxyserver.company.com:80
    
    Copy

En option, vous pouvez définir no_proxy pour contourner le proxy pour des communications spécifiques (par exemple no_proxy=.amazonaws.com pour contourner l’accès Amazon S3).

Utilisation de la connexion unique (SSO) pour l’authentification

Si vous avez configuré Snowflake pour utiliser la connexion unique (SSO), vous pouvez configurer votre application cliente pour utiliser SSO pour l’authentification. Voir Utilisation de SSO avec des applications clientes qui se connectent à Snowflake pour plus de détails.

Utilisation de l’authentification multifactorielle

Snowflake prend en charge la mise en cache des jetons MFA, y compris la combinaison de la mise en cache des jetons MFA avec le SSO.

Pour plus d’informations, voir Utilisation de la mise en cache des jetons MFA pour réduire le nombre d’invites lors de l’authentification — Facultatif.

Utilisation de l’authentification par paire de clés

Le pilote ODBC prend en charge l’authentification par paire de clés et la rotation des clés.

  1. Pour commencer, complétez la configuration initiale pour l’authentification de la paire de clés comme indiqué dans Authentification par paire de clés et rotation de paires de clés.

  2. Modifiez les entrées du nom de source de données (DSN) pour le pilote. Pour plus d’informations sur les entrées DSN, voir la rubrique correspondant à votre système d’exploitation :

    Ajoutez les paramètres suivants (sensibles à la casse) :

    AUTHENTICATOR = SNOWFLAKE_JWT

    Spécifie d’authentifier la connexion Snowflake à l’aide d’une authentification avec une paire de clés et un jeton Web JSON (JWT).

    JWT_TIME_OUT = integer

    En option. Spécifie la durée pendant laquelle Snowflake attend de recevoir le JWT (en secondes) avant l’expiration du délai. Si cela se produit, l’authentification échoue et le pilote renvoie une erreur Invalid JWT token. Pour résoudre les occurrences répétées de l’erreur, augmentez la valeur du paramètre. Par défaut : 30

    PRIV_KEY_FILE = path/rsa_key.p8

    Spécifie le chemin d’accès local au fichier de clé privée que vous avez créé (c’est-à-dire rsa_key.p8).

    La valeur définie dans DSN peut être remplacée en appelant la fonction SQLSetConnectAttr(). Pour plus d’informations, reportez-vous à la section relative au comportement de la fonction SQLSetConnectAttr, spécifique à Snowflake.

    PRIV_KEY_FILE_PWD = <password>

    Spécifie le code d’authentification pour décoder le fichier de clé privée.

    Ce paramètre ne doit être défini que si le paramètre PRIV_KEY_FILE est également défini.

    La valeur définie dans DSN peut être remplacée en appelant la fonction SQLSetConnectAttr(). Pour plus d’informations, reportez-vous à la section relative au comportement de la fonction SQLSetConnectAttr, spécifique à Snowflake.

  3. Enregistrez les paramètres.

Gestion des fichiers journaux

Pour vous aider à suivre les problèmes qui peuvent survenir, vous pouvez activer la journalisation dans le pilote ODBC. Le pilote ODBC fournit les options de configuration suivantes que vous pouvez utiliser pour configurer la journalisation et gérer les fichiers journaux :

  • EnablePidLogFileNames : ajoute l’ID du processus au nom d’un fichier journal.

  • LogFileCount : définit le nombre maximum de fichiers journaux enregistrés.

  • LogFileSize : spécifie la taille maximale d’un fichier journal.

  • LogLevel : spécifie les types d’informations à enregistrer.

  • LogPath : définit l’emplacement des fichiers journaux.

Vous pouvez utiliser ces paramètres pour gérer la façon dont vous nommez et stockez les fichiers journaux et la façon dont vous gérez leur rotation. Vous pouvez spécifier la taille et le nombre de fichiers journaux que vous souhaitez conserver avant de les remplacer par des fichiers journaux plus récents. L’exemple suivant ajoute l’ID du processus aux noms de fichiers pour garantir l’unicité. Il définit également la taille maximale des fichiers à 30MB et conserve les 100 fichiers journaux les plus récents.

EnablePidLogFileNames = true  # Appends the process ID to each log file
LogFileSize = 30,145,728      # Sets log files size to 30MB
LogFileCount = 100            # Saves the 100 most recent log files
Copy

Vérification de la version du connecteur ou du pilote OCSP

Snowflake utilise OCSP pour évaluer la chaîne de certificats lors d’une connexion à Snowflake. La version du pilote ou du connecteur et sa configuration déterminent le comportement OCSP. Pour plus d’informations sur la version du pilote ou du connecteur, leur configuration et le comportement de OCSP, voir Configuration d’OCSP.

Serveur de cache de réponse OCSP

Note

Le serveur de cache de réponse OCSP est actuellement pris en charge par le pilote Snowflake ODBC 2.15.0 et supérieur.

Les clients Snowflake initient chaque connexion à un point de terminaison de service Snowflake avec un « handshake » qui établit une connexion sécurisée avant de transférer les données. Dans le cadre du « handshake », un client authentifie le certificat TLS pour le point de terminaison de service. Le statut de révocation du certificat est vérifié en envoyant une demande de certificat client à l’un des serveurs OCSP (Online Certificate Status Protocol) pour le CA (autorité de certification).

Une défaillance de connexion se produit lorsque la réponse du serveur OCSP est retardée au-delà d’un délai raisonnable. Les caches suivants persistent le statut de révocation, ce qui permet de limiter ces problèmes :

  • La mémoire cache, qui continue d’exister durant la vie du processus.

  • Le cache de fichier, qui continue d’exister jusqu’à ce que le répertoire de cache (par exemple ~/.cache/snowflake ou ~/.snowsql/ocsp_response_cache) soit purgé.

  • Le serveur de cache de réponse OCSP Snowflake qui collecte toutes les heures les réponses OCSP des serveurs OCSP du CA et les stocke pendant 24 heures. Les clients peuvent alors interroger le statut de validation d’un certificat Snowflake donné à partir de ce cache de serveur.

    Important

    Si votre politique de serveur refuse l’accès à la plupart ou à la totalité des adresses IP et sites Web externes, vous devez ajouter l’adresse du serveur de cache à la liste d’autorisation pour permettre le fonctionnement normal du service. Le nom d’hôte du serveur de cache est ocsp*.snowflakecomputing.com:80.

    Si vous avez besoin de désactiver le serveur de cache pour une raison quelconque, réglez la variable d’environnement SF_OCSP_RESPONSE_CACHE_SERVER_ENABLED sur false. Notez que la valeur est sensible à la casse et doit être en minuscules.

Si aucune des couches du cache ne contient la réponse OCSP, le client tente alors de récupérer le statut de validation directement depuis le serveur OCSP du CA.