Connexion par le biais de SnowSQL

Ce chapitre décrit comment se connecter à Snowflake en saisissant les paramètres de connexion manuellement. Ce chapitre explique ensuite comment configurer une connexion par défaut pour faciliter l’utilisation, ainsi qu’une ou plusieurs connexions nommées en vue d’utiliser d’autres paramètres de connexion ou de créer plusieurs sessions simultanées.

Dans ce chapitre :

Syntaxe de connexion

$ snowsql <connection_parameters>

<paramètres_connexion> sont un ou plusieurs des éléments suivants. Pour une description détaillée de chaque paramètre, voir Référence Paramètres de connexion (dans ce chapitre).

-a, --accountname TEXT           Name assigned to your Snowflake account. Honors $SNOWSQL_ACCOUNT.
-u, --username TEXT              Username to connect to Snowflake. Honors $SNOWSQL_USER.
-d, --dbname TEXT                Database to use. Honors $SNOWSQL_DATABASE.
-s, --schemaname TEXT            Schema in the database to use. Honors $SNOWSQL_SCHEMA.
-r, --rolename TEXT              Role name to use. Honors $SNOWSQL_ROLE.
-w, --warehouse TEXT             Warehouse to use. Honors $SNOWSQL_WAREHOUSE.
-h, --host TEXT                  Host address for the connection. Honors $SNOWSQL_HOST. (Deprecated)
-p, --port INTEGER               Port number for the connection. Honors $SNOWSQL_PORT. (Deprecated)
--region TEXT                    Region. Honors $SNOWSQL_REGION. (Deprecated; use -a or --accountname instead)
-m, --mfa-passcode TEXT          Token to use for multi-factor authentication (MFA)
--mfa-passcode-in-password       Appends the MFA passcode to the end of the password.
--abort-detached-query           Aborts a query if the connection between the client and server is lost. By default, it won't abort even if the
                                 connection is lost.
--probe-connection               Test connectivity to Snowflake. This option is mainly used to print out the TLS/SSL certificate chain.
--proxy-host TEXT                (DEPRECATED. Use HTTPS_PROXY and HTTP_PROXY environment variables.) Proxy server hostname. Honors $SNOWSQL_PROXY_HOST.
--proxy-port INTEGER             (DEPRECATED. Use HTTPS_PROXY and HTTP_PROXY environment variables.) Proxy server port number. Honors $SNOWSQL_PROXY_PORT.
--proxy-user TEXT                (DEPRECATED. Use HTTPS_PROXY and HTTP_PROXY environment variables.) Proxy server username. Honors $SNOWSQL_PROXY_USER.
                                 Set $SNOWSQL_PROXY_PWD for the proxy server password.
--authenticator TEXT             Authenticator: 'snowflake', 'externalbrowser' (to use any IdP and a web browser),
                                 https://<your_okta_account_name>.okta.com (to use Okta natively), or 'oauth' to authenticate using OAuth.
-v, --version                    Shows the current SnowSQL version, or uses a specific version if provided as a value.
--noup                           Disables auto-upgrade for this run. If no version is specified for -v, the latest version in ~/.snowsql/ is used.
-D, --variable TEXT              Sets a variable to be referred by &<var>. -D tablename=CENUSTRACKONE or --variable db_key=$DB_KEY
-o, --option TEXT                Set SnowSQL options. See the options reference in the Snowflake documentation.
-f, --filename PATH              File to execute.
-q, --query TEXT                 Query to execute.
--config PATH                    Path and name of the SnowSQL configuration file. By default, ~/.snowsql/config.
-P, --prompt                     Forces a password prompt. By default, $SNOWSQL_PWD is used to set the password.
-M, --mfa-prompt                 Forces a prompt for the second token for MFA.
-c, --connection TEXT            Named set of connection parameters to use.
--single-transaction             Connects with autocommit disabled. Wraps BEGIN/COMMIT around statements to execute them as a single transaction,
                                 ensuring all commands complete successfully or no change is applied.
--private-key-path PATH          Path to private key file in PEM format used for key pair authentication. The private key file must be encrypted,
                                 and the passphrase must be specified in the environment variable SNOWSQL_PRIVATE_KEY_PASSPHRASE.
--disable-request-pooling        Disables connection pooling.
-U, --upgrade                    Force upgrade of SnowSQL to the latest version.
-K, --client-session-keep-alive  Keep the session active indefinitely, even if there is no activity from the user.
-?, --help                       Show this message and exit.

Spécification des mots de passe lors de la connexion

Les mots de passe ne peuvent pas être transmis via les paramètres de connexion. Les mots de passe doivent être spécifiés de l’une des façons suivantes :

Note

Dans les environnements Windows, le terminal Cygwin ne vous demande pas votre nom de compte, votre nom d’utilisateur ou votre mot de passe. La raison est que SnowSQL ne peut pas activer le mode TTY sur les terminaux Cygwin.

Utilisation de variables d’environnement

Actuellement, les variables d’environnement ne peuvent être utilisées que pour pré-spécifier certaines valeurs de paramètres de ligne de commande, telles que le mot de passe, l’hôte et la base de données. Les variables d’environnement ne sont pas disponibles pour la substitution de variable SnowSQL, à moins qu’elles ne soient explicitement spécifiées sur la ligne de commande au démarrage de SnowSQL, en utilisant le paramètre de connexion -D ou --variable. Par exemple :

Linux/macOS
$ snowsql ... -D tablename=CENUSTRACKONE --variable db_key=$DB_KEY
Windows
$ snowsql ... -D tablename=CENUSTRACKONE --variable db_key=%DB_KEY%

Dans l’exemple ci-dessus, --variable définit une variable Snowflake nommée db_key sur la variable d’environnement DB_KEY.

Configuration des paramètres de connexion par défaut

Nous vous recommandons de configurer vos paramètres de connexion par défaut pour simplifier le processus de connexion. Ensuite, lorsque vous vous connectez à Snowflake, vous pouvez omettre le nom de votre compte Snowflake, votre nom d’utilisateur et tout autre paramètre que vous avez configuré comme valeurs par défaut.

Pour configurer vos paramètres par défaut :

  1. Ouvrez le fichier de configuration dans un éditeur de texte. Par défaut, le fichier se trouve dans :

    Linux/macOS

    ~/.snowsql/

    Windows

    %USERPROFILE%\.snowsql\

    Note

    Vous pouvez changer l’emplacement par défaut en incluant le paramètre de connexion --config <chemin> au démarrage de SnowSQL.

  2. Dans la section [connections], configurez les paramètres de connexion par défaut en supprimant le symbole de commentaire de l’un des paramètres suivants et en spécifiant les bonnes valeurs :

    [connections]
    #accountname = <string>   # Account name to connect to Snowflake.
    #username = <string>      # User name in the account. Optional.
    #password = <string>      # User password. Optional.
    #dbname = <string>        # Default database. Optional.
    #schemaname = <string>    # Default schema. Optional.
    #warehousename = <string> # Default warehouse. Optional.
    #rolename = <string>      # Default role. Optional.
    #authenticator = <string> # Authenticator: 'snowflake', 'externalbrowser' (to use any IdP and a web browser),  https://<your_okta_account_name>.okta.com (to use Okta natively), 'oauth' to authenticate using OAuth.
    

    Attention

    • Le mot de passe est stocké en texte clair dans le fichier config. Vous devez explicitement sécuriser le fichier pour en restreindre l’accès. Par exemple, sous Linux ou macOS, vous pouvez définir les permissions de lecture pour vous seul en exécutant chmod :

      $ chmod 700 ~/.snowsql/config
      
    • Si votre mot de passe contient des caractères spéciaux, vous devez le mettre entre guillemets simples ou doubles.

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

Après la configuration, 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.

Utilisation de connexions nommées

Pour effectuer plusieurs connexions simultanées à Snowflake, ou simplement pour stocker différents ensembles de configurations de connexion, vous pouvez définir une ou plusieurs connexions nommées.

Définition de connexions nommées dans le fichier de configuration

  1. Ouvrez le fichier de configuration config dans un éditeur de texte. Par défaut, le fichier se trouve dans :

    Linux/macOS

    ~/.snowsql/

    Windows

    %USERPROFILE%\.snowsql\

  2. Ajoutez une section [connections] séparée avec un nom unique pour chaque connexion nommée.

    Par exemple, ce qui suit illustre une connexion nommée my_example_connection pour un compte Snowflake dans la région EU (Francfort) :

    [connections.my_example_connection]
    accountname = xy12345.eu-central-1
    username = jsmith
    password = xxxxxxxxxxxxxxxxxxxx
    dbname = mydb
    schemaname = public
    warehousename = mywh
    

Connexion à Snowflake à l’aide d’une connexion nommée

Utilisez le paramètre de connexion -c <chaîne> (ou --connection <chaîne>) pour spécifier une connexion nommée, où <chaîne> est le nom d’une connexion définie dans le fichier de configuration.

Par exemple, connectez-vous en utilisant la connexion my_example_connection que vous avez créée à l’étape Définition de connexions nommées dans le fichier de configuration (dans ce chapitre) :

$ snowsql -c my_example_connection

Utilisation de l’authentification par paire de clés

Snowflake utilise l’authentification par paire de clés plutôt que l’authentification par nom d’utilisateur/mot de passe typique. Cette méthode d’authentification nécessite une paire de clés de 2048 bits (minimum) RSA. Générez la paire de clés publiques-privées PEM (Privacy Enhanced Mail) via OpenSSL. La clé publique est attribuée à l’utilisateur Snowflake qui utilisera le client Snowflake.

Pour configurer la paire de clés publiques/privées :

  1. Depuis la ligne de commande d’une fenêtre de terminal, générez une clé privée chiffrée.

    Notez que SnowSQL ne prend pas en charge une version non chiffrée de la clé privée.

    Exécutez la commande suivante pour générer la clé privée :

    $ openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8
    

    OpenSSL demande une phrase de chiffrement utilisée pour chiffrer le fichier de la clé privée. Nous vous recommandons d’utiliser une phrase de chiffrement forte pour protéger la clé privée. Enregistrez cette phrase secrète dans un emplacement sécurisé. Vous l’entrerez lorsque vous vous connecterez à Snowflake. Notez que la phrase secrète n’est utilisée que pour protéger la clé privée et ne sera jamais envoyée à Snowflake.

    Exemple de clé privée PEM

    -----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIE6TAbBgkqhkiG9w0BBQMwDgQILYPyCppzOwECAggABIIEyLiGSpeeGSe3xHP1
    wHLjfCYycUPennlX2bd8yX8xOxGSGfvB+99+PmSlex0FmY9ov1J8H1H9Y3lMWXbL
    ...
    -----END ENCRYPTED PRIVATE KEY-----
    
  2. Depuis la ligne de commande, générez la clé publique en faisant référence à la clé privée :

    En supposant que la clé privée soit contenue dans le fichier nommé « rsa_key.p8 », utilisez la commande suivante :

    $ openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
    

    Exemple de clé publique PEM

    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy+Fw2qv4Roud3l6tjPH4
    zxybHjmZ5rhtCz9jppCV8UTWvEXxa88IGRIHbJ/PwKW/mR8LXdfI7l/9vCMXX4mk
    ...
    -----END PUBLIC KEY-----
    
  3. Copiez les fichiers de clés publiques et privées dans un répertoire local en vue de leur stockage. Enregistrez le chemin d’accès aux fichiers. Notez que la clé privée est stockée au format PKCS#8 (Public Key Cryptography Standards) et est chiffrée à l’aide de la phrase de chiffrement que vous avez spécifiée à l’étape précédente ; toutefois, le fichier doit toujours être protégé contre tout accès non autorisé au moyen du mécanisme d’autorisation de fichier fourni par votre système d’exploitation. Il est de votre responsabilité de sécuriser le fichier lorsqu’il n’est pas utilisé.

  4. Attribuez la clé publique à l’utilisateur Snowflake en utilisant ALTER USER. Par exemple :

    ALTER USER jsmith SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
    

    Note

    • Seuls les administrateurs de sécurité (c’est-à-dire les utilisateurs ayant le rôle SECURITYADMIN) ou ayant un rôle supérieur peuvent modifier un utilisateur.

    • Excluez l’en-tête et le pied de page de la clé publique dans l’instruction SQL.

    Vérifiez l’empreinte de la clé publique de l’utilisateur en utilisant DESCRIBE USER :

    DESC USER jsmith;
    +-------------------------------+-----------------------------------------------------+---------+-------------------------------------------------------------------------------+
    | property                      | value                                               | default | description                                                                   |
    |-------------------------------+-----------------------------------------------------+---------+-------------------------------------------------------------------------------|
    | NAME                          | JSMITH                                              | null    | Name                                                                          |
    ...
    ...
    | RSA_PUBLIC_KEY_FP             | SHA256:nvnONUsfiuycCLMXIEWG4eTp4FjhVUZQUQbNpbSHXiA= | null    | Fingerprint of user's RSA public key.                                         |
    | RSA_PUBLIC_KEY_2_FP           | null                                                | null    | Fingerprint of user's second RSA public key.                                  |
    +-------------------------------+-----------------------------------------------------+---------+-------------------------------------------------------------------------------+
    

    Note

    La propriété RSA_PUBLIC_KEY_2_FP est décrite dans Rotation de clé (dans ce chapitre).

  5. Indiquez le chemin d’accès vers le fichier de clé privée soit dans le fichier de configuration soit sur la ligne de commande :

  • Dans le fichier de configuration :

    • Ajoutez le paramètre de connexion private_key_path à vos paramètres de connexion et spécifiez le chemin d’accès local au fichier de clé privée que vous avez créé. La syntaxe n’est pas spécifique à un OS particulier :

      OS pris en charge
      private_key_path = <path>/rsa_key.p8
      
    • Utilisez la variable d’environnement SNOWSQL_PRIVATE_KEY_PASSPHRASE pour définir la phrase secrète afin de déchiffrer le fichier de clé privée. La syntaxe est spécifique à l’OS :

    Linux/macOS
    export SNOWSQL_PRIVATE_KEY_PASSPHRASE='<passphrase>'
    
    Windows
    set SNOWSQL_PRIVATE_KEY_PASSPHRASE='<passphrase>'
    
  • Sur la ligne de commande :

    Indiquez le paramètre de connexion private-key-path et spécifiez le chemin d’accès vers votre fichier de clé privée chiffré :

    $ snowsql -a <account> -u <user> --private-key-path <path>/rsa_key.p8
    

    SnowSQL vous demande la phrase de chiffrement. Vous pouvez également utiliser la variable d’environnement SNOWSQL_PRIVATE_KEY_PASSPHRASE pour définir la phrase secrète de déchiffrement du fichier de clé privée (comme décrit ci-dessus).

Rotation de clé

Snowflake accepte plusieurs clés actives pour permettre une rotation ininterrompue. Faites pivoter et remplacez vos clés publiques et privées en fonction du calendrier d’expiration que vous suivez en interne.

Actuellement, vous pouvez utiliser les paramètres RSA_PUBLIC_KEY et RSA_PUBLIC_KEY_2 pour ALTER USER afin d’associer jusqu’à 2 clés publiques à un seul utilisateur.

Pour faire tourner vos clés :

  1. Effectuez les étapes de la section Utilisation de l’authentification par paire de clés pour :

    • Générer un nouvel ensemble de clés privées et publiques.

    • Attribuer la clé publique à l’utilisateur. Définir la valeur de la clé publique sur RSA_PUBLIC_KEY ou RSA_PUBLIC_KEY_2 (la valeur de la clé qui n’est pas actuellement utilisée). Par exemple :

      alter user jsmith set rsa_public_key_2='JERUEHtcve...';
      
  2. Mettez à jour le code pour vous connecter à Snowflake. Spécifiez la nouvelle clé privée.

    Snowflake vérifie la bonne clé publique active pour l’authentification sur la base de la clé privée soumise avec vos informations de connexion.

  3. Retirez l’ancienne clé publique du profil utilisateur. Par exemple :

    alter user jsmith unset rsa_public_key;
    

Utilisation d’un serveur de proxy

Pour utiliser un serveur de proxy, configurez les variables d’environnement suivantes :

  • HTTP_PROXY

  • HTTPS_PROXY

  • NO_PROXY

Note

Les paramètres proxy, c’est-à-dire proxy_host, proxy_port, proxy_user et SNOWFLAKE_PROXY_PWD dans la ligne de commande et le fichier de configuration, sont obsolètes. Utilisez plutôt les variables d’environnement.

Cela nécessite cependant SnowSQL 1.1.20 ou une version supérieure. Pour déterminer votre version actuelle, voir Comprendre la gestion des versions SnowSQL.

Par exemple :

Linux/macOS
export HTTP_PROXY='http://username:password@proxyserver.company.com:80'
export HTTPS_PROXY='http://username:password@proxyserver.company.com:80'
Windows
set HTTP_PROXY=http://username:password@proxyserver.company.com:80
set HTTPS_PROXY=http://username:password@proxyserver.company.com:80

Astuce

Le modèle de sécurité de Snowflake ne permet pas les proxys Secure Sockets Layer (SSL) (utilisant un certificat HTTPS). Votre serveur de proxy doit utiliser une autorité de certification accessible au public (CA), réduisant ainsi les risques potentiels de sécurité tels qu’une attaque MITM (Man In The Middle) via un proxy compromis.

Si vous devez utiliser votre proxy SSL, nous vous recommandons fortement de mettre à jour la politique du serveur pour passer par le certificat Snowflake, afin qu’aucun certificat ne soit modifié au milieu des communications.

En option, NO_PROXY peut être utilisé pour contourner le proxy pour des communications spécifiques. Par exemple, l’accès Amazon S3 peut être contourné en spécifiant NO_PROXY=".amazonaws.com".

Utilisation d’un navigateur Web pour l’authentification fédérée/SSO

Pour utiliser l’authentification SSO par navigateur pour SnowSQL, ajoutez --authenticator externalbrowser à vos paramètres de connexion SnowSQL :

Par exemple :

$ snowsql -a <accountname> -u <username> --authenticator externalbrowser

Pour plus d’informations sur l’authentification fédérée et SSO, voir Gestion/utilisation de l’authentification fédérée.

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 SnowSQL 1.1.55 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/SSL 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 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 blanche 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.

Gestion des erreurs de connexion

Cannot open self /usr/bin/snowsql or archive /usr/bin/snowsql.pkg (Linux uniquement)

En raison d’une limitation dans pyinstaller (le programme qui enveloppe SnowSQL dans un exécutable autonome à partir du code source Python), prelink efface par erreur des parties de l’exécutable snowsql et provoque cette erreur.

Pour éviter ce problème, le programme d’installation SnowSQL tente de mettre à jour le fichier de configuration prelink dans /etc/prelink.conf.d/snowsql.conf pour l’exécutable snowsql, de sorte que prelink ne modifie pas le fichier. Malheureusement, cette mise à jour de configuration ne peut pas être effectuée par le processus de mise à niveau automatique SnowSQL.

Entretenez-vous avec votre administrateur système pour exécuter la commande suivante sur votre poste de travail :

$ sudo bash -c "echo '-b snowsql' > /etc/prelink.conf.d/snowsql.conf"

Note

Si vous installez snowsql dans votre répertoire personnel, ce problème est moins susceptible de se produire, car prelink est configuré, par défaut, pour analyser les répertoires binaires partagés (par exemple /usr/bin ou /bin) et ne modifie pas les programmes dans votre répertoire personnel.

Référence Paramètres de connexion

-a , --accountname

Description

Obligatoire

Spécifie le nom complet de votre compte (fourni par Snowflake). Notez que votre nom de compte complet peut inclure des segments supplémentaires identifiant la région et la plate-forme Cloud où votre compte est hébergé.

Exemples de noms de compte par région

Si votre nom de compte est xy12345 :

Plate-forme Cloud/Région

Nom de compte complet

AWS

US Ouest (Oregon)

xy12345

US Est (Ohio)

xy12345.us-east-2.aws

US Est (Virginie du Nord)

xy12345.us-east-1

US Est (Gouvernement commercial - Virginie du Nord)

xy12345.us-east-1-gov.aws

Canada (Centre)

xy12345.ca-central-1.aws

EU (Irlande)

xy12345.eu-west-1

EU (Francfort)

xy12345.eu-central-1

Asie-Pacifique (Tokyo)

xy12345.ap-northeast-1.aws

Asie Pacifique (Mumbai)

xy12345.ap-south-1.aws

Asie-Pacifique (Singapour)

xy12345.ap-southeast-1

Asie-Pacifique (Sydney)

xy12345.ap-southeast-2

GCP

US Central1 (Iowa)

xy12345.us-central1.gcp

Europe Ouest2 (Londres)

xy12345.europe-west2.gcp

Europe Ouest4 (Pays-Bas)

xy12345.europe-west4.gcp

Azure

Ouest US 2 (Washington)

xy12345.west-us-2.azure

Est US 2 (Virginie)

xy12345.east-us-2.azure

US Gov Virginia

xy12345.us-gov-virginia.azure

Canada Central (Toronto)

xy12345.canada-central.azure

Europe de l’Ouest (Pays-Bas)

xy12345.west-europe.azure

Suisse Nord (Zurich)

xy12345.switzerland-north.azure

Asie du Sud-Est (Singapour)

xy12345.southeast-asia.azure

Australie Est (Nouvelle-Galles du Sud)

xy12345.australia-east.azure

Important

Si l’une des conditions suivantes est remplie, le nom de votre compte est différent de la structure décrite dans cet exemple :

  • Si votre édition Snowflake est VPS, contactez le support Snowflake pour obtenir des détails sur le nom de votre compte.

  • Si AWS PrivateLink est activé pour votre compte, le nom de votre compte nécessite un segment privatelink supplémentaire. Pour plus de détails, voir AWS PrivateLink et Snowflake.

Ce paramètre de connexion peut également être défini dans le fichier de configuration.

Valeur

Chaîne

De plus, la valeur peut être une variable d’environnement :

Linux/macOS

$SNOWSQL_ACCOUNT

Windows

%SNOWSQL_ACCOUNT%

Par exemple, sous Linux ou macOS :

$ export SNOWSQL_ACCOUNT=xy12345

$ snowsql -a $SNOWSQL_ACCOUNT
Par défaut

Aucun

-u , --username

Description

Indique le nom de connexion de l’utilisateur avec lequel vous vous connectez au compte spécifié.

Ce paramètre de connexion peut également être défini dans le fichier de configuration.

Valeur

Chaîne

La valeur peut être une variable d’environnement :

Linux/macOS

$SNOWSQL_USER

Windows

%SNOWSQL_USER%

Par exemple, sous Linux ou macOS :

$ export SNOWSQL_USER=jdoe

$ snowsql -u $SNOWSQL_USER
Par défaut

Aucun

-d , --dbname

Description

Spécifie la base de données à utiliser par défaut dans la session client (peut être modifiée après connexion).

Valeur

Chaîne

La valeur peut être une variable d’environnement :

Linux/macOS

$SNOWSQL_DATABASE

Windows

%SNOWSQL_DATABASE%

Ce paramètre de connexion peut également être défini dans le fichier de configuration.

Par défaut

Aucun

-s , --schemaname

Description

Spécifie le schéma de base de données à utiliser par défaut dans la session client (peut être modifié après connexion).

Valeur

Chaîne

La valeur peut être une variable d’environnement :

Linux/macOS

$SNOWSQL_SCHEMA

Windows

%SNOWSQL_SCHEMA%

Ce paramètre de connexion peut également être défini dans le fichier de configuration.

Par défaut

Aucun

-r , --rolename

Description

Spécifie le rôle à utiliser par défaut pour accéder aux objets Snowflake dans la session client (peut être modifié après connexion).

Ce paramètre de connexion peut également être défini dans le fichier de configuration.

Valeur

Chaîne

La valeur peut être une variable d’environnement :

Linux/macOS

$SNOWSQL_ROLE

Windows

%SNOWSQL_ROLE%

Par défaut

Aucun

-w , --warehouse

Description

Spécifie l’entrepôt virtuel à utiliser par défaut pour les requêtes, le chargement, etc. dans la session client (peut être modifié après connexion).

Ce paramètre de connexion peut également être défini dans le fichier de configuration.

Valeur

Chaîne

La valeur peut être une variable d’environnement :

Linux/macOS

$SNOWSQL_WAREHOUSE

Windows

%SNOWSQL_WAREHOUSE%

Par défaut

Aucun

-h, --hostObsolète

Description

Fourni pour une rétrocompatibilité/utilisation interne

Indique l’adresse de l’hôte auquel vous vous connectez dans Snowflake.

Ce paramètre n’est plus utilisé, car l’adresse de l’hôte est déterminée automatiquement en concaténant le nom de compte que vous avez spécifié (en utilisant -a ou --account) et le domaine Snowflake (snowflakecomputing.com).

Valeur

Chaîne

Par défaut

Aucun

-p, --portObsolète

Description

Fourni pour une rétrocompatibilité/utilisation interne

Indique le numéro de port à utiliser pour la connexion.

Ce paramètre n’est plus utilisé, car le numéro de port pour Snowflake est toujours 443.

Valeur

Chaîne

Par défaut

Aucun

--regionObsolète

Description

Fourni pour une rétrocompatibilité/utilisation interne

Spécifie l’ID de la région où se trouve votre compte.

Ce paramètre n’est plus utilisé. Au lieu de cela, incluez les informations de région dans le nom du compte ; pour plus de détails, voir -a , --accountname (dans cette rubrique).

Valeur

N/A

Par défaut

N/A

-m , --mfa-passcode

Description

Spécifie le second jeton pour la MFA (authentification multifactorielle) si vous validez le code d’accès dans la ligne de commande.

Valeur

Chaîne

Par défaut

Aucun

--mfa-passcode-in-password

Description

Ajoute le code d’accès MFA à la fin du mot de passe.

Vous pouvez forcer l’invite du mot de passe et saisir le mot de passe suivi du code d’accès MFA. Par exemple, si le jeton MFA était 123456 et que le mot de passe était PASSWORD :

$ snowsql ... -P ...

Password: PASSWORD123456
Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

--abort-detached-query

Description

Annule une requête si la connexion entre le client et le serveur est perdue.

Valeur

Booléen

Par défaut

Faux (c’est-à-dire qu’une requête active ne s’annule pas si la connexion est perdue).

--probe-connection

Description

Tester la connectivité avec Snowflake et rapporter les résultats. Notez qu’il s’agit d’une option en test utilisée principalement pour imprimer la chaîne de certificats TLS/SSL.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

--authenticator

Description

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

Valeur

Chaîne (constante) :

  • snowflake utilise l’authentificateur interne Snowflake.

  • externalbrowser uses your web browser to authenticate with Okta, ADFS, or any other SAML 2.0-compliant identity provider (IdP) that has been defined for your account.

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

  • oauth s’authentifie à 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).

Pour plus d’informations, voir Gestion/utilisation de l’authentification fédérée et OAuth avec les clients, les pilotes et les connecteurs.

Par défaut

snowflake

Note

L’authentificateur externalbrowser n’est pris en charge que dans les fenêtres de terminal qui ont accès à un navigateur Web. Par exemple, une fenêtre de terminal sur une machine distante accessible via une session SSH (Secure Shell) peut nécessiter une configuration supplémentaire pour ouvrir un navigateur Web.

Si vous n’avez pas accès à un navigateur Web, mais que votre IdP est Okta, vous pouvez utiliser Okta natif (c’est-à-dire que vous devenez définir l’authentificateur sur https://<votre_nom_compte_okta>.okta.com).

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.

-v , --version

Description

Utilisez la version spécifiée de SnowSQL ou, si aucune version n’est spécifiée, affichez la dernière version de SnowSQL installée.

Valeur

Chaîne

Par défaut

Aucun

--versions

Description

Répertorie toutes les versions disponibles de SnowSQL qui peuvent être installées et exécutées. Pour installer une version antérieure de SnowSQL à partir de la liste, utilisez l’option -v et spécifiez la version que vous voulez installer.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

--noup

Description

Désactive la mise à niveau automatique pour cette exécution. Si cette option n’est pas incluse et qu’une version plus récente est disponible, SnowSQL télécharge et installe automatiquement la nouvelle version. La prochaine fois que vous exécuterez SnowSQL, la nouvelle version sera utilisée.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

-D , --variable

Description

Définit des variables SnowSQL sur la ligne de commande. Cette option peut être utilisée pour définir des variables spécifiques à utiliser dans Snowflake.

Valeur

Chaîne

Par exemple :

$ snowsql ... -D tablename=CENUSTRACKONE --variable db_key=$DB_KEY ...
Par défaut

Aucun

-o , --option

Description

Définit les options de configuration SnowSQL sur la ligne de commande. Ces options remplacent toutes les options qui ont été définies dans le fichier de configuration SnowSQL. Pour la description des options que vous pouvez définir/annuler, voir Référence d’options de configuration SnowSQL.

Valeur

Chaîne

Par défaut

Aucun

-f , --filename

Description

Spécifie un fichier SQL à exécuter en mode batch.

La valeur peut être un nom de fichier (y compris le chemin du répertoire, si nécessaire) ou une URL menant au fichier.

Valeur

Chaîne

Par défaut

Aucun

-q , --query

Description

Spécifie une requête SQL à exécuter.

La valeur peut être une seule requête SQL ou une liste de requêtes séparées par un point-virgule à exécuter (par exemple 'select current_user(); select current_role()').

Valeur

Chaîne

Par défaut

Aucun

--config

Description

Spécifie l’emplacement (c’est-à-dire le chemin du répertoire) du fichier de configuration SnowSQL. Intégrez ce paramètre de connecteur si vous voulez déplacer ou copier le fichier de configuration à partir de l’emplacement par défaut.

Valeur

Chaîne

Par défaut

Spécifique à l’OS :

Linux/macOS

~/.snowsql/

Windows

%USERPROFILE%\.snowsql\

-P , --prompt

Description

Force une demande de mot de passe lorsque le mot de passe est stocké dans le fichier de configuration SnowSQL.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

-M, --mfa-prompt

Description

Force une invite pour le deuxième jeton pour la MFA. Vous pouvez aussi utiliser --mfa-passcode <chaîne> si vous voulez valider avec la ligne de commande.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

-c , --connection

Description

Spécifie une connexion à utiliser, où la chaîne spécifiée est le nom d’une connexion définie dans le fichier de configuration SnowSQL. Pour plus de détails, voir Utilisation de connexions nommées (dans ce chapitre).

Valeur

Chaîne

Par défaut

Aucun

--single-transaction

Description

Combinée avec --filename, --query ou des commandes d’entrée standard, cette option ajoute BEGIN/COMMIT autour des instructions pour s’assurer que toutes les commandes aboutissent avec succès ou qu’aucun changement n’est appliqué.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

Note

Notez que si les commandes d’entrée utilisent BEGIN, COMMIT ou ROLLBACK, cette option ne fonctionnera pas correctement. De plus, si une commande ne peut pas être exécutée à l’intérieur d’un bloc de transaction, cette option entraînera l’échec de la commande.

--private-key-path

Description

Chemin d’accès au fichier de clé privée au format PEM utilisé pour l’authentification par paire de clés. Le fichier de clé privée doit être chiffré, et la phrase de chiffrement doit être spécifiée dans la variable d’environnement SNOWSQL_PRIVATE_KEY_PASSPHRASE.

Valeur

Chaîne

Par défaut

Aucun

--disable-request-pooling

Description

Par défaut, snowsql utilise le pooling de connexions. Le pooling de connexions réduit généralement le temps de latence nécessaire pour établir une connexion. Toutefois, cela peut ralentir le basculement du client vers un DNS alternatif lorsqu’un problème de DNS se produit. Ce paramètre vous permet de désactiver le pooling de connexions.

Ce paramètre s’applique uniquement aux clients pour lesquels la réplication est activée.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

-U , --upgrade

Description

Force la mise à niveau de SnowSQL vers la dernière version si elle n’est pas téléchargée dans le répertoire local.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

Note

Nécessite l’exécutable Bootstrap de SnowSQL 1.1.63 ou une version plus récente. Téléchargez-le à partir de l’UI.

-K , --client-session-keep-alive

Description

Gardez la session active indéfiniment, même s’il n’y a aucune activité de l’utilisateur.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A

Note

En interne, le paramètre CLIENT_SESSION_KEEP_ALIVE est défini sur true pour la session.

-? , --help

Description

Affiche le guide d’utilisation rapide de ligne de commande.

Valeur

N/A (le paramètre ne prend pas de valeur)

Par défaut

N/A