Konfigurations- und Verbindungsparameter für ODBC¶
Der Snowflake-ODBC-Treiber verwendet Konfigurations- und Verbindungsparameter. Die Methoden zum Festlegen der Parameter richten sich nach der Plattform, auf der der Treiber installiert ist.
Bemerkung
Sie können den Parameter SEARCH_PATH nicht innerhalb einer ODBC-Client-Verbindungszeichenfolge festlegen. Sie müssen erst eine Sitzung einrichten, bevor Sie einen Suchpfad festlegen können.
Parametereinstellung unter Windows¶
Unter Windows:
Konfigurationsparameter werden in der Windows-Registrierung mit regedit und dem folgenden Registrierungspfad festgelegt:
[HKEY_LOCAL_MACHINE\SOFTWARE\Snowflake\Driver]
Die Verbindungsparameter werden unter Datenquellennamen (Data Source Names, DSNs) festgelegt:
DSNs werden typischerweise mit dem Windows-Tool Data Source Administration erstellt und bearbeitet.
Bei Bedarf können Sie die Registrierungsschlüssel für DSNs direkt in der Windows-Registrierung mit regedit bearbeiten. Der Registrierungspfad zu den Schlüsseln richtet sich danach, ob Sie 64-Bit- oder 32-Bit-Windows verwenden und ob Sie einen Benutzer- oder System-DSN bearbeiten:
64-Bit-Windows:
[HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>] [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN_NAME>]
32-Bit-Windows:
[HKEY_CURRENT_USER\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>] [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
Um mit regedit einen Verbindungsparameter hinzuzufügen, fügen Sie einen neuen String Value hinzu, doppelklicken Sie auf den von Ihnen angelegten Wert und geben Sie dann den ODBC-Parameter als Value name und den Parameterwert als Value data ein.
Festlegen von Parametern unter macOS oder Linux¶
Unter macOS oder Linux:
Konfigurationsparameter werden in der Konfigurationsdatei (
simba.snowflake.ini) festgelegt.Die Verbindungsparameter werden in der DSN-Datei (
odbc.ini) festgelegt:
Konfigurationsparameter¶
CABundleFileLegen Sie den Speicherort der Bundledatei der Zertifizierungsstelle (CA) fest. Muss auf eine Datei verweisen, die eine gültige Liste der CA-Zertifikate enthält.
Unter Linux kopieren die RPM- und DEB-Installer automatisch die Datei und legen diesen Parameter fest.
Unter Mac kopiert der PKG-Installer die Datei und legt diesen Parameter fest.
Unter Windows kopiert der MSI-Installer die Datei und legt diesen Parameter fest.
Für eine manuelle Installation müssen Sie die Datei von https://curl.haxx.se/docs/caextract.html herunterladen und den Speicherort der Datei festlegen.
client_config_fileGibt den Pfad einer Protokollierungskonfigurationsdatei an, mit der Sie den Protokolliergrad und das Verzeichnis zum Speichern von Protokolldateien definieren können.
CURLVerboseModeAuf
trueeinstellen, um die ausführliche cURL-Protokollierung zu aktivieren. Die Protokolldateisnowflake_odbc_curl.dmpwird erstellt und aktualisiert. Der Snowflake-ODBC-Treiber verwendet cURL als HTTP- und TLS-Bibliothek. Dieser Parameter ist nützlich für die Diagnose von Netzwerkproblemen.DisableOCSPCheckAuf
truesetzen, um die Prüfung des TLS-Zertifikatssperrstatus durch das Online Certificate Status Protocol (OCSP) zu deaktivieren. Unter normalen Umständen sollte dieses Flag nicht gesetzt werden. Wenn jedoch das OCSP-Verfügbarkeitsproblem weiterhin besteht, kann die Anwendung diesen Parameter vorübergehend einstellen, um Konnektivitätsprobleme zu lösen, und wieder entfernen, wenn das OCSP-Verfügbarkeitsproblem behoben ist.DisableTelemetryGibt an, ob das Umschalten des In-Band-Telemetrie-Handlers aktiviert ist. Wenn diese Treiberkonfigurationseinstellung auf
truefestgelegt ist, wird der Telemetrie-Handler nicht im Treiber erstellt.DriverManagerOverrideStandardmäßig erkennt der Treiber automatisch, welcher Treibermanager verwendet werden soll. Wenn Ihre spezielle Situation dies jedoch erfordert, können Sie ab ODBC-Treiber-Version 3.9.0 diese automatische Erkennung überschreiben und manuell angeben, welcher Treiber-Manager verwendet werden soll.
Mögliche Werte sind: UnixODBC und iODBC.
Wenn
DriverManagerOverridenicht angegeben ist, verwendet der Treiber die automatische Erkennung (call backtrace()) zum Abrufen von Informationen zum Treiber-Manager. Dies ist das Standardverhalten.Der Parameter funktioniert nur unter Linux und MacOS.
EnableAutoIpdByDefaultSetzen Sie den Parameter auf
false, um den ODBC-Treiber so zu konfigurieren, dass SQL_ATTR_ENABLE_AUTO_IPD auffalse(ist der Standardwert im ODBC-Standard) gesetzt wird.Andernfalls wird standardmäßig setzte der ODBC-Treiber SQL_ATTR_ENABLE_AUTO_IPD auf „true“, um die Kompatibilität mit Tools von Drittanbietern sicherzustellen.
Dieser Parameter wurde in Version 2.22.0 des ODBC-Treibers eingeführt.
EnablePidLogFileNamesSetzen Sie den Wert auf
true, um die Prozess.ID in den Namen der Protokolldatei aufzunehmen. Wenn die Prozess-ID beispielsweise 7394 ist, werden die Protokolldateien wie folgt benannt:snowflake_odbc_connection_7394_0.logsnowflake_odbc_generic7394_0.logsnowflake_odbc_curl_7394.dmp
Sie können diesen Parameter festlegen, um zu verhindern, dass verschiedene Prozesse die gleichen Protokolldateien überschreiben. Jeder Prozess generiert einen eigenen Satz von Protokolldateien.
Standardmäßig ist der Wert dieses Parameters
false.Dieser Parameter wurde in Version 2.22.2 des ODBC-Treibers eingeführt.
get_size_thresholdGibt die minimale Dateigröße in Megabyte (MB) an, um Dateien in kleinere Teile aufzuteilen, wenn sie mit dem Befehl GET heruntergeladen werden. Dateien, die kleiner als dieser Schwellenwert sind, werden nicht in mehreren Teilen heruntergeladen.
Der Standardwert ist 5 (MB).
Bemerkung
Sie können diesen Wert für bestimmte Fälle außer Kraft setzen, indem Sie den entsprechenden Verbindungsparameter get_size_threshold setzen.
KeepLeadingTrailingZerosLegt fest, wie führende oder nachstehende Nullen in Zahlen, die als Zeichenfolgenwerte formatiert sind, behandelt werden. Standardmäßig ist der Parameter auf
trueeingestellt, was bedeutet, dass der Treiber alle führenden oder nachstehenden Nullen beibehält. Setzen Sie den Parameter auffalse, um führende oder nachstehende Nullen zu entfernen. Beispiel:0.23wird in.23geändert7.00wird in7geändert.
LogFileCountLegt die maximale Anzahl der Protokolldateien fest, die aufbewahrt werden sollen, bevor ältere Dateien gelöscht werden, um Platz für neue Protokolldateien zu schaffen.
LogFileSizeGibt die maximale Größe einer Protokolldatei in Byte an. Wenn eine Protokolldatei die angegebene Größe erreicht, erstellt der ODBC-Treiber automatisch eine neue Protokolldatei.
Standardwert ist 20971520.
LogLevelGibt den Detaillierungsgrad an, der für Clients protokolliert wird, die den ODBC-Treiber verwenden:
0 = Aus
1 = Schwerwiegend
2 = Fehler
3 = Warnung
4 = Info
5 = Fehlersuche
6 = Ablaufverfolgung
LogPathGibt den Speicherort der Snowflake-Protokolldateien für Clients an, die den ODBC-Treiber verwenden.
MapToLongVarcharGibt die Länge einer Zeichenfolge an, ab der mit der Zuordnung von Zeichenfolgenwerten zu einem ODBC
SQL_LONGVARCHAR-Datentyp anstelle der Standard-Datentypen ODBCSQL_CHARoderSQL_VARCHARbegonnen werden soll.< 0 (oder nicht gesetzt): Ordnet Zeichenfolgenwerte mit ihren Standard-ODBC-Datentypen zu. Standardwert ist -1.
>= 0: Gibt die maximale Anzahl von Zeichen der Zeichenfolge an, die den Standard-ODBC-Datentypen für Zeichenfolgen zugeordnet werden sollen. Alle Zeichenfolgen, die größer als dieser Wert sind, werden
SQL_LONGVARCHARzugeordnet.
Sie können diesen Parameter auch als Verbindungsparameter angeben. (siehe Anleitungen für das Einstellen der Parameter unter Windows, macOS und Linux). Wenn beide als Verbindungsparameter und als Konfigurationsparameter eingestellt sind, hat der Verbindungsparameter im DSN (bzw. in der Verbindungszeichenfolge) Vorrang.
Dieser Parameter wurde in Version 2.24.3 des ODBC-Treibers eingeführt.
NoExecuteInSQLPrepareSetzen Sie diesen Wert auf
true, um den ODBC-Treiber so zu konfigurieren, dass er das ODBC-Standardverhalten verwendet, wenn DDL-Anweisungen (wie CREATE und DROP) anSQLPrepare()undSQLExecute()übergeben werden.In Snowflake wird standardmäßig bei Übergabe einer DDL-Anweisung an die
SQLPrepare()-Funktion der ODBC-Treiber die Anweisung zur Ausführung (nicht zur Vorbereitung) an die Datenquelle sendet. Wenn Sie eine DDL-Anweisung anSQLExecute()übergeben, sendet der ODBC-Treiber die Anweisung nicht an die Datenquelle.Wenn Sie
NoExecuteInSQLPrepareauftruesetzen, folgt der ODBC-Treiber dem ODBC-Standardverhalten. Durch Aufrufen vonSQLPrepare()wird die Anweisung zur Vorbereitung (nicht zur Ausführung) an die Datenquelle gesendet. Durch Aufrufen vonSQLExecute()wird die Anweisung zur Ausführung an die Datenquelle gesendet.Dieser Parameter wurde in Version 2.21.6 des ODBC-Treibers eingeführt.
NoProxyGibt die Hostnamenmuster zur Umgehung des Proxyservers an, z. B.
.amazonaws.comzur Umgehung des Amazon S3-Zugriffs.Bemerkung
Der Snowflake-ODBC-Treiber übergibt den
NoProxy-Wert an die cURL-OptionCURLOPT_NOPROXY.Das Format des
NoProxy-Werts finden Sie unter CURLOPT_NOPROXY explained.ProxyGibt einen Proxyserver in der Form
<Host>:<Port>für Clients an, die den ODBC-Treiber verwenden.Bemerkung
Unter Windows werden die Einträge für
LogLevelundLogPatherstellt und mit Standardwerten gefüllt, wenn der ODBC-Treiber installiert ist. Ein Eintrag fürProxywird jedoch während der Installation nicht erstellt. Um einen Proxy anzugeben, der mit dem Treiber verwendet werden soll, müssen Sie den Eintrag manuell zum Treiberregistrierungsschlüssel hinzufügen.Um den Proxy für eine oder mehrere IP-Adressen oder URLs zu umgehen, fügen Sie den Parameter NoProxy hinzu.
SSLVersionGibt die SSL/TLS-Mindestversion ab, die beim Initiieren des TLS-Handshake verwendet werden soll. Die Werte entsprechen den Fähigkeiten von libcurl. Weitere Informationen finden Sie bei den
CURL_SSLVERSION_*-Einträgen in der `CURLOPT_SSLVERSION-Erläuterung<https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html>`_.Mögliche Werte: TLSv1, SSLv2, SSLv3, TLSv1_0, TLSv1_1, TLSv1_2 oder TLSv1_3 (Standard: TLSv1_2).
Snowflake empfiehlt, diese Einstellung in der Standardeinstellung zu belassen, wenn von Ihrer Seite aus keine konkreten Gründe vorliegen, dies zu ändern.
SSLVersionMaxGibt die SSL/TLS-Höchstversion ab, die beim Initiieren des TLS-Handshake verwendet werden soll. Die Werte entsprechen den Fähigkeiten von libcurl. Weitere Informationen finden Sie bei den
CURL_SSLVERSION_MAX_*-Einträgen in der `CURLOPT_SSLVERSION-Erläuterung<https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html>`_.Mögliche Werte: TLSv1_0, TLSv1_1, TLSv1_2 oder TLSv1_3 (Standard: TLSv1_3).
Snowflake empfiehlt, diese Einstellung in der Standardeinstellung zu belassen, wenn von Ihrer Seite aus keine konkreten Gründe vorliegen, dies zu ändern.
Verbindungsparameter¶
Wichtig
Ab Snowflake Version 8.24 haben Administratoren im Netzwerk die Möglichkeit, eine mehrstufige Authentifizierung (MFA) für alle Verbindungen zu Snowflake zu verlangen. Wenn Ihr Administrator beschließt, dieses Feature zu aktivieren, müssen Sie Ihren Client oder Treiber so konfigurieren, dass er bei der Verbindung mit Snowflake MFA verwendet. Weitere Informationen finden Sie in den folgenden Ressourcen:
Erforderliche Verbindungsparameter¶
<Name>(Datenquelle)Gibt den Namen Ihres DSN an.
port(Port)Gibt den Port an, an dem der Treiber die Snowflake-Kommunikation abhört.
Bemerkung
Sie müssen den Standardwert
Portvon443nicht ändern.pwd(Kennwort)Für die Verbindung zu Snowflake ist ein Kennwort erforderlich. Aus Sicherheits- und Authentifizierungsgründen rät Snowflake jedoch dringend davon ab, Kennwort-Anmeldeinformationen direkt innerhalb einer DSN-Definition zu speichern.
Normalerweise werden die Anmeldeinformationen von der Clientanwendung, die sich mit Snowflake zu verbinden versucht, programmgesteuert an den Treiber übergeben.
Bemerkung
Unter Windows zeigt der ODBC-Treiber ein Feld Password im Data Source Administration-Tool an, der Treiber speichert jedoch keine in das Feld eingegebenen Werte. Stattdessen verlangt der Treiber, dass zur Verbindungszeit Anmeldeinformationen bereitgestellt werden.
server(Server)Gibt den Hostnamen für Ihr Konto im folgenden Format an:
account_identifier.snowflakecomputing.comUm den zu verwendenden Kontobezeichner zu bestimmen, siehe Konfigurieren eines Clients, eines Treibers, einer Bibliothek oder einer Anwendung eines Drittanbieters für die Verbindung mit Snowflake.
uid(Benutzer)Gibt den Anmeldenamen des Snowflake-Benutzers an, der authentifiziert werden soll.
Optionale Verbindungsparameter¶
BROWSER_RESPONSE_TIMEOUTGibt die Anzahl der Sekunden an, die in einem externen Browser auf eine Authentifizierungsantwort gewartet werden soll.
Der Standardwert ist 120.
CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED=<Boolesch>Gibt an, ob die Out-of-Band-Telemetrie aktiviert werden soll.
Standard ist
true
CLIENT_SESSION_KEEP_ALIVE=<Boolesch>Gibt an, ob die aktuelle Sitzung nach einer Zeit der Inaktivität aktiv bleiben soll oder ob der Benutzer gezwungen werden soll, sich erneut anzumelden. Wenn der Wert
trueist, hält Snowflake die Sitzung auf unbestimmte Zeit aktiv, auch wenn es keine Aktivität des Benutzers gibt. Wenn der Wertfalseist, muss sich der Benutzer nach vier Stunden Inaktivität erneut anmelden.Der Standardwert ist
false.
database(Datenbank)Gibt die Standarddatenbank an, die für vom Treiber initiierte Sitzungen verwendet werden soll.
disableSamlUrlCheckGibt an, ob die Überprüfung für SAML URLs deaktiviert werden soll. Standardmäßig verifiziert der Treiber SAML URLs.
Der Standardwert ist
false.
maxHttpRetries(Datenbank)Gibt die maximale Anzahl der HTTP-Wiederholungsversuche bei Abfragen mit fehlgeschlagenen HTTP-Anforderungen an, bevor ein Fehler zurückgegeben wird. Durch die Einstellung
maxHttpRetries=0wird das Limit für die Wiederholungsversuche aufgehoben. Dabei besteht jedoch die Gefahr, dass der Treiber fehlgeschlagene HTTP-Anforderungen unendlich oft wiederholt.Der Standardwert ist 7.
role(Rolle)Gibt die Standardrolle an, die für vom Treiber initiierte Sitzungen verwendet werden soll. Die angegebene Rolle sollte eine Rolle sein, die dem angegebenen Benutzer für den Treiber zugeordnet wurde. Wenn die angegebene Rolle mit keiner der dem Benutzer zugeordneten Rollen übereinstimmt, haben vom Treiber initiierte Sitzungen zunächst keine Rolle. Eine Rolle kann jedoch immer innerhalb der Sitzung angegeben werden.
schema(Schema)Gibt das Standardschema an, das für vom Treiber initiierte Sitzungen verwendet werden soll.
Der Standardwert ist
public.
SecondaryRoles(Rolle)Gibt die Sekundärrolle an, die für vom Treiber initiierte Sitzungen verwendet werden soll. Die Rollen müssen dem angegebenen Benutzer für den Treiber bereits zugewiesen sein. Sekundärrollen können auch innerhalb einer Benutzersitzung mit dem Befehl
USE SECONDARY ROLESaktiviert werden.Mögliche Werte sind:
All: Alle dem Benutzer zugewiesenen Rollen.
None: Keine Rollen erlaubt (deaktiviert die Sekundärrollen).
tracing(Ablaufverfolgung)Der Detaillierungsgrad, der in den Ablaufverfolgungsdateien für Treiber protokolliert werden soll:
0 = Ablaufverfolgung deaktivieren
1 = Nur Ablaufverfolgung schwerwiegender Fehler
2 = Ablaufverfolgung von Fehlern
3 = Ablaufverfolgung von Warnungen
4 = Ablaufverfolgung von Informationen
5 = Debug-Ablaufverfolgung
6 = Detaillierte Ablaufverfolgung
warehouse(Warehouse)Gibt das Standard-Warehouse an, das für vom Treiber initiierte Sitzungen verwendet werden soll.
Zusätzliche Verbindungsparameter¶
Bemerkung
Unter Windows können diese zusätzlichen Verbindungsparameter in der Windows-Registrierung festgelegt werden (mithilfe von regedit).
Unter macOS oder Linux werden sie in der odbc.ini-Datei festgelegt, ähnlich wie der Rest der Verbindungsparameter.
allowEmptyProxyGibt an, ob leere Werte für die Verbindungsparameter proxy und no_proxy zugelassen werden sollen, wie in den folgenden Abschnitten beschrieben:
Das Einstellen der Werte hat die folgenden Auswirkungen:
true: Der Treiber behandelt leere Proxy-Werte als gültige Proxy-Einstellungen und überschreibt alle vorhandenen Einstellungen oder Umgebungsvariablen.false: Der Treiber ignoriert leere Proxy-Werte und verwendet die angegebenen Konfigurationsparameter oder Umgebungsvariablen.
Der Standardwert ist
true.applicationSnowflake partner use only: Gibt den Namen einer Partneranwendung an, die über ODBC verbunden werden soll.
Dieser Parameter kann auch durch Aufrufen der Funktion
SQLSetConnectAttr()festgelegt werden. Weitere Informationen dazu finden Sie unter Snowflake-spezifisches Verhalten der SQLSetConnectAttr-Funktion.authenticatorGibt den Authentifikator an, der für die Überprüfung der Anmeldeinformationen des Benutzers verwendet werden soll:
snowflake(Standard), um den internen Snowflake-Authentifikator zu verwenden.externalbrowser, um den für Ihr Konto definierten Webbrowser für die Authentifizierung mit Okta, AD FS oder einem anderen SAML 2.0-kompatiblen Identitätsanbieter (IdP) zu verwenden.Bemerkung
Der Snowflake-ODBC-Treiber unterstützt keine
externalbrowser-Authentifizierung mit Microsoft Excel unter MacOS.https://<Name_des_Okta-Kontos>.okta.com(d. h. der URL-Endpunkt für Okta) zum Authentifizieren über das systemeigene Okta (nur unterstützt, wenn Ihr IdP Okta ist).oauthzum Authentifizieren mit OAuth. Wenn OAuth als Authentifikator angegeben ist, müssen Sie auch den Parametertokenfestlegen, um das OAuth-Token anzugeben (siehe unten).username_password_mfazum Authentifizieren mit MFA-Tokencaching. Weitere Informationen dazu finden Sie unter Verwenden der mehrstufigen Authentifizierung (unter diesem Thema).oauth_authorization_codeAuthentifizieren Sie sich manuell mit einem OAuth-Autorisierungscode mit Ihrem Webbrowser und einem ausgewählten Identitätsanbieter (einschließlich Snowflake als IdP). Weitere Informationen dazu finden Sie unter Verwendung des OAuth 2.0-Autorisierungscodeablaufs.oauth_client_credentialsAutomatische Authentifizierung mit OAuth-Client-Anmeldeinformationen bei dem von Ihnen gewählten Identitätsanbieter (Snowflake als IdP unterstützt den Client-Anmeldeinformationsablauf nicht). Weitere Informationen dazu finden Sie unter Verwendung des OAuth 2.0-Client-Anmeldeinformationsablaufs.programmatic_access_tokenzur Authentifizierung mit einem programmatischen Zugriffstoken (PAT).workload_identityzum Authentifizieren mit dem Workload Identity Federation (WIF)-Authentifikator.
Der Standardwert ist
snowflake.Unter Windows können Sie mit dem ODBC Data Source Administration-Tool verwenden, um diesen Parameter einzustellen.
Weitere Informationen zur Authentifizierung finden Sie unter Verwenden und Verwalten der Verbundauthentifizierung und Clients, Treiber und Konnektoren.
default_binary_size, .default_varchar_sizeGibt die Standardgröße in Byte an, die der Treiber beim Abrufen und Konvertieren von Werten aus BINARY- oder VARCHAR-Spalten mit unbestimmter Größe verwendet. Stellen Sie dies ein, wenn Sie Werte aus diesen Spaltentypen abrufen.
Standardmäßig verwendet der Treiber
67108864(für BINARY-Spalten) und134217728(für VARCHAR-Spalten) als Standardgrößen, wenn er Speicher für das Abrufen des Wertes einer Spalte unbestimmter Größe zuweist.Um den für diese Werte zugewiesenen Speicherplatz zu reduzieren, können Sie
default_binary_sizeunddefault_varchar_sizeauf die maximale Größe der Werte in Spalten dieses Typs einstellen.Bemerkung
Durch Einstellen dieser Werte werden nur das Feld
SQL_DESC_LENGTHim Implementation Row Descriptor (IRD) und die entsprechenden Werte geändert, die vonSQLDescribeCol/SQLColAttribute/SQLColAttributeszurückgegeben werden. Der Treiber gibt immer noch die gesamten Daten zurück, auch wenn die Länge der Daten die Einstellung überschreitet.Jedoch könnte eine Anwendung einen Datenpuffer auf der Grundlage der in diesen Parametern angegebenen Länge zuweisen, wodurch die Daten abgeschnitten werden könnten, weil der Platz im Puffer nicht ausreicht. Snowflake empfiehlt, die Standardgröße größer als die maximale Größe der typischen Daten (z. B. 4000 oder 8000 Byte) einzustellen, um den Verbrauch an Arbeitsspeicher gegenüber den ursprünglichen Standardwerten 134217728/67108864 Byte erheblich zu verringern und so die Gefahr der Datenabschneidung zu minimieren.
Sie können diese Einstellungen auch verwenden, um den folgenden Fehler zu vermeiden, der bei Verwendung des Microsoft OLE-DB-Anbieters (MSDASQL) mit einer Snowflake-Datenbank auftreten kann:
Requested conversion is not supported Cannot get the current row value of column
Sie können diese Parameter als Konfigurationsparameter der Verbindung angeben (z. B. in der
simba.snowflake.iniauf macOS und Linux). Wenn dies als Verbindungsparameter und als Konfigurationsparameter eingestellt ist, hat der Verbindungsparameter im DSN (bzw. in der Verbindungszeichenfolge) Vorrang.Diese Parameter wurden in Version 2.23.2 des ODBC-Treibers eingeführt.
get_size_thresholdGibt die minimale Dateigröße in Megabyte (MB) an, um Dateien in kleinere Teile aufzuteilen, wenn sie mit dem Befehl GET heruntergeladen werden. Dateien, die kleiner als dieser Schwellenwert sind, werden nicht in mehreren Teilen heruntergeladen.
Der Standardwert ist 5 (MB).
Bemerkung
Die Einstellung dieses Wertes als Verbindungsparameter setzt den Wert des entsprechenden Konfigurationsparameters get_size_threshold außer Kraft.
login_timeoutGibt an, wie lange beim Herstellen einer Verbindung zum Snowflake-Dienst auf eine Antwort gewartet werden soll, bevor ein Anmeldefehler zurückgegeben wird.
Standardwert ist 300 (Sekunden).
network_timeoutGibt an, wie lange beim Interagieren mit dem Snowflake-Dienst auf eine Antwort gewartet werden soll, bevor ein Fehler zurückgegeben wird. Null (0) bedeutet, dass kein Netzwerk-Timeout eingestellt ist.
Standardwert ist 0 (Sekunden).
retryTimeoutGibt an, wie lange (in Sekunden) gewartet werden soll, bevor bei HTTP-Wiederholungsversuchen von Abfragen mit fehlgeschlagenen HTTP-Anforderungen ein Fehler zurückgegeben wird. Null (0) bedeutet, dass kein Timeout für Wiederholungen eingestellt ist.
Standardwert ist 300 (Sekunden).
no_proxyGibt an, welche Hostnamen-Endungen den Proxyserver umgehen dürfen (z. B. bedeutet
no_proxy=.amazonaws.com, dass der Amazon S3-Zugriff nicht über den Proxy erfolgen muss).Dieser Parameter unterstützt keine Platzhalter. Jeder angegebene Wert sollte einer der folgenden Werte sein:
Das Ende eines Hostnamens (oder eines vollständigen Hostnamens), zum Beispiel:
.amazonaws.com
meineOrganisation-meinKonto.snowflakecomputing.com
Eine IP-Adresse, zum Beispiel:
192.196.1.15
Wenn mehr als ein Wert angegeben wird, sollten die Werte durch Kommas getrennt werden. Beispiel:
no_proxy=localhost,.example.com,myorganization-myaccount.snowflakecomputing.com,192.168.1.15,192.168.1.16
Bemerkung
Dieser Parameter wird auf den Prozess angewendet. Wenn eine andere Verbindung den gleichen Prozess teilt, muss die Proxyeinstellung identisch sein, oder das Verhalten ist nicht vorhersehbar.
odbc_use_standard_timestamp_columnsizeDieser boolesche Parameter wirkt sich auf die Spaltengröße (in Zeichen) aus, die für SQL_TYPE_TIMESTAMP zurückgegeben wird. Wenn dieser Parameter auf „true“ gesetzt ist, gibt der Treiber 29 gemäß dem ODBC-Standard zurück. Wenn dieser Parameter auf
falsegesetzt ist, gibt der Treiber 35 zurück, wodurch Platz für den Zeitzonenversatz bleibt (z. B. „-08:00“).Dieser Wert kann nicht nur über die „odbc.ini“-Datei (Linux oder macOS) oder die Microsoft Windows-Registrierung festgelegt werden, sondern auch über die Verbindungszeichenfolge.
Der Standardwert ist
false.passcodeGibt die Kennung an, die für die mehrstufige Authentifizierung verwendet werden soll.
Weitere Informationen zur mehrstufigen Authentifizierung finden Sie unter Mehrstufige Authentifizierung (MFA).
passcodeInPasswordGibt an, ob die Kennung für die mehrstufige Authentifizierung an das Kennwort angehängt wird:
on(odertrue) gibt an, dass die Kennung angehängt wird.off(oderfalse) oder ein anderer Wert gibt an, dass die Kennung nicht angehängt wird.
Der Standardwert ist
off.
proxyGibt die URL des Proxyservers im Format
http://<Hostname>:<Port>/oder<Hostname>:<Portnummer>an, sodass die gesamte ODBC-Kommunikation über den Proxyserver erfolgt.Bemerkung
Dieser Parameter wird auf den Prozess angewendet. Wenn eine andere Verbindung den gleichen Prozess teilt, muss die Proxyeinstellung identisch sein, oder das Verhalten ist nicht vorhersehbar.
put_compresslvGibt die Komprimierungsrate an, die der ODBC-Treiber bei der Übertragung von Daten mit dem PUT-Befehl verwendet. Dieser Parameter überschreibt den standardmäßigen gzip-Komprimierungsgrad. Wenn Sie
put_compresslvnicht angeben, verwendet der ODBC-Treiber den Standardkomprimierungsgrad.Gültige Werte sind
-1bis9. Der Standardwert ist-1und gibt die StandardkomprimierungsrateZ_DEFAULT_COMPRESSIONan.Die Werte
0bis9geben eine kundenspezifische Komprimierungsrate an.0veranlasst den ODBC-Treiber, eine niedrigere Komprimierungsrate zu verwenden, und9verwendet eine höhere Komprimierungsrate. Die Verwendung einer höheren Komprimierungsrate führt zu einer geringeren Geschwindigkeit beim Datentransfer.Sie können diesen Parameter auch als Konfigurationsparameter (zum Beispiel in der
simba.snowflake.iniunter macOS und Linux) angeben. Wenn dies als Verbindungsparameter und als Konfigurationsparameter eingestellt ist, hat der Verbindungsparameter im DSN (bzw. in der Verbindungszeichenfolge) Vorrang.Dieser Parameter wurde in Version 2.23.3 des ODBC-Treibers eingeführt.
put_fastfailWenn Sie im PUT-Befehl Platzhalterzeichen verwenden, um mehrere Dateien auf einmal hochzuladen, und Sie möchten, dass der Treiber bei Auftreten eines Fehlers das Hochladen der Dateien abbricht, setzen Sie diesen Parameter auf
true.Der Standardwert ist
false, d. h. wenn bei einer Datei ein Fehler auftritt, fährt der Treiber mit dem Hochladen der restlichen Dateien fort.Dieser Parameter wurde in Version 2.22.3 des ODBC-Treibers eingeführt.
Ab Version 2.22.5 des ODBC-Treibers können Sie diesen Parameter auch als Konfigurationsparameter (zum Beispiel in der
simba.snowflake.iniunter macOS und Linux) angeben. Wenn dies als Verbindungsparameter und als Konfigurationsparameter eingestellt ist, hat der Verbindungsparameter im DSN (bzw. in der Verbindungszeichenfolge) Vorrang.
put_maxretriesGibt an, wie oft der Treiber die Ausführung des PUT-Befehls erneut versuchen soll, wenn der Befehl fehlschlägt.
Der Standardwert ist 5.
Der gültige Wertebereich für diesen Parameter ist
0bis100. Wenn Sie einen Wert außerhalb dieses Bereichs angeben, verwendet der Treiber den Standardwert5.Dieser Parameter wurde in Version 2.22.3 des ODBC-Treibers eingeführt.
Ab Version 2.22.5 des ODBC-Treibers können Sie diesen Parameter auch als Konfigurationsparameter (zum Beispiel in der
simba.snowflake.iniunter macOS und Linux) angeben. Wenn dies als Verbindungsparameter und als Konfigurationsparameter eingestellt ist, hat der Verbindungsparameter im DSN (bzw. in der Verbindungszeichenfolge) Vorrang.
put_tempdirGibt das temporäre Verzeichnis an, das für PUT-Befehlsanforderungen verwendet werden soll. Der Treiber verwendet dieses temporäre Verzeichnis, um temporäre komprimierte Dateien zu erstellen, bevor diese Dateien zu Snowflake hochgeladen werden.
Wenn dieser Parameter nicht festgelegt ist, erstellt und verwendet der Treiber das temporäre Verzeichnis
/tmp/snowflakeTmp_username, wobeiusernameder Benutzername des aktuellen Benutzers im Betriebssystem ist.Sie können diesen Parameter auch als Konfigurationsparameter (zum Beispiel in der
simba.snowflake.iniunter macOS und Linux) angeben. Wenn dies als Verbindungsparameter und als Konfigurationsparameter eingestellt ist, hat der Verbindungsparameter im DSN (bzw. in der Verbindungszeichenfolge) Vorrang.Dieser Parameter wurde in Version 2.23.1 des ODBC-Treibers eingeführt.
token=<Zeichenfolge>Gibt das Token für die OAuth- oder PAT-Authentifizierung an, wobei
<string>das Token ist. Dieser Parameter ist nur erforderlich, wenn der Parameterauthenticator=oauthoderauthenticator=programmatic_access_tokengesetzt ist.Der Standardwert ist „none“.
query_timeoutGibt an, wie lange auf das Ende einer Abfrage gewartet werden soll, bevor ein Fehler gemeldet wird. Null (0) bedeutet, dass Sie auf unbestimmte Zeit warten müssen.
Standardwert ist 0 (Sekunden).
validateSessionParamGibt an, wie zu reagieren ist, wenn einer der folgenden Sitzungsverbindungsparameter ungültig ist:
enable_connection_diagGibt an, ob der Konnektor einen Diagnosebericht zur Konnektivität erstellt.
Der Standardwert ist
false.connection_diag_log_pathGibt den absoluten Pfad an, unter dem der Konnektivitätsbericht gespeichert wird.
Nur gültig, wenn
enable_connection_diagtrueist.Beispiel:
connection_diag_log_path=C:\\reportsconnection_diag_allowlist_pathGibt den absoluten Pfad zu einer JSON-Datei an, die die Ausgabe von
SYSTEM$ALLOWLIST()oderSYSTEM$ALLOWLIST_PRIVATELINK()enthält.Nur gültig, wenn
enable_connection_diagtrueist.Beispiel:
connection_diag_log_path=C:\\allowlist.jsonOAUTH_CLIENT_IDWert der
client id, die vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird (Snowflake-Metadaten für die Sicherheitsintegration).Standard:
LOCAL_APPLICATION.OAUTH_CLIENT_SECRETWert des
client secret, das vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird (Snowflake-Metadaten für die Sicherheitsintegration).Standard:
LOCAL_APPLICATION.OAUTH_AUTHORIZATION_URLEndpunkt des Identitätsanbieters, der den Autorisierungscode an den Treiber liefert. Wenn Snowflake als Identitätsanbieter verwendet wird, wird dieser Wert von den Parametern
serveroderaccountabgeleitet.OAUTH_TOKEN_REQUEST_URLEndpunkt des Identitätsanbieters, der die Zugriffstoken für den Treiber bereitstellt. Wenn Snowflake als Identitätsanbieter verwendet wird, wird dieser Wert von den Parametern
serveroderaccountabgeleitet.OAUTH_SCOPEBereich, der in der Autorisierungsanfrage des Identitätsanbieters angefordert wird. Standardmäßig wird dies von der Rolle abgeleitet. Wenn mehrere Bereiche erforderlich sind, sollte der Wert eine durch Leerzeichen getrennte Liste mit mehreren Bereichen sein.
OAUTH_REDIRECT_URIURI zur Verwendung für die Umleitung des Autorisierungscodes (Metadaten zur Snowflake-Sicherheitsintegration). Standard:
http://127.0.0.1:{randomAvailablePort}.WORKLOAD_IDENTITY_PROVIDERPlattform des Workload-Identitätsanbieters. Mögliche Werte sind:
AWS,AZURE,GCPundOIDC.PRIV_KEY_BASE64Base64-codierter privater Schlüssel.
PRIV_KEY_PWDBase64-codiertes Kennwort für den privaten Schlüssel.
Verbinden mit der Datei connections.toml¶
Mit dem ODBC-Treiber können Sie Definitionen für Verbindungen zu einer Datei der Konfiguration connections.toml hinzufügen. Eine Verbindungsdefinition bezieht sich auf eine Sammlung von verbindungsbezogenen Parametern. Der Treiber unterstützt derzeit TOML Version 1.0.0.
Weitere Informationen zu toml-Dateiformaten finden Sie unter TOML (Tom’s Obvious Minimal Language).
Das Präfix für die Zeichenfolge der Verbindung: odbc:snowflake:auto weist den Treiber an, in den vordefinierten (Standard-)Dateien nach der Konfiguration der Verbindung zu suchen. Der ODBC-Treiber sucht die connections.toml-Datei an den folgenden Speicherorten, in dieser Reihenfolge:
Wenn auf Ihrem Computer ein Verzeichnis
~/.snowflakeexistiert, verwendet ODBC die Datei~/.snowflake/connections.toml.Speicherort, der in der
SNOWFLAKE_HOME-Umgebungsvariablen angegeben ist.Andernfalls verwendet die ODBC die Datei
connections.tomlan einem der folgenden Speicherorte, abhängig von Ihrem Betriebssystem:Linux:
~/.config/snowflake/connections.toml, aber Sie können es mit XDG vars aktualisierenWindows:
%USERPROFILE%\AppData\Local\snowflake\connections.tomlMac:
~/Library/Application Support/snowflake/connections.toml
Sie können die Grundeinstellungen für die TOML-Konfigurationsdatei in Snowsight festlegen. Weitere Informationen dazu finden Sie unter Konfigurieren eines Clients, eines Treibers, einer Bibliothek oder einer Anwendung eines Drittanbieters für die Verbindung mit Snowflake.
Wenn Sie zwischen mehreren bestehenden Verbindungen wechseln möchten, können Sie diese in der connections.toml-Datei konfigurieren. Der voreingestellte Schlüssel ist default, aber Sie können den Namen der voreingestellten Verbindung ändern, indem Sie die Shell-Umgebungsvariable SNOWFLAKE_DEFAULT_CONNECTION_NAME einstellen.
In den folgenden connections.toml-Beispieldateien werden zwei Verbindungen definiert:
[default]
account = 'my_organization-my_account'
user = 'test_user'
password = '******'
warehouse = 'testw'
database = 'test_db'
schema = 'test_odbc'
protocol = 'https'
port = '443'
[aws-oauth-file]
account = 'my_organization-my_account'
user = 'test_user'
password = '******'
warehouse = 'testw'
database = 'test_db'
schema = 'test_odbc'
protocol = 'https'
port = '443'
authenticator = 'oauth'
token_file_path = '/Users/test/.snowflake/token'
Festlegen von Parametern in einer Verbindungszeichenfolge¶
Sie können Verbindungsparameter als Name-Wert-Paare in einer Verbindungszeichenfolge angeben, wobei Sie zwischen jedem Parameter und Wert ein Gleichheitszeichen (=) und zwischen den Parametern ein Semikolon (;) verwenden müssen. Beispiel:
driver={SnowflakeDSIIDriver};server=myorganization-myaccount.snowflakecomputing.com;uid=myloginname;pwd=mypassword;database=mydatabase;schema=myschema;warehouse=mywarehouse;role=myrole;...
Sie können die grundlegende Verbindungszeichenfolge in Snowsight generieren. Weitere Informationen dazu finden Sie unter Konfigurieren eines Clients, eines Treibers, einer Bibliothek oder einer Anwendung eines Drittanbieters für die Verbindung mit Snowflake.
Überprüfen der Netzwerkverbindung zu Snowflake mit SnowCD¶
Nach der Konfiguration des Treibers 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.
Verbinden über einen Proxyserver¶
Die Anweisungen zur Konfiguration einer Proxyserver-Verbindung hängen von Ihrem Betriebssystem und Ihrer Treiberversion ab:
Betriebssystem |
Treiberversion |
Unterstützte Anweisungen |
|---|---|---|
Linux |
2.16.0 (veröffentlicht am 3. Mai 2018) oder höher |
|
2.13.18 (veröffentlicht am 7. Februar 2018) – 2.15.0 (veröffentlicht am 30. April 2018) |
||
2.13.17 oder niedriger |
||
macOS |
2.16.0 (veröffentlicht am 3. Mai 2018) oder höher |
|
2.14.0 (veröffentlicht am 28. März 2018) – 2.15.0 (veröffentlicht am 30. April 2018) |
||
2.13.21 oder niedriger |
||
Windows |
2.16.0 (veröffentlicht am 3. Mai 2018) oder höher |
|
2.15.0 (veröffentlicht am 30. April 2018) |
||
2.14.0 oder niedriger |
Bemerkung
Die neuesten Versionen des ODBC-Treibers, die oben angegeben sind, unterstützen jede der aufgeführten Konfigurationsoptionen. Die Optionen sind in der Reihenfolge ihrer Priorität aufgeführt. Wenn mehr als eine Option definiert ist, wird die Einstellung mit der höchsten Priorität angewendet.
Verwenden von Verbindungsparametern¶
Um eine Verbindung über einen Proxyserver herzustellen, fügen Sie die folgenden Verbindungsparameter zum DSN hinzu:
proxyno_proxy
Beispiel:
[connection] Description = SnowflakeDB Driver = SnowflakeDSIIDriver Locale = en-US server = myorganization-myaccount.snowflakecomputing.com proxy = http://proxyserver.company:80 no_proxy = .amazonaws.com
Die Parameterbeschreibungen finden Sie unter Verbindungsparameter.
Verwenden von Konfigurationsparametern¶
Bemerkung
Diese Parameter sind in den aktuellen ODBC-Treiberversionen veraltet (d. h. sie werden nicht mehr unterstützt). Siehe die Tabelle der unterstützten Optionen unter Verbinden über einen Proxyserver. Wenn Sie Ihren Treiber aktualisieren, konfigurieren Sie die Einstellungen Ihres Proxyservers mithilfe der Umgebungsvariablen oder Verbindungsparameter.
Um eine Verbindung über einen Proxyserver herzustellen, fügen Sie die folgenden Konfigurationsparameter hinzu:
ProxyNoProxy
Siehe Konfigurationsparameter für Parameterbeschreibungen.
Verwenden von Umgebungsvariablen¶
Um eine Verbindung über einen Proxyserver herzustellen, konfigurieren Sie die folgenden Umgebungsvariablen:
http_proxyhttps_proxyno_proxy
Bemerkung
Bei diesen Umgebungsvariablen muss unter Linux und macOS die Groß-/Kleinschreibung beachtet werden; hier müssen Kleinbuchstaben verwendet werden. Unter Windows muss bei diesen Umgebungsvariablen die Groß-/Kleinschreibung nicht beachtet werden.
Beispiel:
Linux oder macOS:
export http_proxy=http://proxyserver.example.com:80 export https_proxy=http://proxyserver.example.com:80
Wenn der Proxyserver einen Benutzernamen und ein Kennwort erfordert, geben Sie die Anmeldeinformationen an, z. B.:
export https_proxy=http://username:password@proxyserver.example.com:80
Windows:
set http_proxy=http://proxyserver.example.com:80 set https_proxy=http://proxyserver.example.com:80
Wenn der Proxyserver einen Benutzernamen und ein Kennwort erfordert, geben Sie die Anmeldeinformationen an, z. B.:
set https_proxy=http://username:password@proxyserver.example.com:80
Optional: Um den Proxy für bestimmte Kommunikationen zu umgehen, stellen Sie no_proxy ein (z. B. um den Zugriff auf Amazon S3 zu umgehen, verwenden Sie no_proxy=.amazonaws.com).
Verwenden von Single Sign-On (SSO) zur Authentifizierung¶
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. Weitere Informationen dazu finden Sie unter Verwenden von SSO bei Clientanwendungen, die sich mit Snowflake verbinden.
Verwenden der mehrstufige Authentifizierung¶
Snowflake unterstützt das Caching von MFA-Token, einschließlich der Kombination der von MFA-Token-Caching mit SSO.
Weitere Informationen dazu finden Sie unter Verwenden von MFA-Tokencaching zur Minimierung der Anzahl von Eingabeaufforderungen bei der Authentifizierung – Optional.
Verwenden der Schlüsselpaar-Authentifizierung¶
Der ODBC-Treiber unterstützt Schlüsselpaar-Authentifizierung und Schlüsselrotation.
Im ersten Schritt führen Sie die Erstkonfiguration der Schlüsselpaar-Authentifizierung durch, wie unter Schlüsselpaar-Authentifizierung und Schlüsselpaar-Rotation gezeigt.
Ändern Sie die Einträge für den Datenquellennamen (DSN) des Treibers. Weitere Informationen zu DSN-Einträgen finden Sie unter dem entsprechenden Thema für Ihr Betriebssystem:
Fügen Sie die folgenden Parameter (unter Beachtung der Groß- und Kleinschreibung) hinzu:
AUTHENTICATOR = SNOWFLAKE_JWTGibt an, dass die Snowflake-Verbindung mithilfe der auf Schlüsselpaaren basierenden Authentifizierung mit dem JSON Web Token (JWT) authentifiziert werden soll.
JWT_TIME_OUT = integerOptional. Gibt an, wie lange Snowflake auf JWT (in Sekunden) wartet, bevor das Zeitlimit überschritten wird. In diesem Fall schlägt die Authentifizierung fehl, und der Treiber gibt einen Fehler
Invalid JWT tokenzurück. Erhöhen Sie den Parameterwert, um ein wiederholtes Auftreten des Fehlers zu verhindern. Standard:30PRIV_KEY_FILE = path/rsa_key.p8Gibt den lokalen Pfad zu der von Ihnen erstellten Datei mit dem privaten Schlüssel an (d. h.
rsa_key.p8).Der im DSN festgelegte Wert kann durch Aufrufen der Funktion
SQLSetConnectAttr()überschrieben werden. Weitere Informationen dazu finden Sie unter Snowflake-spezifisches Verhalten der SQLSetConnectAttr-Funktion.PRIV_KEY_FILE_PWD = <password>Gibt die Kennung zum Decodieren der Datei des privaten Schlüssels an.
Dieser Parameter sollte nur festgelegt werden, wenn der Parameter PRIV_KEY_FILE ebenfalls festgelegt ist.
Der im DSN festgelegte Wert kann durch Aufrufen der Funktion
SQLSetConnectAttr()überschrieben werden. Weitere Informationen dazu finden Sie unter Snowflake-spezifisches Verhalten der SQLSetConnectAttr-Funktion.
Speichern Sie die Einstellungen.
Verwendung des OAuth 2.0-Client-Anmeldeinformationsablaufs¶
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.
So aktivieren Sie den OAuth 2.0-Client-Anmeldeinformationsablauf:
Setzen Sie den Verbindungsparameter
authenticatoraufoauth_client_credentials.Stellen Sie die folgenden OAuth-Verbindungsparameter ein:
OAUTH_CLIENT_ID: Wert derclient id, die vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird (Snowflake-Metadaten für die Sicherheitsintegration).OAUTH_CLIENT_SECRET: Wert desclient secret, das vom Identitätsanbieter für die Snowflake-Integration bereitgestellt wird (Snowflake-Metadaten für die Sicherheitsintegration).OAUTH_TOKEN_REQUEST_URL: Endpunkt des Identitätsanbieters, der die Zugriffstoken an den Treiber liefert. Wenn Snowflake als Identitätsanbieter verwendet wird, wird dieser Wert von den Parameternserveroderaccountabgeleitet.OAUTH_SCOPE: Bereich, der in der Autorisierungsanfrage des Identitätsanbieters angefordert wird. Standardmäßig wird dies von der Rolle abgeleitet. Wenn mehrere Bereiche erforderlich sind, sollte der Wert eine durch Leerzeichen getrennte Liste mit mehreren Bereichen sein.
Authentifizierung mit einem Programmatic Access Token (PAT)¶
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.
Authentifizierung mit Workload Identity Federation (WIF)¶
Workload Identity Federation bietet eine Service-zu-Service-Authentifizierungsmethode für Snowflake. Diese Methode ermöglicht es Anwendungen, Services oder Containern, sich bei Snowflake zu authentifizieren, indem sie das native Identitätssystem ihres Cloudanbieters nutzen, wie z. B. Service-Konten bei AWS IAM, Microsoft Entra ID oder Google Cloud. Bei dieser Herangehensweise entfällt die Notwendigkeit der Verwaltung von langlebigen Anmeldeinformationen. Außerdem wird die Erfassung von Anmeldeinformationen im Vergleich zu anderen Methoden wie External OAuth vereinfacht. Snowflake-Konnektoren sind so konzipiert, dass sie automatisch kurzlebige Anmeldeinformationen vom Identitätsanbieter der Plattform erhalten.
Um den Authentifikator der Workload Identity Federation zu aktivieren, gehen Sie wie folgt vor:
Legen Sie den
authenticator-Verbindungsparameter aufWORKLOAD_IDENTITYfest.Legen Sie den
workload_identity_provider-Verbindungsparameter je nach Plattform aufAWS,AZURE,GCPoderOIDCfest.Geben Sie für OpenID Connect (OIDC) den Verbindungsparameter
tokenan.
Verwalten von Protokolldateien¶
Damit Sie eventuell auftretende Probleme besser verfolgen können, können Sie die Protokollierung im ODBC-Treiber aktivieren. Der ODBC-Treiber bietet die folgenden Konfigurationsoptionen, mit denen Sie die Protokollierung einrichten und Protokolldateien verwalten können:
EnablePidLogFileNames: Fügt die Prozess-ID zum Namen einer Protokolldatei hinzu.
LogFileCount: Legt die maximale Anzahl der gespeicherten Protokolldateien fest.
LogFileSize: Gibt die maximale Größe einer Protokolldatei an.
LogLevel: Gibt an, welche Typen von Informationen protokolliert werden sollen.
LogPath: Legt den Speicherort für Protokolldateien fest.
Mit diesen Parametern können Sie verwalten, wie Protokolldateien benannt, gespeichert und rotiert werden sollen. Sie können angeben, wie groß und wie viele Protokolldateien Sie behalten möchten, bevor diese durch neu erstellte Protokolldateien ersetzt werden. Im folgenden Beispiel wird die Prozess-ID an die Dateinamen angehängt, um die Eindeutigkeit sicherzustellen. Außerdem wird die maximale Dateigröße auf 30 MB festgelegt, und es werden die 100 neuesten Protokolldateien aufbewahrt.
EnablePidLogFileNames = true # Appends the process ID to each log file
LogFileSize = 30,145,728 # Sets log files size to 30MB
LogFileCount = 100 # Saves the 100 most recent log files
Protokollierungskonfigurationsdatei¶
Alternativ können Sie den Protokolliergrad und das Verzeichnis, in dem die Protokolldateien gespeichert werden sollen, auch einfach in der Konfigurationsdatei sf_client_config.json angeben.
Bemerkung
Dieses Feature der Protokollierungskonfigurationsdatei unterstützt nur die folgenden Protokolliergrade:
DEBUG
ERROR
INFO
OFF
TRACE
WARNING
FATAL
Diese Konfigurationsdatei verwendet JSON, um die Protokollierungsparameter log_level und log_path wie folgt zu definieren:
{
"common": {
"log_level": "DEBUG",
"log_path": "/home/user/logs"
}
}
Der Treiber sucht in der folgenden Reihenfolge nach dem Speicherort der Konfigurationsdatei:
Parameter
client_config_file, der den vollständigen Pfad zur Konfigurationsdatei enthält.Umgebungsvariable
SF_CLIENT_CONFIG_FILE, die den vollständigen Pfad zur Konfigurationsdatei enthält.ODBC-Treiberinstallationsverzeichnis, wo die Datei den Namen
sf_client_config.jsontragen muss.Basisverzeichnis des Benutzers, in dem die Datei
sf_client_config.jsonheißen muss.
Bemerkung
Die Werte
LogLevelundLogPathhaben Vorrang vor den Werten, die in der Dateisf_client_config.jsondefiniert sind.Wenn eine Konfigurationsdatei, die entweder im Verbindungsparameter
client_config_fileoder in der UmgebungsvariablenSF_CLIENT_CONFIG_FILEangegeben ist, nicht gefunden oder gelesen werden kann, gibt der Treiber eine Fehlermeldung aus.
Überprüfen der Version von OCSP-Konnektor/Treiber¶
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 vom Snowflake-ODBC-Treiber 2.15.0 und höher unterstützt.
Snowflake-Clients initiieren jede Verbindung zu einem Snowflake-Dienstendpunkt mit einem „Handshake“, der eine sichere Verbindung herstellt, bevor tatsächlich Daten übertragen werden. Im Rahmen des Handshakes authentifiziert ein Client das TLS-Zertifikat für den Dienstendpunkt. 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/snowflakeoder~/.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 Zulassungsliste 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_ENABLEDauffalse. 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.