ODBC 構成および接続パラメーター

Snowflake ODBC ドライバーは、構成パラメーターと接続パラメーターの両方を利用します。パラメーターを設定する方法は、ドライバーがインストールされている環境によって異なります。

注釈

ODBC クライアント接続文字列内に SEARCH_PATH パラメーターを設定することはできません。検索パスを設定する前にセッションを確立する必要があります。

Windowsでのパラメーターの設定

Windowsの場合:

  • 構成パラメーター は、 regedit と次のレジストリパスを使用してWindowsレジストリに設定されます。

    [HKEY_LOCAL_MACHINE\SOFTWARE\Snowflake\Driver]
    
    Copy
  • 接続パラメーター はデータソース名(DSNs)で設定されます。

    • DSNs は通常、Windows Data Source Administration ツールを使用して作成および編集されます。

    • 必要に応じて regedit を使用して、 DSNs のレジストリキーをWindowsレジストリで直接編集できます。キーへのレジストリパスは、64ビットと32ビットのWindowsを使用しているか、ユーザーまたはシステム DSN を編集しているかによって異なります。

      • 64ビットWindows:

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

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

      regedit を使用して接続パラメーターを追加するには、新しい String Value を追加し、作成した値をダブルクリックして、 ODBC パラメーターを Value name として、そしてパラメーター値を Value data として入力します。

macOS またはLinuxでのパラメーターの設定

macOS またはLinuxの場合:

構成パラメーター

CABundleFile

証明機関(CA)のバンドルファイルの場所を設定します。CA 証明書の有効なリストを含むファイルを参照する必要があります。

Linuxの場合、 RPM および DEB インストーラーは自動的にファイルをコピーし、このパラメーターを設定します。

Macの場合、 PKG インストーラーはファイルをコピーし、このパラメーターを設定します。

Windowsの場合、 MSI インストーラーはファイルをコピーし、このパラメーターを設定します。

手動インストールでは、 https://curl.haxx.se/docs/caextract.html からファイルをダウンロードし、ファイルの場所を設定する必要があります。

client_config_file

ログレベルとログファイルを保存するディレクトリを定義するために使用する ログ構成ファイル のパスを指定します。

CURLVerboseMode

cURL の詳細ログを有効にするには、 true に設定します。ログファイル snowflake_odbc_curl.dmp が作成および更新されます。Snowflake ODBC ドライバーは、 cURL を HTTP および TLS ライブラリとして使用します。このパラメーターは、ネットワークの問題の診断に役立ちます。

DisableOCSPCheck

true に設定して、オンライン証明書状態プロトコル(OCSP)による TLS 証明書の失効ステータスチェックを無効にします。通常の状況では、このフラグは設定しないでください。ただし、 OCSP の可用性の問題が解決しないときは、アプリケーションがこのパラメーターを一時的に設定して、接続の問題のブロックを解除し、 OCSP の可用性の問題が解決されたときに削除する場合があります。

:codenowrap:DisableTelemetry

インバンドテレメトリーハンドラーの切り替えを有効にするかどうかを指定します。このドライバー構成設定が:codenowrap:true に設定されている場合、テレメトリーハンドラーはドライバー内に作成されません。

DriverManagerOverride

デフォルトでは、ドライバーは、使用するドライバーマネージャーを自動検出します。ただし、特定の状況でそれが必要な場合は、 ODBC ドライバーバージョン3.9.0以降では、この自動検出を無効にして、使用するドライバーマネージャーを手動で指定できます。

可能な値は UnixODBC と iODBC です。

DriverManagerOverride が指定されていない場合、ドライバーは、ドライバー管理の自動検出を使用(バックトレース())して、ドライバーマネージャー情報を取得します。これがデフォルトの動作です。

パラメーターはLinuxおよび MacOS でのみ動作します。

EnableAutoIpdByDefault

ODBC ドライバーを構成するために false に設定して、 SQL_ATTR_ENABLE_AUTO_IPD を false (ODBC 標準のデフォルト値)に設定します。

それ以外の場合、デフォルトでは、ODBC ドライバーはサードパーティツールとの互換性のために SQL_ATTR_ENABLE_AUTO_IPD をtrueに設定します。

このパラメーターは、ODBC ドライバーのバージョン2.22.0で導入されました。

EnablePidLogFileNames

true に設定して、ログファイルの名前にプロセス ID を含めます。たとえば、プロセス ID が7394の場合、ログファイルには次の名前が付けられます。

  • snowflake_odbc_connection_7394_0.log

  • snowflake_odbc_generic7394_0.log

  • snowflake_odbc_curl_7394.dmp

このパラメーターを設定して、異なるプロセスが同じログファイルを上書きしないようにすることができます。各プロセスは、独自のログファイルのセットを生成します。

デフォルトでは、このパラメーターの値は false です。

このパラメーターは、 ODBC ドライバーのバージョン2.22.2で導入されました。

get_size_threshold

GET コマンドでファイルをダウンロードするときに、ファイルを小さな部分に分割する最小ファイルサイズをメガバイト(MB)単位で指定します。このしきい値より小さいサイズのファイルは、マルチパートダウンロードを使用しません。

デフォルトは 5 (MB)です。

注釈

対応する しきい値サイズ取得 接続パラメーターを設定すると、特定のケースでこの値を上書きできます。

KeepLeadingTrailingZeros

文字列値としてフォーマットされた数値の先頭または後続のゼロの処理方法を決定します。デフォルトでは、パラメーターは true に設定されます。これは、ドライバーが先頭または後続のゼロを保持することを意味します。パラメーターを false に設定して、先頭または後続のゼロを削除します。たとえば、

  • 0.23.23 に変更

  • 7.007 に変更

LogFileCount

新しいログファイル用のスペースを確保するため、古いファイルをローテーションする前に、保持するログファイルの最大数を設定します。

LogFileSize

ログファイルの最大サイズをバイト単位で指定します。ログファイルが指定されたサイズに達すると、 ODBC ドライバーは自動的に新しいログファイルを作成します。

デフォルトは 20971520 です。

LogLevel

ODBC ドライバーを使用するクライアントについて記録される詳細レベルを指定します。

  • 0 = オフ

  • 1 = 致命的

  • 2 = エラー

  • 3 = 警告

  • 4 = 情報

  • 5 = デバッグ

  • 6 = トレース

LogPath

ODBC ドライバーを使用するクライアントのSnowflakeログファイルの場所を指定します。

MapToLongVarchar

デフォルトの ODBC SQL_CHAR または SQL_VARCHAR データ型ではなく、 ODBC SQL_LONGVARCHAR データ型への文字列値のマッピングを開始する文字列の長さを指定します。

  • < 0 (または設定解除): 文字列値をデフォルトの ODBC データ型にマップします。デフォルト = -1

  • >= 0: デフォルトの ODBC 文字列データ型にマップする文字列文字の最大数を指定します。この値より大きいすべての文字列は、 SQL_LONGVARCHAR にマップされます。

このパラメーターを接続パラメーターとして指定することもできます。(WindowsmacOS およびLinuxnai 内にあるパラメーターの設定の手順をご参照ください。)接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。

このパラメーターは、 ODBC ドライバーのバージョン2.24.3で導入されました。

NoExecuteInSQLPrepare

true に設定して、 ODBC ドライバーを構成し、 DDL ステートメント(CREATE や DROP など)を SQLPrepare()SQLExecute() に渡すときに標準の ODBC 動作を使用します。

Snowflakeでは、デフォルトで、 DDL ステートメントを SQLPrepare() に渡すと、 ODBC ドライバーはデータソースにステートメントを送信して(準備ではなく)実行します。DDL ステートメントを SQLExecute() に渡すと、 ODBC ドライバーはステートメントをデータソースに送信しません。

NoExecuteInSQLPreparetrue に設定すると、 ODBC ドライバーは標準の ODBC 動作に従います。SQLPrepare() を呼び出すと、ステートメントがデータソースに送信され、準備されます(実行はしない)。SQLExecute() を呼び出すと、ステートメントがデータソースに送信されて実行されます。

このパラメーターは、ODBC ドライバーのバージョン2.21.6で導入されました。

NoProxy

プロキシサーバーをバイパスするホスト名パターンを指定します(例:Amazon S3アクセスをバイパスするには、 .amazonaws.com)。

注釈

Snowflake ODBC ドライバーは、 NoProxy 値をカールオプション CURLOPT_NOPROXY に渡します。

NoProxy 値の形式については、 CURLOPT_NOPROXY の説明の をご参照ください。

Proxy

ODBC ドライバーを使用するクライアント用に、プロキシサーバーを <ホスト>:<ポート> の形式で指定します。

注釈

Windowsでは、 ODBC ドライバーがインストールされると、 LogLevel および LogPath のエントリが作成され、デフォルト値が入力されます。ただし、インストール中に Proxy のエントリは作成されません。ドライバーで使用するプロキシを指定するには、ドライバーレジストリキーにエントリを手動で追加する必要があります。

1つ以上の IP アドレスまたは URLs のプロキシをバイパスするには、 NoProxy パラメーターを追加します。

:codenowrap:SSLVersion

TLS ハンドシェイクを開始するときに使用する最小の SSL/TLS バージョンを指定します。これらの値は、libcurlの機能に対応しています。詳細については、 <https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html>`_ で説明された CURLOPT_SSLVERSION の:codenowrap:`CURL_SSLVERSION_* エントリをご参照ください。

可能な値: TLSv1、 SSLv2、 SSLv3、 TLSv1_0、 TLSv1_1、 TLSv1_2、 TLSv1_3のいずれか(デフォルト: TLSv1_2)。

Snowflakeは、特に変更する必要がない場合は、この設定をデフォルトのままにすることをお勧めします。

:codenowrap:SSLVersionMax

TLS ハンドシェイクを開始するときに使用する最大の SSL/TLS バージョンを指定します。これらの値は、libcurlの機能に対応しています。詳細については、 <https://curl.se/libcurl/c/CURLOPT_SSLVERSION.html>`_ で説明された CURLOPT_SSLVERSION の:codenowrap:`CURL_SSLVERSION_MAX_* エントリをご参照ください。

可能な値:TLSv1_0、 TLSv1_1、 TLSv1_2、 TLSv1_3のいずれか(デフォルト: TLSv1_3)。

Snowflakeは、特に変更する必要がない場合は、この設定をデフォルトのままにすることをお勧めします。

接続パラメーター

重要

Snowflakeバージョン8.24から、ネットワーク管理者は、Snowflakeへのすべての接続に多要素認証 (MFA) を要求するオプションがあります。管理者がこの機能を有効にすることを決定した場合、Snowflakeへの接続時に MFA を使用するようにクライアントまたはドライバを設定する必要があります。詳細については、次をご参照ください:

必須の接続パラメーター

<名前> (データソース)

DSN の名前を指定します。

port (ポート)

ドライバーがSnowflake通信をリッスンするポートを指定します。

注釈

443 のデフォルトの Port 値を変更する必要はありません。

pwd (パスワード)

Snowflakeに接続するにはパスワードが必要です。ただし、セキュリティおよび認証上の理由により、 DSN 定義内にパスワード認証情報を直接保存することを強くお勧めします。

通常、認証情報は、Snowflakeへの接続を試行しているクライアントアプリケーションによってプログラムでドライバーに渡されます。

注釈

Windowsでは、 ODBC ドライバーは Data Source Administration ツールの Password フィールドを表示します。ただし、ドライバーはフィールドに入力された値を保存 しません 。代わりに、ドライバーは接続時にログイン認証情報を提供する必要があります。

server (サーバー)

アカウントの ホスト名 を次の形式で指定します。

account_identifier.snowflakecomputing.com

使用するアカウント識別子を決定するには、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 を参照してください。

uid (ユーザー)

認証するSnowflakeユーザーのログイン名を指定します。

オプションの接続パラメーター

BROWSER_RESPONSE_TIMEOUT

外部ブラウザーで認証応答を待つ秒数を指定します。

デフォルトは120です。

CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED=<Boolean>

アウトオブバンドテレメトリを有効にするかどうかを指定します。

デフォルトは true です

CLIENT_SESSION_KEEP_ALIVE=<Boolean>

非アクティブな状態が一定時間続いた後、現在のセッションをアクティブのままにするか、ユーザーに再度ログインさせるかを指定します。値が true の場合、Snowflakeは、ユーザーからのアクティビティがない場合でも、セッションを無期限にアクティブに保ちます。値が false の場合、ユーザーは4時間の非アクティブ後に再度ログインする必要があります。

デフォルトは false です。

database (データベース)

ドライバーによって開始されたセッションに使用するデフォルトのデータベースを指定します。

disableSamlUrlCheck

SAML URLs の検証を無効にするかどうかを指定します。デフォルトでは、ドライバーは SAML URLs を検証します。

デフォルトは false です。

maxHttpRetries (データベース)

HTTP リクエストに失敗したクエリに対して、エラーを返すまでの HTTP の最大再試行回数を指定します。maxHttpRetries=0 に設定すると再試行制限が解除されますが、その場合は、失敗した HTTP 呼び出しをドライバーが無限に再試行する危険があります。

デフォルト値は7です。

role (ロール)

ドライバーによって開始されたセッションに使用する既定のロールを指定します。指定されたロールは、ドライバーの指定されたユーザーに割り当てられたロールでなければなりません。指定されたロールがユーザーに割り当てられたロールのいずれとも一致しない場合、ドライバーによって開始されたセッションには最初はロールがありません。ただし、ロールはセッション内からいつでも指定できます。

schema (スキーマ)

ドライバーによって開始されたセッションに使用するデフォルトのスキーマを指定します。

デフォルトは public です。

SecondaryRoles (ロール)

ドライバーによって開始されたセッションに使用するセカンダリロールを指定します。ロールは、ドライバーの指定されたユーザーにすでに付与されている必要があります。セカンダリロールは、 USE SECONDARY ROLES コマンドを使用して、ユーザーセッション内からアクティブ化することもできます。

可能な値は次のとおりです。

  • すべて: ユーザーに付与されたすべてのロール。

  • なし: ロールの許可なし(セカンダリロールを無効化)。

tracing (トレース)

ドライバートレースファイルに記録される詳細レベル:

  • 0 = トレースの無効化

  • 1 = 致命的なエラーのみトレース

  • 2 = エラートレース

  • 3 = 警告トレース

  • 4 = 情報トレース

  • 5 = デバッグトレース

  • 6 =詳細トレース

warehouse (ウェアハウス)

ドライバーによって開始されたセッションに使用するデフォルトのウェアハウスを指定します。

追加の接続パラメーター

注釈

Windowsでは、これらの追加の接続パラメーターは、Windowsレジストリで(regedit を使用して)設定できます。

macOS またはLinuxでは、他の接続パラメーターと同様に、 odbc.ini ファイルで設定します。

allowEmptyProxy

以下のセクションで説明するように、 proxyno_proxy 接続パラメーターに空の値を許可するかどうかを指定します。

この値を設定すると、以下のような効果が得られます。

  • true: ドライバーは空のプロキシ値を有効なプロキシ設定として扱い、既存の設定や環境変数を上書きします。

  • false: ドライバーは空のプロキシ値を無視し、指定された構成パラメータまたは環境変数を使用します。

デフォルトは true です。

application

Snowflakeパートナーによる使用のみ : ODBC を介して接続するパートナーアプリケーションの名前を指定します。

このパラメーターは、 SQLSetConnectAttr() 関数を呼び出すことでも設定できます。詳細については、 Snowflake固有のSQLSetConnectAttr 関数の動作 をご参照ください。

authenticator

ユーザーのログイン認証情報の確認に使用する認証方式を指定します。

  • snowflake (デフォルト)は、内部Snowflake認証方式を使用します。

  • externalbrowser から 自分のウェブブラウザーを使用 して、Okta、AD FS、またはアカウントのために定義されている他の SAML 2.0準拠の識別プロバイダー(IdP)を認証します。

    注釈

    Snowflake ODBC ドライバーは、Microsoft Excelと MacOS を使用した externalbrowser 認証をサポートしていません。

  • https://<okta_account_name>.okta.com (つまり、ご使用のOktaの URL エンドポイント)から ネイティブOktaを介して認証 します(IdP がOktaの場合にのみサポート)。

  • OAuthを使用して認証する oauth。OAuth が認証コードとして指定されている場合は、 OAuth トークンを指定するために token パラメーターも設定する必要があります( 以下を参照)。

  • username_password_mfa は MFA トークンキャッシングで認証します。詳細については、 多要素認証の使用 (このトピック内)をご参照ください。

  • oauth_authorization_code Webブラウザーと選択したIDプロバイダー(IdP としてSnowflakeを含む)で、 OAuth 認証コードを使用して手動で認証します。詳細については、 OAuth 2.0 認証コードフローの使用 をご参照ください。

  • oauth_client_credentials 選択したIDプロバイダーで OAuth クライアント認証を使用して自動的に認証します(Snowflakeは IdP として、クライアント認証フローをサポートしていません)。詳細については、 OAuth 2.0 クライアント認証フローの使用 をご参照ください。

  • programmatic_access_token は、プログラムアクセストークン(PAT)で認証します。

  • ワークロードIDフェデレーション(WIF) 認証コードで認証するための:codenowrap:workload_identity

デフォルトは snowflake です。

Windowsでは、 ODBC データソース管理ツール を使用してこのパラメーターを設定できます。

認証の詳細については、 フェデレーション認証の管理/使用 および クライアント、ドライバー、およびコネクタ をご参照ください。

default_binary_size. default_varchar_size

サイズが不明な BINARY または VARCHAR 列から値を取得および変換するときに、ドライバーが使用するデフォルトサイズをバイト単位で指定します。これらの型の列から値を取得するときにこれを設定します。

デフォルトでは、ドライバーは、サイズが決定されていない列の値を取得するためにメモリを割り当てるときに、デフォルトのサイズとして 67108864 (BINARY 列の場合)および 134217728 (VARCHAR 列の場合)を使用します。

これらの値に割り当てられるメモリの量を減らすために、 default_binary_sizedefault_varchar_size をこれらの型の列にある値の最大サイズに設定できます。

注釈

これらの値を設定すると、実装行記述子(IRD)の SQL_DESC_LENGTH フィールドと、 SQLDescribeCol/SQLColAttribute/SQLColAttributes から返される対応する値のみが変更されます。長さが設定を超えても、ドライバーはデータ全体を返します。

一方、アプリケーションは、これらのパラメーターで指定された長さに基づいてデータバッファーを割り当てることができ、バッファー内のスペースが不足していると、データが切り捨てられる可能性があります。ベストプラクティスとして、Snowflakeは、メモリの使用量を大幅に削減し、データ切り捨ての可能性を最小化するため、元のデフォルト値の134217728/67108864バイトの代わりに、通常のデータの最大サイズ(例:4000または8000バイト)よりも大きめのデフォルトサイズに設定することをお勧めします。

これらの設定を使用して、SnowflakeデータベースでMicrosoft OLE DB プロバイダー(MSDASQL)を使用するときに発生する可能性がある、次のエラーを回避することもできます。

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

これらのパラメーターは、接続 構成パラメーター として指定できます(たとえば、 macOS およびLinuxsimba.snowflake.ini において)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。

これらのパラメーターは、 ODBC ドライバーのバージョン2.23.2で導入されました。

get_size_threshold

GET コマンドでファイルをダウンロードするときに、ファイルを小さな部分に分割する最小ファイルサイズをメガバイト(MB)単位で指定します。このしきい値より小さいサイズのファイルは、マルチパートダウンロードを使用しません。

デフォルトは 5 (MB)です。

注釈

この値を接続パラメーターとして設定すると、対応する しきい値サイズ取得 構成パラメーターの値が上書きされます。

login_timeout

ログイン失敗エラーを返す前に、Snowflakeサービスに接続する際の応答を待機する時間を秒単位で指定します。

デフォルトは 300 (秒)です。

network_timeout

Snowflakeサービスと対話するときにエラーを返すまでの応答を待機する時間を秒単位で指定します。ゼロ(0)は、ネットワークタイムアウトが設定されていないことを示します。

デフォルトは 0 (秒)です。

retryTimeout

失敗した HTTP リクエストのあるクエリから HTTP の再試行エラーを返すまでの待機時間を秒単位で指定します。ゼロ(0)は、再試行タイムアウトが設定されていないことを示します。

デフォルトは 300 (秒)です。

no_proxy

プロキシサーバーのバイパスを許可するホスト名の末尾を指定します(例: no_proxy=.amazonaws.com は、Amazon S3アクセスがプロキシを通過する必要がないことを意味)。

このパラメーターはワイルドカードをサポートしていません。指定する各値は、次のいずれかである必要があります。

  • ホスト名の末尾(または完全なホスト名)。例:

    • .amazonaws.com

    • myorganization-myaccount.snowflakecomputing.com

  • IP アドレス。例:

    • 192.196.1.15

複数の値を指定する場合、値はコンマで区切る必要があります。次に例を示します。

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

注釈

このパラメーターはプロセスに適用されます。別の接続が同じプロセスを共有する場合、プロキシ設定は同一である必要があります。そうでない場合、動作は予測できません。

odbc_use_standard_timestamp_columnsize

このブール値パラメーターは、 SQL_TYPE_TIMESTAMPに対して返される列サイズ(文字数)に影響します。このパラメーターをtrueに設定すると、ドライバーは ODBC 標準に従って29を返します。このパラメーターを false に設定すると、ドライバーは35を返します。これにより、タイムゾーンオフセット用のスペースが許可されます(例: 「-08:00」)。

この値は、odbc.iniファイル(LinuxまたはmacOS)またはMicrosoft Windowsレジストリだけでなく、接続文字列経由でも設定できます。

デフォルトは false です。

passcode

多要素認証に使用するパスコードを指定します。

多要素認証の詳細については、 多要素認証(MFA) をご参照ください。

passcodeInPassword

多要素認証のパスコードをパスワードに追加するかどうかを指定します。

  • on (または true)は、パスコードが追加されることを指定します。

  • off (または false)またはその他の値は、パスコードが追加されないことを指定します。

デフォルト値は off です。

proxy

ODBC からのすべての通信がプロキシサーバーを使用するように、プロキシサーバー URL を http://<ホスト名>:<ポート>/ または <ホスト名>:<ポート番号> の形式で指定します。

注釈

このパラメーターはプロセスに適用されます。別の接続が同じプロセスを共有する場合、プロキシ設定は同一である必要があります。そうでない場合、動作は予測できません。

put_compresslv

ODBC ドライバーが PUT コマンドによりデータを転送するときに使用する圧縮率を指定します。このパラメーターは、デフォルトのgzip圧縮レベルを上書きします。put_compresslv を指定しない場合、 ODBC ドライバーはデフォルトの圧縮レベルを使用します。

有効な値は、 -1 から 9 です。デフォルト値は -1 で、デフォルトの Z_DEFAULT_COMPRESSION を指定します。

0 から 9 は、カスタム圧縮率を指定します。0 により、 ODBC ドライバーはより低い圧縮率を使用し、 9 はより高い圧縮率を使用します。より高い圧縮率を使用すると、データ転送速度が遅くなります。

このパラメーターは、 構成パラメーター として指定することもできます(例: macOS およびLinuxsimba.snowflake.ini 内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。

このパラメーターは、 ODBC ドライバーのバージョン2.23.3で導入されました。

put_fastfail

PUT コマンドとワイルドカード文字を使用して一度に複数のファイルをアップロードし、エラーが発生したときにドライバーがファイルのアップロードを停止するようにする場合は、これを true に設定します。

デフォルト値は false です。これは、1つのファイルでエラーが発生した場合、ドライバーは残りのファイルのアップロードを続行することを意味します。

このパラメーターは、 ODBC ドライバーのバージョン2.22.3で導入されました。

ODBC ドライバーのバージョン2.22.5では、このパラメーターを 構成パラメーター として指定することもできます(たとえば、 macOS およびLinuxsimba.snowflake.ini 内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。

put_maxretries

コマンドが失敗した場合に、ドライバーが PUT コマンドを再試行する回数を指定します。

デフォルト値は 5 です。

このパラメーターの有効な値の範囲は 0 から 100 です。この範囲外の値を指定すると、ドライバーはデフォルト値の 5 を使用します。

このパラメーターは、 ODBC ドライバーのバージョン2.22.3で導入されました。

ODBC ドライバーのバージョン2.22.5では、このパラメーターを 構成パラメーター として指定することもできます(たとえば、 macOS およびLinuxsimba.snowflake.ini 内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。

put_tempdir

PUT コマンドリクエストに使用する一時ディレクトリを指定します。ドライバーは、この一時ディレクトリを使用して一時圧縮ファイルを作成してから、それらのファイルをSnowflakeにアップロードします。

このパラメーターが設定されていない場合、ドライバーは、一時ディレクトリ /tmp/snowflakeTmp_username を作成して使用します。ここで、 username は、オペレーティングシステムにおける現在のユーザーのユーザー名です。

このパラメーターは、 構成パラメーター として指定することもできます(例: macOS およびLinuxsimba.snowflake.ini 内)。これが接続パラメーター および 構成パラメーターの両方として設定されている場合は、 DSN (または接続文字列)の接続パラメーターが優先されます。

このパラメーターは、 ODBC ドライバーのバージョン2.23.1で導入されました。

token=<文字列>

OAuth または PAT 認証のトークンを指定します。<string> がトークンです。このパラメーターは、 authenticator=oauth または authenticator=programmatic_access_token のパラメーターが設定されている場合にのみ必要です。

デフォルトはありません。

query_timeout

エラーを返す前に、クエリが完了するまで待機する時間を秒単位で指定します。ゼロ(0)は無期限に待機することを示します。

デフォルトは 0 (秒)です。

validateSessionParam

次の セッション接続パラメーター のいずれかが無効な場合の応答方法を指定します。

enable_connection_diag

コネクタが接続診断レポートを生成するかどうかを指定します。

デフォルトは false です。

connection_diag_log_path

接続レポートが保存される絶対パスを指定します。

enable_connection_diagtrue の場合にのみ有効です。

例: connection_diag_log_path=C:\\reports

connection_diag_allowlist_path

SYSTEM$ALLOWLIST() または SYSTEM$ALLOWLIST_PRIVATELINK() の出力を含む JSON ファイルへの絶対パスを指定します。

enable_connection_diagtrue の場合にのみ有効です。

例: connection_diag_log_path=C:\\allowlist.json

OAUTH_CLIENT_ID

IDプロバイダーがSnowflake統合用に提供する client id の値(Snowflakeセキュリティ統合メタデータ)。

デフォルト:LOCAL_APPLICATION

OAUTH_CLIENT_SECRET

IDプロバイダーがSnowflake統合用に提供する client secret の値(Snowflakeセキュリティ統合メタデータ)。

デフォルト:LOCAL_APPLICATION

OAUTH_AUTHORIZATION_URL

認証コードをドライバーに提供する ID プロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

OAUTH_TOKEN_REQUEST_URL

ドライバーにアクセストークンを供給する ID プロバイダーのエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

OAUTH_SCOPE

ID プロバイダー承認リクエストで要求された範囲。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。

OAUTH_REDIRECT_URI

認証コードリダイレクトに使用する URI (Snowflakeセキュリティ統合メタデータ)。デフォルト: http://127.0.0.1:{randomAvailablePort}

:codenowrap:WORKLOAD_IDENTITY_PROVIDER

ワークロードIDプロバイダーのプラットフォーム。可能な値は次のとおりです。AWSAZUREGCP および:codenowrap:OIDC

PRIV_KEY_BASE64

Base64でエンコードされたプライベートキー。

:codenowrap:PRIV_KEY_PWD

Base64でエンコードされたプライベートキーのパスワード。

connections.toml ファイルを使用した接続

ODBC により、 connections.toml 構成ファイルに接続定義を追加できます。接続定義とは、接続に関連するパラメーターのコレクションのことです。ドライバは現在、 TOML バージョン1.0.0 をサポートしています。

toml ファイルフォーマットの詳細については、 TOML (Tom's Obvious Minimal Language) をご参照ください。

接続文字列の接頭辞: odbc:snowflake:auto は、定義済みの(デフォルトの)ファイルから接続設定を探すようドライバーに指示します。ODBC ドライバは、 connections.toml ファイルを以下の場所で順に探します。

  • マシンに ~/.snowflake ディレクトリが存在する場合、 ODBC は ~/.snowflake/connections.toml ファイルを使用します。

  • SNOWFLAKE_HOME 環境変数で指定された場所。

  • そうでない場合、 ODBC はオペレーティングシステムに応じて、次のいずれかの場所にある connections.toml ファイルを使用します。

    • Linux: ~/.config/snowflake/connections.toml、ただし、 XDG 変数で更新可

    • Windows: %USERPROFILE%\AppData\Local\snowflake\connections.toml

    • Mac: ~/Library/Application Support/snowflake/connections.toml

Snowsight で TOML 構成ファイルの基本設定を生成できます。詳細については、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 をご参照ください。

既存の複数の接続を切り替える場合は、 connections.toml ファイルで設定できます。デフォルトのキーは default ですが、 SNOWFLAKE_DEFAULT_CONNECTION_NAME シェル環境変数を設定することで、デフォルトの接続名を変更できます。

以下のサンプル・ファイル(connections.toml)では、2つの接続を定義しています。

[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'
Copy

接続文字列のパラメーター指定

接続パラメーター は、接続文字列の名前と値のペアとして指定できます。各パラメーターと値の間には等号 (=) を使用し、パラメーター間にはセミコロン (;) を使用します。例:

driver={SnowflakeDSIIDriver};server=myorganization-myaccount.snowflakecomputing.com;uid=myloginname;pwd=mypassword;database=mydatabase;schema=myschema;warehouse=mywarehouse;role=myrole;...
Copy

Snowsight で基本接続文字列を生成できます。詳細については、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 をご参照ください。

SnowCD を使用したSnowflakeへのネットワーク接続の確認

ドライバーを設定したら、 SnowCD を使用して、Snowflakeへのネットワーク接続を評価およびトラブルシューティングできます。

初期設定プロセス中にオンデマンドで SnowCD をいつでも使用して、Snowflakeへのネットワーク接続を評価およびトラブルシューティングできます。

プロキシサーバー経由での接続

プロキシサーバー接続を構成する手順は、オペレーティングシステムとドライバーのバージョンによって異なります。

オペレーティングシステム

ドライバーのバージョン

サポートされている手順

Linux

2.16.0(2018年5月3日リリース)またはそれ以上

2.13.18(2018年2月7日リリース)~2.15.0(2018年4月30日リリース)

環境変数の使用

2.13.17またはそれ以下

構成パラメーターの使用

macOS

2.16.0(2018年5月3日リリース)またはそれ以上

2.14.0(2018年3月28日リリース)~2.15.0(2018年4月30日リリース)

環境変数の使用

2.13.21またはそれ以下

構成パラメーターの使用

Windows

2.16.0(2018年5月3日リリース)またはそれ以上

2.15.0(2018年4月30日リリース)

環境変数の使用

2.14.0またはそれ以下

構成パラメーターの使用

注釈

上記の ODBC ドライバーの最新バージョンは、リストされている構成オプションのいずれかをサポートしています。オプションは優先順にリストされています。複数のオプションが定義されている場合、優先順位が最も高い設定が適用されます。

接続パラメーターの使用

プロキシサーバー経由で接続するには、次の接続パラメーターを DSN に追加します。

  • proxy

  • no_proxy

例:

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

パラメーターの説明については、 接続パラメーター をご参照ください。

構成パラメーターの使用

注釈

これらのパラメーターは、最新の ODBC ドライバーバージョンでは廃止されました(つまり、サポートなし)。プロキシサーバーを介した接続 で、サポートされているオプションのテーブルをご参照ください。ドライバーをアップグレードするときに、環境変数または接続パラメーターを使用してプロキシサーバー設定を構成します。

プロキシサーバー経由で接続するには、次の構成パラメーターを追加します。

  • Proxy

  • NoProxy

パラメーターの説明については、 構成パラメーター をご参照ください。

環境変数の使用

プロキシサーバー経由で接続するには、次の環境変数を構成します。

  • http_proxy

  • https_proxy

  • no_proxy

注釈

これらの環境変数は、Linuxおよび macOSで大文字と小文字が区別されるため、小文字で設定する必要があります。Windowsの場合、環境変数は大文字と小文字を区別しません。

例:

  • Linuxまたは macOS:

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

    プロキシサーバーでユーザー名とパスワードが必要な場合は、認証情報を含めます。たとえば、

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

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

    プロキシサーバーでユーザー名とパスワードが必要な場合は、認証情報を含めます。たとえば、

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

オプション: 特定の通信でプロキシをバイパスするには、 no_proxy をセットします(たとえば、Amazon S3 アクセスをバイパスするには、 no_proxy=.amazonaws.com を使用します)。

認証でのシングルサインオン(SSO)の使用

シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合、認証に SSO を使用するようにクライアントアプリケーションを構成できます。詳細については Snowflakeに接続するクライアントアプリケーションでの SSO の使用 をご参照ください。

多要素認証の使用

Snowflakeは、 MFA トークンキャッシングと SSO の組み合わせを含む、 MFA トークンのキャッシングをサポートしています。

詳細については、 MFA トークンキャッシングを使用して認証中のプロンプトの数を最小限に抑える --- オプション をご参照ください。

キーペア認証の使用

ODBC ドライバーは、キーペア認証とキーローテーションをサポートします。

  1. 開始するには、 キーペア認証とキーペアローテーション に示すように、キーペア認証の初期構成を完了します。

  2. ドライバーのデータソース名(DSN)エントリを変更します。DSN エントリの詳細については、ご使用のオペレーティングシステムに該当するトピックをご参照ください。

    次の(大文字と小文字を区別する)パラメーターを追加します。

    AUTHENTICATOR = SNOWFLAKE_JWT

    JSON Webトークン(JWT)でのキーペア認証を使用してSnowflake接続を認証するように指定します。

    JWT_TIME_OUT = integer

    オプション。Snowflakeがタイムアウトになるまで JWT の受信を待機する時間の長さ(秒単位)を指定します。その場合、認証は失敗し、ドライバーは Invalid JWT token エラーを返します。エラーの繰り返し発生を解決するには、パラメーター値を増やします。デフォルト: 30

    PRIV_KEY_FILE = path/rsa_key.p8

    作成した秘密キーファイル(つまり、 rsa_key.p8)へのローカルパスを指定します。

    DSN に設定された値は、 SQLSetConnectAttr() 関数を呼び出すことで上書きできます。詳細については、 Snowflake固有のSQLSetConnectAttr関数の動作 をご参照ください。

    PRIV_KEY_FILE_PWD = <password>

    秘密キーファイルをデコードするパスコードを指定します。

    このパラメーターは、パラメーター PRIV_KEY_FILE も設定されている場合にのみ設定する必要があります。

    DSN に設定された値は、 SQLSetConnectAttr() 関数を呼び出すことで上書きできます。詳細については、 Snowflake固有のSQLSetConnectAttr関数の動作 をご参照ください。

  3. 設定を保存します。

OAuth 2.0 認証コードフローの使用

OAuth 2.0認証コードフローは、ユーザーの認証情報を公開することなく、クライアントアプリケーションがユーザーに代わって認証サーバーからアクセストークンを取得するための安全な方法です。

OAuth 2.0 認証コードフローを有効にするには:

  1. authenticator 接続パラメーターを oauth_authorization_code に設定します。

  2. 以下の OAuth 接続パラメーターをセットします。

    • OAUTH_CLIENT_ID: IDプロバイダーがSnowflake統合用に提供する client id の値(Snowflakeセキュリティ統合メタデータ)。

    • OAUTH_CLIENT_SECRET: IDプロバイダーがSnowflake統合用に提供する client secret の値(Snowflake セキュリティ統合メタデータ)。

    • OAUTH_AUTHORIZATION_URL: 認証コードをドライバーに供給するIDプロバイダーのエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

    • OAUTH_TOKEN_REQUEST_URL: ドライバーにアクセストークンを供給するIDプロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

    • OAUTH_SCOPE: IDプロバイダーの認可リクエストで要求されたスコープ。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。

    • OAUTH_REDIRECT_URI: URI 認証コードリダイレクトに使用します(Snowflakeセキュリティ統合メタデータ)。デフォルト: http://127.0.0.1:{randomAvailablePort}

OAuth 2.0 クライアント認証フローの使用

OAuth 2.0クライアント認証情報フローは、Python用Snowflake Connectorがバックエンドサービスに接続するような、マシン間(M2M)認証のためのセキュアな方法を提供します。OAuth 2.0認証コードフローとは異なり、このメソッドはユーザー固有のデータに依存しません。

OAuth 2.0 クライアント認証フローを有効にするには:

  1. codenowrap:authenticator 接続パラメーターを oauth_client_credentials に設定します。

  2. 以下の OAuth 接続パラメーターをセットします。

    • OAUTH_CLIENT_ID: IDプロバイダーがSnowflake統合用に提供する client id の値(Snowflakeセキュリティ統合メタデータ)。

    • OAUTH_CLIENT_SECRET: IDプロバイダーがSnowflake統合用に提供する client secret の値(Snowflakeセキュリティ統合メタデータ)

    • OAUTH_TOKEN_REQUEST_URL: ドライバーにアクセストークンを供給するIDプロバイダーエンドポイント。SnowflakeをIDプロバイダーとして使用する場合、この値は server または account パラメーターから取得されます。

    • OAUTH_SCOPE: IDプロバイダーの認可リクエストで要求されたスコープ。デフォルトでは、ロールから派生します。複数のスコープが必要な場合、値はスペースで区切られた複数のスコープのリストでなければなりません。

プログラムアクセストークンによる認証コード (PAT)

プログラムアクセストークン(PAT)は、Snowflake固有の認証方法です。この機能は使用前にアカウントで有効にする必要があります(詳細は 前提条件 を参照してください)。PAT での認証コードには、人とのやりとりは一切ありません。

ワークロードIDフェデレーション(WIF)による認証

ワークロードIDフェデレーション は、Snowflakeのサービス間の認証方法を提供します。この方法により、アプリケーション、サービス、コンテナは、 AWSIAM、Microsoft Entra ID またはGoogle CloudサービスアカウントのようなクラウドプロバイダーのネイティブIDシステムを活用して、Snowflakeで認証することができます。このアプローチでは、長期間有効な認証情報を管理する必要がなくなり、外部 OAuth のような他の方法と比較して、認証情報の取得が簡素化されます。Snowflakeコネクタは、プラットフォームのIDプロバイダーから有効期間が短い認証情報を自動的に取得するように設計されています。

ワークロードIDフェデレーション認証コードを有効にするには、以下を実行します。

  1. authenticator 接続パラメーターを WORKLOAD_IDENTITY に設定します。

  2. プラットフォームに応じて、workload_identity_provider 接続パラメーターを:codenowrap:AWSAZURE、 :codenowrap:`GCP`または:codenowrap:`OIDC`に設定します。

  3. OpenID 接続(OIDC)の場合、token 接続パラメーターを指定します。

ログファイルの管理

発生する可能性のある問題を追跡するために、 ODBC ドライバーへのログインを有効にすることができます。ODBC ドライバーは、ログの設定とログファイルの管理に使用できる次の構成オプションを提供します。

  • EnablePidLogFileNames: プロセス ID をログファイルの名前に追加します。

  • LogFileCount: 保存するログファイルの最大数を設定します。

  • LogFileSize: ログファイルの最大サイズを指定します。

  • LogLevel: ログに記録する情報のタイプを指定します。

  • LogPath: ログファイルの場所を設定します。

これらのパラメーターを使用して、ログファイルの名前付け、格納、およびローテーションの方法を管理できます。新しく作成されたログファイルに置き換える前に、保持するログファイルのサイズと数を指定できます。次の例では、プロセス ID をファイル名に追加して一意性を確保し、最大ファイルサイズを 30MB に設定し、100個の最新のログファイルを保持します。

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

ログ構成ファイル

あるいは、 sf_client_config.json 構成ファイルでログレベルとログファイルを保存するディレクトリを簡単に指定することもできます。

注釈

このログ構成ファイル機能は、以下のログレベルのみをサポートします。

  • DEBUG

  • ERROR

  • INFO

  • OFF

  • TRACE

  • WARNING

  • FATAL

この構成ファイルは、 JSON を使用して、 log_levellog_path のログパラメーターを以下のように定義します。

{
  "common": {
    "log_level": "DEBUG",
    "log_path": "/home/user/logs"
  }
}
Copy

ドライバーは、以下の順序で構成ファイルの場所を検索します。

  • client_config_file には構成ファイルへの完全なパスが含まれます。

  • SF_CLIENT_CONFIG_FILE 環境変数。構成ファイルへの完全なパスが含まれます。

  • ODBC ドライバーのインストールディレクトリ。ファイル名は sf_client_config.json にする必要があります。

  • ユーザーのホームディレクトリ。ファイル名は sf_client_config.json にする必要があります。

注釈

  • sf_client_config.json ファイルで定義された値よりも、 LogLevelLogPath の値が優先されます。

  • client_config_file 接続パラメーターまたは SF_CLIENT_CONFIG_FILE 環境変数で指定された構成ファイルが見つからないか、読み取れない場合、ドライバーはエラーメッセージをスローします。

OCSP コネクタまたはドライバーバージョンの確認

Snowflakeは、Snowflakeへの接続の際、 OCSP を使用して証明書チェーンを評価します。ドライバーまたはコネクタのバージョンとその構成により、 OCSP の動作が決まります。ドライバーまたはコネクタのバージョン、それらの構成、および OCSP の動作の詳細については、 OCSP 設定 をご参照ください。

OCSP 応答キャッシュサーバー

注釈

OCSP 応答キャッシュサーバーは現在、Snowflake ODBC ドライバー2.15.0以上でサポートされています。

Snowflakeクライアントは、実際にデータを転送する前に安全な接続を確立する「ハンドシェイク」を使用して、Snowflakeサービスエンドポイントへのすべての接続を開始します。ハンドシェイクの一部として、クライアントはサービスエンドポイントの TLS 証明書を認証します。証明書の失効ステータスは、 CA (認証機関)の OCSP (オンライン証明書ステータスプロトコル)サーバーの1つにクライアント証明書リクエストを送信することにより確認されます。

OCSP サーバーからの応答が妥当な時間を超えて遅延すると、接続エラーが発生します。次のキャッシュは失効ステータスを保持し、これらの問題の軽減に役立ちます。

  • プロセスの存続期間中保持されるメモリキャッシュ。

  • ファイルキャッシュ。キャッシュディレクトリ(例: ~/.cache/snowflake または ~/.snowsql/ocsp_response_cache)が削除されるまで保持します。

  • Snowflake OCSP 応答キャッシュサーバー。CA の OCSP サーバーから OCSP 応答を1時間ごとに取得し、24時間保存します。クライアントは、このサーバーキャッシュから特定のSnowflake証明書の検証ステータスをリクエストできます。

    重要

    サーバーポリシーでほとんどまたはすべての外部 IP アドレスおよびウェブサイトへのアクセスが拒否された場合、通常のサービス操作を許可するには、キャッシュサーバーアドレスを許可リストに登録することが 必須 です。キャッシュサーバーのホスト名は ocsp*.snowflakecomputing.com:80 です。

    何らかの理由でキャッシュサーバーを無効化する必要がある場合は、 SF_OCSP_RESPONSE_CACHE_SERVER_ENABLED 環境変数を false に設定します。値は大文字と小文字が区別され、小文字にする 必要がある ことに注意してください。

キャッシュレイヤーに OCSP 応答が含まれていない場合、クライアントは CAの OCSP サーバーから検証ステータスを直接取得しようとします。