Verbinden über SnowSQL

Unter diesem Thema wird beschrieben, wie Sie eine Verbindung zu Snowflake durch manuelle Eingabe der Verbindungsparameter herstellen. Weiterhin wird erläutert, wie Sie eine Standardverbindung für eine erleichterte Bedingung konfigurieren, sowie eine oder mehrere benannte Verbindungen, um alternative Verbindungseinstellungen zu verwenden oder mehrere gleichzeitige Sitzungen zu erstellen.

Unter diesem Thema:

Verbindungssyntax

$ snowsql <connection_parameters>

Dabei steht <Verbindungsparameter> für einen oder mehrere der folgenden Parameter. Eine detaillierte Beschreibung der Parameter finden Sie unter Übersicht der Verbindungsparameter (unter diesem Thema).

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

Festlegen von Kennwörtern beim Verbinden

Kennwörter können nicht über Verbindungsparameter übergeben werden. Kennwörter müssen auf eine der folgenden Arten angegeben werden:

  • Eingabe über die interaktive Eingabeaufforderung in SnowSQL (gilt nur für Kennwörter).

  • Definiert in der SnowSQL-Konfigurationsdatei mit der Option password. Weitere Details dazu finden Sie unter Konfigurieren der Standardverbindungseinstellungen (unter diesem Thema).

  • Angabe unter Verwendung der Umgebungsvariablen SNOWSQL_PWD. Weitere Details dazu finden Sie unter Verwenden von Umgebungsvariablen (unter diesem Thema).

Bemerkung

In Windows-Umgebungen fragt das Cygwin-Terminal nicht nach Ihrem Kontonamen, Benutzernamen oder Kennwort. Dies liegt daran, dass SnowSQL den TTY-Modus in Cygwin-Terminals nicht aktivieren kann.

Verwenden von Umgebungsvariablen

Derzeit können Umgebungsvariablen nur verwendet werden, um vorab einige Parameterwerte der Befehlszeile wie Kennwort, Host und Datenbank anzugeben. Umgebungsvariablen stehen nicht für die SnowSQL-Variablenersetzung zur Verfügung, es sei denn, sie werden beim Start von SnowSQL explizit auf der Befehlszeile angegeben, entweder mit dem Verbindungsparameter -D oder --variable. Beispiel:

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

Im obigen Beispiel wird mit --variable die Snowflake-Variable mit dem Namen db_key auf die Umgebungsvariable DB_KEY eingestellt.

Konfigurieren der Standardverbindungseinstellungen

Wir empfehlen, dass Sie Standardverbindungsparameter konfigurieren, um den Verbindungsprozess zu vereinfachen. Danach können Sie beim Verbinden mit Snowflake Ihren Snowflake-Kontonamen, Ihren Benutzernamen und alle anderen Parameter weglassen, die Sie als Standardwerte konfiguriert haben.

So konfigurieren Sie Ihre Standardeinstellungen:

  1. Öffnen Sie die Konfiguration sdatei in einem Texteditor. Standardmäßig befindet sich die Datei in folgendem Verzeichnis:

    Linux/macOS

    ~/.snowsql/

    Windows

    %USERPROFILE%\.snowsql\

    Bemerkung

    Sie können den Standardspeicherort ändern, indem Sie den Verbindungsparameter --config <Pfad> beim Starten von SnowSQL einbeziehen.

  2. Konfigurieren Sie im Abschnitt [connections] die Standardverbindungsparameter, indem Sie das Kommentarsymbol aus einem der folgenden Parameter entfernen und die korrekten Werte angeben:

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

    Achtung

    • Das Kennwort wird im Nur-Text-Format in der Datei config gespeichert. Sie müssen die Datei explizit sichern, um den Zugriff einzuschränken. Beispielsweise können Sie unter Linux oder macOS die Leserechte für sich allein festlegen, indem Sie chmod ausführen:

      $ chmod 700 ~/.snowsql/config
      
    • Wenn Ihr Kennwort Sonderzeichen enthält, müssen Sie das Kennwort in einfache oder in doppelte Anführungszeichen setzen.

Überprüfen der Netzwerkverbindung zu Snowflake mit SnowCD

Nach der Konfiguration können Sie die Netzwerkkonnektivität zu Snowflake mit SnowCD testen und Probleme beheben.

Sie können während der Erstkonfiguration und bei Bedarf jederzeit SnowCD verwenden, um Ihre Netzwerkverbindung zu Snowflake zu testen und Probleme zu beheben.

Verwenden benannter Verbindungen

Um mehrere gleichzeitige Verbindungen zu Snowflake herzustellen oder einfach verschiedene Gruppen von Verbindungskonfigurationen zu speichern, können Sie eine oder mehrere benannte Verbindungen definieren.

Definieren benannter Verbindungen in der Konfigurationsdatei

  1. Öffnen Sie die Konfigurationsdatei config in einem Texteditor. Standardmäßig befindet sich die Datei in folgendem Verzeichnis:

    Linux/macOS

    ~/.snowsql/

    Windows

    %USERPROFILE%\.snowsql\

  2. Fügen Sie einen separaten [connections]-Abschnitt mit einem eindeutigen Namen für jede benannte Verbindung hinzu.

    Im Folgenden wird beispielsweise eine Verbindung mit dem Namen my_example_connection für ein Snowflake-Konto in der Region EU (Frankfurt) hinzugefügt:

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

Verbinden mit Snowflake mit einer benannten Verbindung

Verwenden Sie den Verbindungsparameter -c <Zeichenfolge> (oder --connection <Zeichenfolge>), um eine benannte Verbindung anzugeben, wobei <Zeichenfolge> der Name einer Verbindung ist, die in der Konfigurationsdatei definiert wurde.

Verwenden Sie beispielsweise die my_example_connection-Verbindung, die Sie unter Definieren benannter Verbindungen in der Konfigurationsdatei (unter diesem Thema) erstellt haben:

$ snowsql -c my_example_connection

Verwenden der Schlüsselpaar-Authentifizierung

Snowflake unterstützt die Verwendung von Schlüsselpaar-Authentifizierung anstelle der typischen Authentifizierung durch Benutzernamen und Kennwort. Dieses Authentifizierungsverfahren erfordert ein 2048-Bit-RSA-Schlüsselpaar (Minimum). Generieren Sie das öffentlich-private PEM (Privacy Enhanced Mail)-Schlüsselpaar unter Verwendung von OpenSSL. Der öffentliche Schlüssel wird dem Snowflake-Benutzer zugewiesen, der den Snowflake-Client verwendet.

So konfigurieren Sie das Public/Private-Schlüsselpaar:

  1. Generieren Sie über die Befehlszeile in einem Terminalfenster einen privaten Schlüssel:

    Beachten Sie, dass SnowSQL keine unverschlüsselte Version des privaten Schlüssels unterstützt.

    Führen Sie den folgenden Befehl aus, um den privaten Schlüssel zu generieren:

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

    OpenSSL fragt nach einer Passphrase, die zur Verschlüsselung der privaten Schlüsseldatei verwendet wird. Wir empfehlen, zum Schutz des privaten Schlüssels eine starke Passphrase zu verwenden. Notieren Sie sich diese Passphrase an einem sicheren Ort. Sie müssen sie beim Herstellen der Verbindung mit Snowflake eingeben. Beachten Sie, dass die Passphrase nur zum Schutz des privaten Schlüssels verwendet wird und niemals an Snowflake gesendet wird.

    Beispiel für einen privaten PEM-Schlüssel

    -----BEGIN ENCRYPTED PRIVATE KEY-----
    MIIE6TAbBgkqhkiG9w0BBQMwDgQILYPyCppzOwECAggABIIEyLiGSpeeGSe3xHP1
    wHLjfCYycUPennlX2bd8yX8xOxGSGfvB+99+PmSlex0FmY9ov1J8H1H9Y3lMWXbL
    ...
    -----END ENCRYPTED PRIVATE KEY-----
    
  2. Generieren Sie über die Befehlszeile den öffentlichen Schlüssel, indem Sie auf den privaten Schlüssel verweisen:

    Angenommen, der private Schlüssel befindet sich in der Datei „rsa_key.p8“, dann verwenden Sie den folgenden Befehl:

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

    Beispiel für einen öffentlichen PEM-Schlüssel

    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy+Fw2qv4Roud3l6tjPH4
    zxybHjmZ5rhtCz9jppCV8UTWvEXxa88IGRIHbJ/PwKW/mR8LXdfI7l/9vCMXX4mk
    ...
    -----END PUBLIC KEY-----
    
  3. Kopieren Sie die Dateien der öffentlichen und privaten Schlüssel zur Speicherung in ein lokales Verzeichnis. Zeichnen Sie den Pfad zu den Dateien auf. Beachten Sie, dass der private Schlüssel im Format PKCS#8 (Public Key Cryptography Standards) gespeichert und mit der im vorherigen Schritt angegebenen Passphrase verschlüsselt wird; die Datei sollte jedoch weiterhin mit dem von Ihrem Betriebssystem bereitgestellten Dateiberechtigungsmechanismus vor unbefugtem Zugriff geschützt sein. Es liegt in Ihrer Verantwortung, die Datei zu sichern, wenn sie nicht verwendet wird.

  4. Weisen Sie dem Snowflake-Benutzer den öffentlichen Schlüssel mit ALTER USER zu. Beispiel:

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

    Bemerkung

    • Nur Sicherheitsadministratoren (d. h. Benutzer mit der Rolle SECURITYADMIN oder höher) können andere Benutzer ändern.

    • Schließen Sie die Kopf- und Fußzeile des öffentlichen Schlüssels in der SQL-Anweisung aus.

    Überprüfen Sie den Fingerabdruck des öffentlichen Schlüssels des Benutzers mithilfe von 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.                                  |
    +-------------------------------+-----------------------------------------------------+---------+-------------------------------------------------------------------------------+
    

    Bemerkung

    Die RSA_PUBLIC_KEY_2_FP-Eigenschaft wird unter Schlüsselrotation (unter diesem Thema) beschrieben.

  5. Geben Sie den Pfad zur Datei des privaten Schlüssels entweder in der Konfigurationsdatei oder über die Befehlszeile an:

  • In der Konfigurationsdatei:

    • Fügen Sie den Verbindungsparameter private_key_path zu Ihren Verbindungseinstellungen hinzu, und geben Sie den lokalen Pfad zu der von Ihnen erstellten Datei des privaten Schlüssels an. Die Syntax ist nicht OS-spezifisch:

      Unterstützte OS
      private_key_path = <path>/rsa_key.p8
      
    • Verwenden Sie die Umgebungsvariable SNOWSQL_PRIVATE_KEY_PASSPHRASE, um die Passphrase für die Entschlüsselung der Datei des privaten Schlüssels festzulegen. Die Syntax ist OS-spezifisch:

    Linux/macOS
    export SNOWSQL_PRIVATE_KEY_PASSPHRASE='<passphrase>'
    
    Windows
    set SNOWSQL_PRIVATE_KEY_PASSPHRASE='<passphrase>'
    
  • Über die Befehlszeile:

    Fügen Sie den Verbindungsparameter private-key-path hinzu, und geben Sie den Pfad zu Ihrer verschlüsselten Datei des privaten Schlüssels an:

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

    SnowSQL fordert Sie zur Eingabe der Passphrase auf. Verwenden Sie optional die Umgebungsvariable SNOWSQL_PRIVATE_KEY_PASSPHRASE, um die Passphrase für die Entschlüsselung der Datei des privaten Schlüssels festzulegen (Beschreibung siehe oben).

Schlüsselrotation

Snowflake unterstützt mehrere aktive Schlüssel, um eine ununterbrochene Rotation zu ermöglichen. Rotieren und ersetzen Sie Ihre öffentlichen und privaten Schlüssel basierend auf dem Ablaufzeitplan, den Sie intern einhalten.

Derzeit können Sie die Parameter RSA_PUBLIC_KEY und RSA_PUBLIC_KEY_2 für ALTER USER verwenden, um einem einzelnen Benutzer bis zu zwei öffentliche Schlüssel zuzuordnen.

So rotieren Sie Ihre Schlüssel:

  1. Führen Sie die unter Verwenden der Schlüsselpaar-Authentifizierung angegebenen Schritte aus, um Folgendes zu ermöglichen:

    • Generieren eines neuen privaten und öffentlichen Schlüsselsatzes

    • Zuweisen des öffentlichen Schlüssels an einen Benutzer Setzen Sie den Wert des öffentlichen Schlüssels entweder auf RSA_PUBLIC_KEY oder RSA_PUBLIC_KEY_2 (je nachdem, welcher Schlüsselwert gerade nicht verwendet wird). Beispiel:

      alter user jsmith set rsa_public_key_2='JERUEHtcve...';
      
  2. Aktualisieren Sie den Code, um eine Verbindung zu Snowflake herzustellen. Geben Sie den neuen privaten Schlüssel an.

    Snowflake überprüft den korrekten aktiven öffentlichen Schlüssel für die Authentifizierung basierend auf dem privaten Schlüssel, der mit Ihren Verbindungsinformationen übermittelt wurde.

  3. Entfernen Sie den alten öffentlichen Schlüssel aus dem Benutzerprofil. Beispiel:

    alter user jsmith unset rsa_public_key;
    

Verwenden eines Proxyservers

Um einen Proxyserver zu verwenden, konfigurieren Sie die folgenden Umgebungsvariablen:

  • HTTP_PROXY

  • HTTPS_PROXY

  • NO_PROXY

Bemerkung

Die Proxyparameter (d. h. proxy_host, proxy_port, proxy_user und SNOWFLAKE_PROXY_PWD über die Befehlszeile und in den Konfigurationsdateien) sind veraltet. Verwenden Sie stattdessen die Umgebungsvariablen.

Dies erfordert jedoch SnowSQL 1.1.20 oder höher. Informationen zum Ermitteln Ihrer aktuellen Version finden Sie unter Erläuterungen zur SnowSQL-Versionierung.

Beispiel:

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

Tipp

Das Sicherheitsmodell von Snowflake erlaubt keine Secure Sockets Layer (SSL)-Proxies (unter Verwendung eines HTTPS-Zertifikats). Ihr Proxyserver muss eine öffentlich zugängliche Zertifizierungsstelle (CA) verwenden, um potenzielle Sicherheitsrisiken wie einen MITM (Man In The Middle)-Angriff durch einen kompromittierten Proxy zu reduzieren.

Wenn Sie Ihren SSL-Proxy verwenden müssen, empfehlen wir Ihnen dringend, die Serverrichtlinie zu aktualisieren, um die Snowflake-Zertifikatsprüfung zu bestehen, sodass mitten in der Kommunikation kein Zertifikat geändert wird.

Optional kann NO_PROXY verwendet werden, um den Proxy für bestimmte Arten der Kommunikation zu umgehen. Beispielsweise kann der Zugriff auf Amazon S3 durch Angabe von NO_PROXY=".amazonaws.com" umgangen werden.

Verwenden eines Webbrowsers für Verbundauthentifizierung/SSO

Um die browserbasierte SSO-Authentifizierung für SnowSQL zu verwenden, fügen Sie --authenticator externalbrowser zu Ihren SnowSQL-Verbindungsparametern hinzu:

Beispiel:

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

Weitere Informationen zu Verbundauthentifizierung/SSO finden Sie unter Verwenden und Verwalten der Verbundauthentifizierung.

Überprüfen der OCSP-Konnektor- oder Treiber-Version

Snowflake verwendet OCSP, um die Zertifikatkette beim Herstellen einer Verbindung zu Snowflake auszuwerten. Die Version von Treiber oder Konnektor bestimmt zusammen mit deren Konfiguration das OCSP-Verhalten. Weitere Informationen zur Treiber- oder Konnektor-Version, ihrer Konfiguration und zum OCSP-Verhalten finden Sie unter OCSP-Konfiguration.

OCSP-Antwort-Cacheserver

Bemerkung

Der OCSP-Antwort-Cacheserver wird derzeit von SnowSQL 1.1.55 und höher unterstützt.

Snowflake-Clients initiieren jede Verbindung zu einem Snowflake-Service-Endpunkt mit einem „Handshake“, der eine sichere Verbindung herstellt, bevor tatsächlich Daten übertragen werden. Im Rahmen des Handshakes authentifiziert ein Client das TLS/SSL-Zertifikat für den Service-Endpunkt. Der Sperrstatus des Zertifikats wird überprüft, indem eine Client-Zertifikatsanforderung an einen der OCSP (Online Certificate Status Protocol)-Server für die CA (Zertifizierungsstelle) gesendet wird.

Ein Verbindungsfehler tritt auf, wenn die Antwort des OCSP-Servers über eine angemessene Zeit hinaus verzögert wird. Die folgenden Caches behalten den Sperrstatus bei und helfen, diese Probleme zu beheben:

  • Speichercache, der während der gesamten Lebensdauer des Prozesses beibehalten wird.

  • Dateicache, der so lange beibehalten wird, bis das Cacheverzeichnis (z. B. ~/.cache/snowflake oder ~/.snowsql/ocsp_response_cache) gelöscht ist.

  • Snowflake-OCSP-Antwort-Cacheserver, der OCSP-Antworten von den OCSP-Servern der CA stündlich abruft und 24 Stunden lang speichert. Clients können dann den Validierungsstatus eines bestimmten Snowflake-Zertifikats von diesem Servercache anfordern.

    Wichtig

    Wenn Ihre Serverrichtlinie den Zugriff auf die meisten oder alle externen IP-Adressen und Websites verweigert, müssen Sie die Adresse des Cacheservers auf die Whitelist setzen, um einen normalen Servicebetrieb zu ermöglichen. Der Hostname des Cacheservers lautet ocsp*.snowflakecomputing.com:80.

    Wenn Sie den Cacheserver aus irgendeinem Grund deaktivieren müssen, setzen Sie die Umgebungsvariable SF_OCSP_RESPONSE_CACHE_SERVER_ENABLED auf false. Beachten Sie, dass der Wert zwischen Groß- und Kleinschreibung unterscheidet und in Kleinbuchstaben angegeben werden muss.

Wenn keine der Cacheschichten die OCSP-Antwort enthält, versucht der Client, den Validierungsstatus direkt vom OCSP-Server der CA abzurufen.

Behandeln von Verbindungsfehlern

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

Aufgrund einer Einschränkung in pyinstaller (das Programm, das SnowSQL aus dem Python-Quellcode in eine eigenständige ausführbare Datei packt) entfernt prelink irrtümlich Teile der ausführbaren snowsql-Datei und verursacht diesen Fehler.

Um dieses Problem zu vermeiden, versucht der SnowSQL-Installer, die prelink-Konfigurationsdatei in /etc/prelink.conf.d/snowsql.conf für die ausführbare Datei snowsql so zu aktualisieren, dass prelink die Datei nicht ändert. Leider kann dieses Konfigurationsupdate nicht mit dem automatischen SnowSQL-Upgrade-Prozess durchgeführt werden.

Wenden Sie sich an Ihren Systemadministrator, um den folgenden Befehl auf Ihrer Workstation auszuführen:

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

Bemerkung

Wenn Sie snowsql in Ihrem Benutzer-Basisverzeichnis installieren, ist dieses Problem weniger wahrscheinlich, da prelink standardmäßig konfiguriert ist, die freigegebenen binären Verzeichnisse zu scannen (z. B. /usr/bin oder /bin), und keine Programme in Ihrem Basisverzeichnis ändert.

Übersicht der Verbindungsparameter

-a, --accountname

Beschreibung

Erforderlich

Gibt den vollen Namen Ihres Kontos an (bereitgestellt von Snowflake). Beachten Sie, dass Ihr vollständiger Kontoname möglicherweise zusätzliche Segmente enthält, die die Region und die Cloudplattform angeben, wo Ihr Konto gehostet wird.

Beispiele für Kontonamen nach Region

Wenn Ihr Kontoname beispielsweise xy12345 ist:

Cloudplattform/Region

Vollständiger Kontoname

AWS

US West (Oregon)

xy12345

US East (Ohio)

xy12345.us-east-2.aws

US East (N. Virginia)

xy12345.us-east-1

US East (Commercial Gov - N. Virginia)

xy12345.us-east-1-gov.aws

Canada (Central)

xy12345.ca-central-1.aws

EU (Irland)

xy12345.eu-west-1

EU (Frankfurt)

xy12345.eu-central-1

Asia Pacific (Tokio)

xy12345.ap-northeast-1.aws

Asia Pacific (Mumbai)

xy12345.ap-south-1.aws

Asia Pacific (Singapur)

xy12345.ap-southeast-1

Asia Pacific (Sydney)

xy12345.ap-southeast-2

GCP

US Central1 (Iowa)

xy12345.us-central1.gcp

Europe West2 (London)

xy12345.europe-west2.gcp

Europe West4 (Niederlande)

xy12345.europe-west4.gcp

Azure

West US 2 (Washington)

xy12345.west-us-2.azure

East US 2 (Virginia)

xy12345.east-us-2.azure

US Gov Virginia

xy12345.us-gov-virginia.azure

Canada Central (Toronto)

xy12345.canada-central.azure

West Europe (Niederlande)

xy12345.west-europe.azure

Switzerland North (Zürich)

xy12345.switzerland-north.azure

Southeast Asia (Singapur)

xy12345.southeast-asia.azure

Australia East (New South Wales)

xy12345.australia-east.azure

Wichtig

Wenn eine der folgenden Bedingungen zutrifft, unterscheidet sich Ihr Kontoname von der oben beschriebenen Struktur:

  • Wenn Ihre Snowflake Edition VPS ist, wenden Sie sich an den Snowflake-Support, um Details zu Ihrem Kontonamen zu erhalten.

  • Wenn für Ihr Konto AWS PrivateLink aktiviert ist, muss der Kontoname ein zusätzliches privatelink-Segment enthalten. Weitere Details dazu finden Sie unter AWS PrivateLink & Snowflake.

Dieser Verbindungsparameter kann auch in der Konfigurationsdatei eingestellt werden.

Wert

Zeichenfolge

Außerdem kann der Wert eine Umgebungsvariable sein:

Linux/macOS

$SNOWSQL_ACCOUNT

Windows

%SNOWSQL_ACCOUNT%

Beispiel unter Linux oder macOS:

$ export SNOWSQL_ACCOUNT=xy12345

$ snowsql -a $SNOWSQL_ACCOUNT
Standard

Keine

-u, --username

Beschreibung

Gibt den Anmeldenamen des Benutzers an, mit dem Sie sich mit dem angegebenen Konto verbinden.

Dieser Verbindungsparameter kann auch in der Konfigurationsdatei eingestellt werden.

Wert

Zeichenfolge

Der Wert kann eine Umgebungsvariable sein:

Linux/macOS

$SNOWSQL_USER

Windows

%SNOWSQL_USER%

Beispiel unter Linux oder macOS:

$ export SNOWSQL_USER=jdoe

$ snowsql -u $SNOWSQL_USER
Standard

Keine

-d, --dbname

Beschreibung

Gibt die Datenbank an, die standardmäßig in der Clientsitzung verwendet werden soll (kann nach der Anmeldung geändert werden).

Wert

Zeichenfolge

Der Wert kann eine Umgebungsvariable sein:

Linux/macOS

$SNOWSQL_DATABASE

Windows

%SNOWSQL_DATABASE%

Dieser Verbindungsparameter kann auch in der Konfigurationsdatei eingestellt werden.

Standard

Keine

-s, --schemaname

Beschreibung

Gibt das Datenbankschema an, das standardmäßig in der Clientsitzung verwendet werden soll (kann nach der Anmeldung geändert werden).

Wert

Zeichenfolge

Der Wert kann eine Umgebungsvariable sein:

Linux/macOS

$SNOWSQL_SCHEMA

Windows

%SNOWSQL_SCHEMA%

Dieser Verbindungsparameter kann auch in der Konfigurationsdatei eingestellt werden.

Standard

Keine

-r, --rolename

Beschreibung

Gibt die Rolle an, die standardmäßig in der Clientsitzung für den Zugriff auf Snowflake-Objekte verwendet werden soll (kann nach der Anmeldung geändert werden).

Dieser Verbindungsparameter kann auch in der Konfigurationsdatei eingestellt werden.

Wert

Zeichenfolge

Der Wert kann eine Umgebungsvariable sein:

Linux/macOS

$SNOWSQL_ROLE

Windows

%SNOWSQL_ROLE%

Standard

Keine

-w, --warehouse

Beschreibung

Gibt das virtuelle Warehouse an, das in der Clientsitzung standardmäßig für Abfragen, Laden usw. verwendet werden soll (kann nach der Anmeldung geändert werden).

Dieser Verbindungsparameter kann auch in der Konfigurationsdatei eingestellt werden.

Wert

Zeichenfolge

Der Wert kann eine Umgebungsvariable sein:

Linux/macOS

$SNOWSQL_WAREHOUSE

Windows

%SNOWSQL_WAREHOUSE%

Standard

Keine

-h, --hostVeraltet

Beschreibung

Für Abwärtskompatibilität/interne Verwendung bereitgestellt

Gibt die Adresse des Hosts an, mit dem Sie sich in Snowflake verbinden.

Dieser Parameter wird nicht mehr verwendet, da die Hostadresse automatisch bestimmt wird, indem der von Ihnen angegebene Kontoname (entweder mit -a oder --account) mit der Snowflake-Domäne snowflakecomputing.com verkettet wird.

Wert

Zeichenfolge

Standard

Keine

-p, --portVeraltet

Beschreibung

Für Abwärtskompatibilität/interne Verwendung bereitgestellt

Gibt die Portnummer an, die für die Verbindung verwendet werden soll.

Dieser Parameter wird nicht mehr verwendet, da die Portnummer für Snowflake immer 443 ist.

Wert

Zeichenfolge

Standard

Keine

--regionVeraltet

Beschreibung

Für Abwärtskompatibilität/interne Verwendung bereitgestellt

Gibt die ID für die Region an, in der sich Ihr Konto befindet.

Dieser Parameter wird nicht mehr verwendet. Fügen Sie stattdessen die Regionsinformationen als Teil des Kontonamens hinzu. Weitere Informationen dazu finden Sie unter -a, --accountname (unter diesem Thema).

Wert

N/A

Standard

N/A

-m, --mfa-passcode

Beschreibung

Gibt das zweite Token für MFA (mehrstufige Authentifizierung) an, wenn Sie die Kennung in der Befehlszeile übergeben.

Wert

Zeichenfolge

Standard

Keine

--mfa-passcode-in-password

Beschreibung

Fügt die MFA-Kennung an das Ende des Kennworts an.

Sie können die Kennwortabfrage erzwingen und das Kennwort gefolgt von der MFA-Kennung eingeben. Beispiel, wenn das MFA-Token 123456 war und das Kennwort PASSWORD:

$ snowsql ... -P ...

Password: PASSWORD123456
Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

--abort-detached-query

Beschreibung

Bricht eine Abfrage ab, wenn die Verbindung zwischen Client und Server unterbrochen wird.

Wert

Boolesch

Standard

„False“ (d. h. eine aktive Abfrage bricht nicht ab, wenn die Verbindung unterbrochen wird)

--probe-connection

Beschreibung

Testen Sie die Konnektivität zu Snowflake, und berichten Sie die Ergebnisse. Beachten Sie, dass es sich hierbei um eine experimentelle Option handelt, die hauptsächlich zum Ausdrucken der TLS/SSL-Zertifikatkette verwendet wird.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

--authenticator

Beschreibung

Gibt den Authentifikator an, der für die Überprüfung der Anmeldeinformationen des Benutzers verwendet werden soll.

Wert

Zeichenfolge (Konstante):

  • snowflake verwendet den internen Snowflake-Authentifikator.

  • 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://<Name_Ihres_Okta-Kontos>.okta.com (d. h. der URL-Endpunkt für Okta), um sich über das native Okta zu authentifizieren (nur unterstützt, wenn Ihr IdP Okta ist).

  • oauth zum Authentifizieren mit OAuth. Wenn OAuth als Authentifikator angegeben ist, müssen Sie auch den Parameter token festlegen, um das OAuth-Token anzugeben (siehe unten).

Weitere Informationen dazu finden Sie unter Verwenden und Verwalten der Verbundauthentifizierung und OAuth mit Clients, Treibern und Konnektoren.

Standard

snowflake

Bemerkung

Der externalbrowser-Authentifikator wird nur in Terminalfenstern unterstützt, die Zugriff auf einen Webbrowser haben. So kann beispielsweise für ein Terminalfenster auf einem Remotecomputer, auf das über eine SSH (Secure Shell)-Sitzung zugegriffen wird, ein zusätzliches Setup zum Öffnen eines Webbrowsers erforderlich sein.

Wenn Sie keinen Zugriff auf einen Webbrowser haben, Ihr IdP aber Okta ist, können Sie natives Okta verwenden (d. h. den Authentifikator auf https://<Ihr_Okta-Kontoname>.okta.com einstellen).

token=<Zeichenfolge>

Gibt das OAuth-Token an, das für die Authentifizierung verwendet werden soll, wobei <Zeichenfolge> das Token ist. Dieser Parameter ist nur erforderlich, wenn der Parameter authenticator=oauth eingestellt ist.

Der Standardwert ist „none“.

-v, --version

Beschreibung

Verwendet die angegebene SnowSQL-Version oder zeigt, wenn keine Version angegeben ist, die zuletzt installierte SnowSQL-Version an.

Wert

Zeichenfolge

Standard

Keine

--versions

Beschreibung

Listet alle verfügbaren Versionen von SnowSQL auf, die installiert und ausgeführt werden können. Um eine frühere SnowSQL-Version aus der Liste zu installieren, verwenden Sie die Option -v. Geben Sie die Version an, die Sie installieren möchten.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

--noup

Beschreibung

Deaktiviert das automatische Upgrade für diese Ausführung. Wenn diese Option nicht enthalten ist und eine neuere Version verfügbar ist, lädt SnowSQL die neue Version automatisch herunter und installiert sie. Wenn Sie SnowSQL das nächste Mal ausführen, wird die neue Version verwendet.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

-D, --variable

Beschreibung

Definiert SnowSQL-Variablen über die Befehlszeile. Diese Option kann verwendet werden, um bestimmte Variablen für die Verwendung in Snowflake festzulegen.

Wert

Zeichenfolge

Beispiel:

$ snowsql ... -D tablename=CENUSTRACKONE --variable db_key=$DB_KEY ...
Standard

Keine

-o, --option

Beschreibung

Definiert SnowSQL-Konfigurationsoptionen über die Befehlszeile. Diese Optionen überschreiben alle Optionen, die in der SnowSQL-Konfigurationsdatei eingestellt wurden. Eine Beschreibung der Optionen, die Sie einstellen/überschreiben können, finden Sie unter Übersicht der SnowSQL-Konfigurationsoptionen.

Wert

Zeichenfolge

Standard

Keine

-f, --filename

Beschreibung

Gibt eine SQL-Datei an, die im Batchmodus ausgeführt werden soll.

Der Wert kann ein Dateiname (ggf. mit Verzeichnispfad) oder eine URL zu der Datei sein.

Wert

Zeichenfolge

Standard

Keine

-q, --query

Beschreibung

Gibt eine SQL-Abfrage an, die ausgeführt werden soll.

Der Wert kann eine einzelne SQL-Abfrage oder eine durch Semikolons getrennte Liste der auszuführenden Abfragen sein (z. B. 'select current_user(); select current_role()').

Wert

Zeichenfolge

Standard

Keine

--config

Beschreibung

Gibt den Speicherort (d. h. den Verzeichnispfad) für die SnowSQL-Konfigurationsdatei an. Fügen Sie diesen Konnektorparameter hinzu, wenn Sie die Konfigurationsdatei vom Standardspeicherort verschieben oder kopieren möchten.

Wert

Zeichenfolge

Standard

OS-spezifisch:

Linux/macOS

~/.snowsql/

Windows

%USERPROFILE%\.snowsql\

-P, --prompt

Beschreibung

Erzwingt eine Kennwortabfrage, wenn das Kennwort in der SnowSQL-Konfigurationsdatei gespeichert ist.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

-M, --mfa-prompt

Beschreibung

Erzwingt eine Eingabeaufforderung für das zweite Token für MFA. Alternativ können Sie für die Übergabe an die Befehlszeile --mfa-passcode <Zeichenfolge> verwenden.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

-c, --connection

Beschreibung

Gibt eine zu verwendende Verbindung an, wobei die angegebene Zeichenfolge der Name einer in der SnowSQL-Konfigurationsdatei definierten Verbindung ist. Weitere Details dazu finden Sie unter Verwenden benannter Verbindungen (unter diesem Thema).

Wert

Zeichenfolge

Standard

Keine

--single-transaction

Beschreibung

In Kombination mit --filename, --query oder Standard-Eingabebefehlen umschließt diese Option die Anweisungen mit BEGIN/COMMIT, um sicherzustellen, dass alle Befehle erfolgreich abgeschlossen werden oder keine Änderung vorgenommen wird.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

Bemerkung

Beachten Sie, dass bei Verwendung der Eingabebefehle BEGIN, COMMIT oder ROLLBACK diese Option nicht korrekt funktioniert. Wenn innerhalb eines Transaktionsblocks kein Befehl ausgeführt werden kann, führt diese Option auch zum Fehlschlagen des Befehls.

--private-key-path

Beschreibung

Pfad zur Datei des privaten Schlüssels im PEM-Format, die für die Schlüsselpaar-Authentifizierung verwendet wird. Die private Schlüsseldatei muss verschlüsselt sein, und die Passphrase muss in der Umgebungsvariablen SNOWSQL_PRIVATE_KEY_PASSPHRASE angegeben sein.

Wert

Zeichenfolge

Standard

Keine

--disable-request-pooling

Beschreibung

Standardmäßig verwendet snowsql Verbindungspooling. Verbindungspooling verringert normalerweise die Verzögerungszeit beim Herstellen einer Verbindung. Es kann jedoch das Client-Failover auf ein alternatives DNS verlangsamen, wenn ein DNS-Problem auftritt. Mit diesem Parameter können Sie das Verbindungspooling deaktivieren.

Dieser Parameter gilt nur für Kunden, bei denen die Replikation aktiviert ist.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

-U, --upgrade

Beschreibung

Erzwingt ein Upgrade von SnowSQL auf die neueste Version, wenn diese nicht in das lokale Verzeichnis heruntergeladen wird.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

Bemerkung

Erfordert die ausführbare Bootstrap-Datei von SnowSQL 1.1.63 oder einer neueren Version. Laden Sie diese über die Weboberfläche herunter.

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

Beschreibung

Snowflake hält die Sitzung unbegrenzt aktiv, auch wenn der Benutzer inaktiv ist.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A

Bemerkung

Intern wird der Parameter CLIENT_SESSION_KEEP_ALIVE für die Sitzung auf „true“ gesetzt.

-?, --help

Beschreibung

Zeigt die Kurzanleitung zur Verwendung der Befehlszeile an.

Wert

N/A (Parameter nimmt keinen Wert an)

Standard

N/A