Verwalten von Snowflake-Verbindungen¶
Bevor Sie Snowflake CLI verwenden können, müssen Sie Verbindungen definieren, die angeben, wie Snowflake CLI sich mit Snowflake verbindet. Snowflake CLI verwendet die folgende Hierarchie, um zu bestimmen, welcher Wert zu verwenden ist, wenn ein Verbindungsparameter an mehreren Speicherorten definiert ist:
Befehlszeilenparameter
Umgebungsvariablen, die bestimmte
config.toml
-Parameter überschreiben, wie z. B.SNOWFLAKE_CONNECTIONS_MYCONNECTION_PASSWORD
Verbindungen, die in der Datei
config.toml
manuell oder mit dem Befehlsnow connection add
definiert wurdenAllgemeine Umgebungsvariablen, wie
SNOWFLAKE_USER
.
Sie können auch die Option --temporary-connection
verwenden, die keine Definition in config.toml
erfordert.
Vorsicht
Um die Sicherheit zu erhöhen, empfiehlt Snowflake dringend, entweder die Umgebungsvariable SNOWFLAKE_CONNECTIONS_<NAME>_PASSWORD
oder SNOWFLAKE_PASSWORD
zu verwenden.
Definieren Sie Verbindungen¶
Definitionen für Verbindungen werden im Abschnitt [connections] der config.toml
-Datei gespeichert, ähnlich wie im Folgenden beschrieben:
[connections.myconnection]
account = "myaccount"
user = "jondoe"
password = "password"
warehouse = "my-wh"
database = "my_db"
schema = "my_schema"
Die Definition der Verbindung unterstützt die gleichen Konfigurationsoptionen wie der Snowflake Connector für Python. Zusätzlich können Sie eine Standardverbindung in der Variable default_connection_name
am Anfang der Datei angeben. Sie können sie nicht in eine Verbindungsdefinition einbeziehen. Beispiel:
default_connection_name = "myconnection"
[connections.myconnection]
account = "myaccount"
...
Bemerkung
Bei Snowflake CLI unter MacOS oder Linux muss die Datei config.toml
ihre Dateiberechtigungen darauf beschränken, dass das Lesen und Schreiben nur für den Eigentümer der Datei möglich ist. Um die erforderlichen Dateiberechtigungen festzulegen, führen Sie die folgenden Befehle aus:
chown $USER config.toml
chmod 0600 config.toml
Alternative Konfigurationsdatei¶
Bemerkung
Für Snowflake CLI empfiehlt Snowflake die Verwendung der Datei config.toml
für die Konfigurationsdefinitionen. Sie können jedoch auch die Datei connections.toml
verwenden, falls gewünscht.
Snowflake CLI unterstützt auch die Konfigurationsdatei connections.toml
. Die Datei sollte sich im gleichen Verzeichnis wie die Datei config.toml
befinden und nur Verbindungen enthalten. Konfigurationen in connections.toml
erfordern einen anderen Abschnittsnamen ohne connections
. Ein Beispiel wäre [connections.myconnection]
nur [myconnection]
.
Bemerkung
Wenn beide Konfigurationen in config.toml
und connections.toml
Verbindungen enthalten, verwendet Snowflake CLI nur die Konfigurationen in connections.toml
.
Verwalten oder fügen Sie Ihre Verbindungen zu Snowflake mit den Befehlen snow connection
hinzu¶
Mit den Befehlen snow connection
können Sie Snowflake-Verbindungen erstellen, verwalten und testen.
Hinzufügen einer Verbindung¶
Bemerkung
Wenn Sie eine Verbindung für Snowflake Open Catalog hinzufügen möchten, lesen Sie Erstellen Sie eine Snowflake CLI-Verbindung für Open Catalog in der Open Catalog-Dokumentation. Sie müssen diese Verbindung möglicherweise für Aufgaben wie die Konfiguration von Open Catalog für die Verwendung von SSO hinzufügen.
Gehen Sie wie folgt vor, um eine neue Verbindung zu erstellen und sie der Konfigurationsdatei hinzuzufügen:
Führen Sie den Befehl
snow connection add
aus:snow connection add
Wenn Sie dazu aufgefordert werden, geben Sie die erforderlichen Parameter für die Verbindung, das Konto und den Benutzernamen sowie alle anderen gewünschten optionalen Parameter ein.
Enter connection name: <connection_name> Enter account: <account> Enter user: <user-name> Enter password: <password> Enter role: <role-name> Enter warehouse: <warehouse-name> Enter database: <database-name> Enter schema: <schema-name> Enter host: <host-name> Enter port: <port-number> Enter region: <region-name> Enter authenticator: <authentication-method> Enter private key file: <path-to-private-key-file> Enter token file path: <path-to-mfa-token> Do you want to configure key pair authentication? [y/N]: y Key length [2048]: <key-length> Output path [~/.ssh]: <path-to-output-file> Private key passphrase: <key-description> Wrote new connection <connection-name> to config.toml
Sie können auch Werte für bestimmte Parameter in der Befehlszeile eingeben, wie hier gezeigt:
snow --config-file config.toml connection add -n myconnection2 --account myaccount2 --user jdoe2
Bemerkung
Wenn der Befehl mit einem Fehler endet, z. B. wenn die Option --private_key_file
auf eine nicht existierende Datei verweist, wird die Verbindung nicht in der config.toml
-Konfigurationsdatei gespeichert.
Standardmäßig fordert der Befehl snow connection add
zur Angabe von optionalen Parametern auf, wenn diese nicht in der Befehlszeile angegeben wurden. Wenn Sie Verbindungen hinzufügen möchten, ohne einen optionalen Parameter wie account
anzugeben und die interaktiven Eingabeaufforderungen überspringen möchten, können Sie die Option --no-interactive
verwenden, wie gezeigt:
snow connection add -n myconnection2 --user jdoe2 --no-interactive
Nachdem Sie eine Verbindung hinzugefügt haben, können Sie die Verbindung testen, um sicherzustellen, dass sie korrekt funktioniert.
Listen Sie definierte Verbindungen auf¶
Um die verfügbaren Verbindungen aufzulisten, geben Sie den Befehl snow connection list
ein, wie gezeigt:
snow connection list
+-------------------------------------------------------------------------------------------------+
| connection_name | parameters | is_default |
|-----------------+------------------------------------------------------------------+------------|
| myconnection | {'account': 'myaccount', 'user': 'jondoe', 'password': '****', | False |
| | 'database': 'my_db', 'schema': 'my_schema', 'warehouse': | |
| | 'my-wh'} | |
| myconnection2 | {'account': 'myaccount2', 'user': 'jdoe2'} | False |
+-------------------------------------------------------------------------------------------------+
Testen und diagnostizieren Sie eine Verbindung¶
Um zu testen, ob sich eine Verbindung erfolgreich mit Snowflake verbinden kann, geben Sie den Befehl snow connection test
ein, ähnlich dem Folgenden:
snow connection test -c myconnection2
+--------------------------------------------------+
| key | value |
|-----------------+--------------------------------|
| Connection name | myconnection2 |
| Status | OK |
| Host | example.snowflakecomputing.com |
| Account | myaccount2 |
| User | jdoe2 |
| Role | ACCOUNTADMIN |
| Database | not set |
| Warehouse | not set |
+--------------------------------------------------+
Wenn Sie Probleme mit der Konnektivität haben, können Sie direkt unter Snowflake CLI eine Diagnose durchführen. Der Snowflake-Support kann diese Informationen auch anfragen, um Ihnen bei Problemen mit der Konnektivität zu helfen.
Die Diagnosesammlung verwendet die folgenden snow connection test
-Befehlsoptionen:
--enable-diag
, um einen Diagnosebericht zu erstellen.--diag-log-path
, um den absoluten Pfad für den generierten Bericht anzugeben.--diag-allowlist-path
, um den absoluten Pfad zu einer JSON-Datei anzugeben, welche die Ausgabe der Befehle SYSTEM$ALLOWLIST() oder SYSTEM$ALLOWLIST_PRIVATELINK() SQL enthält. Diese Option ist nur erforderlich, wenn der in der Verbindung definierte Benutzer keine Berechtigung hat, die Funktionen der Systemzulassungsliste auszuführen, oder wenn die Verbindung zur Konto-URL fehlschlägt.
Das folgende Beispiel erzeugt einen Diagnosebericht für die Verbindung myconnection2
und speichert ihn in der Datei ~/report/SnowflakeConnectionTestReport.txt
:
snow connection test -c myconnection2 --enable-diag --diag-log-path $(HOME)/report
+----------------------------------------------------------------------------+
| key | value |
|----------------------+-----------------------------------------------------|
| Connection name | myconnection2 |
| Status | OK |
| Host | example.snowflakecomputing.com |
| Account | myaccount2 |
| User | jdoe2 |
| Role | ACCOUNTADMIN |
| Database | not set |
| Warehouse | not set |
| Diag Report Location | /Users/<username>/SnowflakeConnectionTestReport.txt |
+----------------------------------------------------------------------------+
Sie können den Bericht auf eventuelle Probleme mit der Konnektivität überprüfen und diese mit Ihrem Netzwerk-Team besprechen. Sie können den Bericht auch dem Snowflake-Support zur Verfügung stellen, um zusätzliche Unterstützung zu erhalten.
Legen Sie die Standardverbindung fest¶
Mit dem Befehl snow connection set-default
können Sie angeben, welche Konfiguration Snowflake CLI als Standard verwendet werden soll. Damit überschreiben Sie die Konfigurationsdatei default_connection_name
und die Variablen SNOWFLAKE_DEFAULT_CONNECTION_NAME
, sofern diese festgelegt sind.
Das folgende Beispiel setzt die Standardverbindung auf myconnection2
:
snow connection set-default myconnection2
Default connection set to: myconnection2
Bemerkung
Wenn die Dateien connections.toml
und config.toml
vorhanden sind, verwendet Snowflake CLI nur Verbindungen, die in connections.toml
definiert sind.
Umgebungsvariablen für Snowflake-Anmeldeinformationen verwenden¶
Sie können die Anmeldeinformationen für Snowflake in Variablen der Systemumgebung statt in Dateien der Konfiguration angeben. Sie können die folgenden generischen Umgebungsvariablen nur zur Angabe von Parametern für die Verbindung verwenden:
SNOWFLAKE_ACCOUNT
SNOWFLAKE_USER
SNOWFLAKE_PASSWORD
SNOWFLAKE_DATABASE
SNOWFLAKE_SCHEMA
SNOWFLAKE_ROLE
SNOWFLAKE_WAREHOUSE
SNOWFLAKE_AUTHENTICATOR
SNOWFLAKE_PRIVATE_KEY_PATH
SNOWFLAKE_PRIVATE_KEY_RAW
SNOWFLAKE_SESSION_TOKEN
SNOWFLAKE_MASTER_TOKEN
SNOWFLAKE_TOKEN_FILE_PATH
SNOWFLAKE_OAUTH_CLIENT_ID
SNOWFLAKE_OAUTH_CLIENT_SECRET
SNOWFLAKE_OAUTH_AUTHORIZATION_URL
SNOWFLAKE_OAUTH_TOKEN_REQUEST_URL
SNOWFLAKE_OAUTH_REDIRECT_URI
SNOWFLAKE_OAUTH_SCOPE
SNOWFLAKE_OAUTH_DISABLE_PKCE
SNOWFLAKE_OAUTH_ENABLE_REFRESH_TOKENS
SNOWFLAKE_OAUTH_ENABLE_SINGLE_USE_REFRESH_TOKENS
SNOWFLAKE_CLIENT_STORE_TEMPORARY_CREDENTIAL
Übergeben Sie Verbindungsparameter an den Befehl snow
¶
Sie können Verbindungsparameter direkt in jedem snow
-Befehl übergeben, der eine Verbindung erfordert. Um eine vollständige Liste der Parameter für die Verbindungskonfiguration zu erhalten, führen Sie den Befehl snow sql --help
aus, wie gezeigt. Beachten Sie, dass in der Ausgabe nur der Abschnitt mit den Optionen für die Konfiguration der Verbindung angezeigt wird.
snow sql --help
╭─ Connection configuration ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --connection,--environment -c TEXT Name of the connection, as defined in your config.toml. Default: default.
│ --host TEXT Host address for the connection. Overrides the value specified for the connection.
│ --port INTEGER Port for the connection. Overrides the value specified for the connection.
│ --account,--accountname TEXT Name assigned to your Snowflake account. Overrides the value specified for the connection.
│ --user,--username TEXT Username to connect to Snowflake. Overrides the value specified for the connection.
│ --password TEXT Snowflake password. Overrides the value specified for the connection.
│ --authenticator TEXT Snowflake authenticator. Overrides the value specified for the connection.
│ --private-key-file,--private-key-path TEXT Snowflake private key file path. Overrides the value specified for the connection.
│ --token-file-path TEXT Path to file with an OAuth token that should be used when connecting to Snowflake.
│ --database,--dbname TEXT Database to use. Overrides the value specified for the connection.
│ --schema,--schemaname TEXT Database schema to use. Overrides the value specified for the connection.
│ --role,--rolename TEXT Role to use. Overrides the value specified for the connection.
│ --warehouse TEXT Warehouse to use. Overrides the value specified for the connection.
│ --temporary-connection -x Uses connection defined with command line parameters, instead of one defined in config.
│ --mfa-passcode TEXT Token to use for multi-factor authentication (MFA).
│ --oauth-client-id TEXT Value of the client ID provided by the identity provider for Snowflake integration.
│ --oauth-client-secret TEXT Value of the client secret provided by the identity provider for Snowflake integration.
│ --oauth-authorization-url TEXT Identity provider endpoint supplying the authorization code to the driver.
│ --oauth-token-request-url TEXT Identity provider endpoint supplying the access tokens to the driver.
│ --oauth-redirect-uri TEXT URI to use for the authorization code.
│ --oauth-scope TEXT Scope requested in the identity provider authorization request.
│ --oauth-disable-pkce Disables Proof Key for Code Exchange (PKCE). Default: False.
│ --oauth-enable-refresh-tokens Enables a silent re-authentication when the actual access token becomes outdated. Default: False.
│ --oauth-enable-single-use-refresh-tokens Whether to opt in to single-use refresh token semantics. Default: False.
│ --client-store-temporary-credential Store the temporary credential.
│ --enable-diag Run the python connector diagnostic test.
│ --diag-log-path TEXT Diagnostic report path.
│ --diag-allowlist-path TEXT Diagnostic report path to optional allowlist.
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Vorsicht
Um die Sicherheit zu erhöhen, empfiehlt Snowflake dringend, entweder die Umgebungsvariable SNOWFLAKE_CONNECTIONS_<NAME>_PASSWORD
oder SNOWFLAKE_PASSWORD
zu verwenden.
Verbindungen von SnowSQL importieren¶
Wenn Sie bereits Verbindungen in SnowSQL definiert haben, können Sie diese mit dem Befehl config.toml
in Ihre Snowflake CLI: codenowrap:snow helpers import-snowsql-connections
-Konfigurationsdatei importieren.
Um SnowSQL-Verbindungen zu importieren, geben Sie den Befehl snow helpers import-snowsql-connections
ähnlich wie im Folgenden beschrieben ein:
snow helpers import-snowsql-connections
Im folgenden Beispiel werden SnowSQL-Verbindungen aus den Standardkonfigurationsdateien importiert:
snow helpers import-snowsql-connections
Während der Befehl die SnowSQL-Konfigurationsdateien verarbeitet, zeigt er den Fortschritt an und fordert Sie zur Bestätigung auf, wenn in der Datei Snowflake CLI config.toml
bereits eine Verbindung mit demselben Namen definiert ist:
SnowSQL config file [/etc/snowsql.cnf] does not exist. Skipping.
SnowSQL config file [/etc/snowflake/snowsql.cnf] does not exist. Skipping.
SnowSQL config file [/usr/local/etc/snowsql.cnf] does not exist. Skipping.
Trying to read connections from [/Users/<user>/.snowsql.cnf].
Reading SnowSQL's connection configuration [connections.connection1] from [/Users/<user>/.snowsql.cnf]
Trying to read connections from [/Users/<user>/.snowsql/config].
Reading SnowSQL's default connection configuration from [/Users/<user>/.snowsql/config]
Reading SnowSQL's connection configuration [connections.connection1] from [/Users/<user>/.snowsql/config]
Reading SnowSQL's connection configuration [connections.connection2] from [/Users/<user>/.snowsql/config]
Connection 'connection1' already exists in Snowflake CLI, do you want to use SnowSQL definition and override existing connection in Snowflake CLI? [y/N]: Y
Connection 'connection2' already exists in Snowflake CLI, do you want to use SnowSQL definition and override existing connection in Snowflake CLI? [y/N]: n
Connection 'default' already exists in Snowflake CLI, do you want to use SnowSQL definition and override existing connection in Snowflake CLI? [y/N]: n
Saving [connection1] connection in Snowflake CLI's config.
Connections successfully imported from SnowSQL to Snowflake CLI.
Weitere Informationen finden Sie in der Referenz des Befehls snow helpers import-snowsql-connections.
Verwenden Sie eine temporäre Verbindung¶
Sie können die Verbindungsparameter auch über die Befehlszeile angeben, indem Sie die Option --temporary-connection [-x]
verwenden. Dabei werden alle Definitionen aus config.toml
ignoriert und stattdessen die über die Befehlszeilenoptionen angegebenen Definitionen verwendet. Dieser Ansatz kann für CI/CD-Anwendungsfälle hilfreich sein, wenn Sie keine Konfigurationsdatei verwenden möchten. Wenn Sie eine temporäre Verbindung verwenden, ignoriert Snowflake CLI alle Verbindungsvariablen, die in der Datei config.toml
definiert sind, verwendet aber dennoch die folgenden Umgebungsvariablen, die Sie gesetzt haben:
SNOWFLAKE_ACCOUNT
SNOWFLAKE_USER
SNOWFLAKE_PASSWORD
SNOWFLAKE_DATABASE
SNOWFLAKE_SCHEMA
SNOWFLAKE_ROLE
SNOWFLAKE_WAREHOUSE
SNOWFLAKE_AUTHENTICATOR
SNOWFLAKE_PRIVATE_KEY_FILE
SNOWFLAKE_PRIVATE_KEY_RAW
SNOWFLAKE_PRIVATE_KEY_PATH
SNOWFLAKE_SESSION_TOKEN
SNOWFLAKE_MASTER_TOKEN
SNOWFLAKE_TOKEN_FILE_PATH
Das folgende Beispiel zeigt, wie Sie eine temporäre Verbindung mit einem Benutzernamen und einem Kennwort herstellen. Dieses Beispiel setzt voraus, dass Sie das Kennwort in der Umgebungsvariablen SNOWFLAKE_PASSWORD
gespeichert haben.
snow sql -q "select 42;" --temporary-connection \
--account myaccount \
--user jdoe
select 42;
+----+
| 42 |
|----|
| 42 |
+----+
Vorsicht
Um die Sicherheit zu erhöhen, empfiehlt Snowflake dringend, entweder die Umgebungsvariable SNOWFLAKE_CONNECTIONS_<NAME>_PASSWORD
oder SNOWFLAKE_PASSWORD
zu verwenden.
Für zusätzliche Sicherheit können Sie eine private Schlüsseldatei verwenden und den Pfad zu Ihrer privaten Schlüsseldatei in der Umgebungsvariablen SNOWFLAKE_PRIVATE_KEY_FILE
speichern, wie gezeigt:
SNOWFLAKE_ACCOUNT = "account"
SNOWFLAKE_USER = "user"
SNOWFLAKE_PRIVATE_KEY_FILE = "/path/to/key.p8"
Sie können dann eine temporäre Verbindung erstellen, ohne die Optionen festzulegen, wie gezeigt:
snow sql -q "select 42" --temporary-connection
select 42;
+----+
| 42 |
|----|
| 42 |
+----+
Wenn Sie CI/CD-Pipelines mit Schlüsselpaar-Authentifizierung verwenden, können Sie möglicherweise nicht auf lokale private Schlüsseldateien zugreifen (SNOWFLAKE_PRIVATE_KEY_FILE
). In diesem Fall können Sie den privaten Schlüssel in der Umgebungsvariablen SNOWFLAKE_PRIVATE_KEY_RAW
speichern, wie gezeigt:
SNOWFLAKE_ACCOUNT = "account"
SNOWFLAKE_USER = "user"
SNOWFLAKE_PRIVATE_KEY_RAW = "-----BEGIN PRIVATE KEY-----..."
Sie können dann eine temporäre Verbindung erstellen, ohne die Optionen festzulegen, wie gezeigt:
snow sql -q "select 42" --temporary-connection
select 42;
+----+
| 42 |
|----|
| 42 |
+----+
Bemerkung
Wenn Sie die Umgebungsvariable SNOWFLAKE_PRIVATE_KEY_RAW
verwenden, sollten Sie nicht auch SNOWFLAKE_PRIVATE_KEY_FILE
definieren.
Zusätzliche Möglichkeiten zur Authentifizierung Ihrer Verbindung¶
Sie können auch die folgenden Methoden verwenden, um Ihre Verbindung zu Snowflake zu authentifizieren:
Verwenden Sie eine Datei mit einem privaten Schlüssel zur Authentifizierung¶
Um eine private Schlüsseldatei für die Authentifizierung zu verwenden, müssen Sie in der Verbindungskonfiguration den Parameter authenticator
auf SNOWFLAKE_JWT
setzen und den Pfad zur Datei mit Ihrem privaten Schlüssel angeben, ähnlich wie im Folgenden beschrieben:
Geben Sie die
--private_key-file
-Option im Befehlsnow connection add
an, wie gezeigt:snow connection add \ --connection-name jwt \ --authenticator SNOWFLAKE_JWT \ --private-key-file ~/.ssh/sf_private_key.p8
Verwenden Sie die Konfigurationsdatei:
[connections.jwt] account = "my_account" user = "jdoe" authenticator = "SNOWFLAKE_JWT" private_key_file = "~/sf_private_key.p8"
Weitere Informationen zum Konfigurieren der Schlüsselpaar-Authentifizierung finden Sie unter Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation.
Snowflake CLI sucht in den Verbindungsparametern in der folgenden Reihenfolge nach dem privaten Schlüssel:
Wenn
private_key_file
angegeben ist, liest Snowflake CLI den Schlüssel aus dem angegebenen Dateipfad.Wenn
private_key_path
angegeben ist, liest Snowflake CLI den Schlüssel aus dem angegebenen Dateipfad.Wenn
private_key_file
oderprivate_key_path
nicht angegeben sind, liest Snowflake CLI den Schlüssel direkt aus dem Parameterprivate_key_raw
.
Vorsicht
Wenn Sie Ihren privaten Schlüssel im Parameter private_key_raw
angeben, empfiehlt Snowflake, zur Verbesserung der Sicherheit entweder die Umgebungsvariablen SNOWFLAKE_CONNECTIONS_<NAME>_PRIVATE_KEY_RAW
oder SNOWFLAKE_PRIVATE_KEY_RAW
zu verwenden.
Bemerkung
Wenn Ihr privater Schlüssel mit einer Passphrase geschützt ist, setzen Sie die PRIVATE_KEY_PASSPHRASE
-Umgebungsvariable auf diese Passphrase.
Verwenden Sie die OAuth-Authentifizierung¶
Um die Verbindung über OAuth zu nutzen, können Sie einen der folgenden Schritte ausführen:
Geben Sie die
--token-file-path
-Option im Befehlsnow connection add
an, wie gezeigt:snow connection add --token-file-path "my-token.txt"
Stellen Sie für die Datei
config.toml
authenticator = "oauth"
ein und fügen dentoken_file_path
-Parameter zur Definition der Verbindung hinzu, wie gezeigt:[connections.oauth] account = "my_account" user = "jdoe" authenticator = "oauth" token_file_path = "my-token.txt"
Verwenden Sie den OAuth 2.0-Client-Anmeldeinformationsablauf¶
Der OAuth 2.0-Client-Anmeldeinformationsablauf bietet einen sicheren Weg für die Machine-to-Machine (M2M)-Authentifizierung, wie z. B. den Snowflake Connector für Python, der sich mit einem Backend-Service verbindet. Im Gegensatz zum OAuth 2.0-Autorisierungscodeablauf ist diese Methode nicht auf benutzerspezifische Daten angewiesen. Weitere Informationen zu diesem Ablauf und seinen Parametern finden Sie unter Aktivieren des OAuth 2.0-Client-Anmeldeinformationsablaufs in der Dokumentation zum Snowflake Connector für Python.
Um den OAuth 2.0-Client-Anmeldeinformationsablauf zu verwenden, fügen Sie eine Verbindungsdefinition zu Ihrer config.toml
-Datei hinzu, die der folgenden ähnelt:
[connections.oauth]
authenticator = "OAUTH_CLIENT_CREDENTIALS"
user = "user"
account = "account"
oauth_client_id = "client_id"
oauth_client_secret = "client_secret"
oauth_token_request_url = "http://identity.provider.com/token"
oauth_scope = "session:role:PUBLIC"
Verwenden Sie eine mehrstufige Authentifizierung (MFA)¶
So verwenden Sie MFA:
Richten Sie mehrstufige Authentifizierung in Snowflake ein, und setzen Sie den Parameter
authenticator
aufsnowflake
(dies ist ein Standardwert).Wenn Sie anstelle des Push-Mechanismus eine von Duo generierte Kennung verwenden möchten, verwenden Sie entweder die Option
--mfa-passcode <passcode>
oder setzen Siepasscode_in_password = true
in der Dateiconfig.toml
und fügen Sie die Kennung in Ihr Kennwort ein, wie in Verwenden von MFA mit Python beschrieben.Bemerkung
Wenn Sie die Kennung im Kennwort zur Authentifizierung verwenden möchten, können Sie nach der Ausführung des ersten Befehls
snow
die Kennung nicht mehr angeben, solange das Token gültig ist. Sie müssen Folgendes tun:Entfernen Sie die Kennung aus dem Kennwort.
Entfernen oder kommentieren Sie
passcode_in_password = true
in der Dateiconfig.toml
.
Verwenden Sie MFA-Caching¶
MFA-Caching ist ein Sicherheits-Feature, das die Häufigkeit von Aufforderungen zur mehrstufigen Authentifizierung (MFA) bei Anmeldungen reduziert. Häufige MFA-Aufforderungen können den Arbeitsablauf stören und die Produktivität verringern. MFA-Caching löst dieses Problem, indem es die MFA-Sitzungsinformationen für einen bestimmten Zeitraum sicher speichert. Mithilfe von MFA-Caching können Sie sich authentifizieren, ohne wiederholt MFA-Codes eingeben zu müssen, solange sie innerhalb des Zeitrahmens der zwischengespeicherten Sitzung liegen.
So aktivieren Sie MFA-Caching:
Stellen Sie für Ihr Konto
ALLOW_CLIENT_MFA_CACHING = true
ein.Fügen Sie in Ihrer
config.toml
-Dateiauthenticator = "username_password_mfa"
zu Ihrer Verbindung hinzu.
Weitere Informationen dazu finden Sie unter Verwenden von MFA-Tokencaching zur Minimierung der Anzahl von Eingabeaufforderungen bei der Authentifizierung – Optional.
Verwenden Sie SSO (Single Sign-On)¶
Wenn Sie Snowflake für die Verwendung von Single Sign-On (SSO) konfiguriert haben, können Sie Ihre Clientanwendung so konfigurieren, dass SSO für die Authentifizierung verwendet wird. Einzelheiten finden Sie unter Verwenden von SSO bei Clientanwendungen, die sich mit Snowflake verbinden. Konfigurieren Sie Ihre Verbindung anhand der Anweisungen für Python.
Verwenden Sie einen externen Browser¶
Sie können Ihren Browser verwenden, um Ihre Snowflake CLI-Verbindung mit jedem SAML 2.0-konformen Anbieter (IdP) zu authentifizieren, wie z. B. Okta oder Active Directory Federation Services.
Bemerkung
Der externalbrowser
-Authentifikator wird nur in Terminalfenstern unterstützt, die über einen Webbrowserzugriff verfügen. 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, indem Sie den Authentifikator auf https://<okta_account_name>.okta.com
setzen.
Um die externe Browser-Authentifizierung zu verwenden, verwenden Sie eine der folgenden Methoden:
Verwenden Sie die Befehlsoption
snow connection add --authenticator
:snow connection add --authenticator externalbrowser
Setzen Sie
authenticator
aufexternalbrowser
in Ihrerconfig.toml
-Datei:[connections.externalbrowser] account = "my_account" user = "jdoe" authenticator = "externalbrowser"
Verwenden Sie PAT (Programmatic Access Token)¶
Programmatic Access Token (PAT) ist eine Snowflake-spezifische Authentifizierungsmethode. Das Feature muss vor der Verwendung für das Konto aktiviert werden (weitere Informationen finden Sie unter Voraussetzungen). Die Authentifizierung mit PAT erfordert keine menschliche Interaktion.
Um PAT für die Verbindung zu verwenden, setzen Sie authenticator
auf PROGRAMMATIC_ACCESS_TOKEN
und token_file_path
auf die Datei mit dem Token, wie gezeigt:
[connections.externalbrowser]
account = "my_account"
user = "jdoe"
authenticator = "PROGRAMMATIC_ACCESS_TOKEN"
token_file_path = "path-to-pat-token"
Weitere Informationen zu PATs finden Sie unter Verwenden von programmatische Zugriffstoken für die Authentifizierung.