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

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

このトピックの内容:

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の場合:

  • 構成パラメーターは、構成ファイル(simba.snowflake.ini)で設定されます。

  • 接続パラメーターはデータソース名(DSN)ファイル(odbc.ini)で設定されます。

構成パラメーター

CABundleFile

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

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

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

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

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

CURLVerboseMode

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

DisableOCSPCheck

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

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 値の形式は こちら にあります。

Proxy

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

注釈

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

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

接続パラメーター

必須の接続パラメーター

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

DSN の名前を指定します。

port (ポート)

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

注釈

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

pwd (パスワード)

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

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

注釈

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

server (サーバー)

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

account_identifier.snowflakecomputing.com

アカウント識別子については、 アカウント識別子 をご参照ください。

uid (ユーザー)

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

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

BROWSER_RESPONSE_TIMEOUT

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

デフォルトは120です。

CLIENT_OUT_OF_BAND_TELEMETRY_ENABLED=<ブール値>

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

デフォルトは true です

CLIENT_SESSION_KEEP_ALIVE=<ブール値>

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

デフォルトは false です。

database (データベース)

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

maxHttpRetries (データベース)

HTTP リクエストに失敗したクエリに対して、エラーを返すまでの 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のアカウント名>.okta.com (つまり、ご使用のOktaのURLエンドポイント)から ネイティブOktaを介して認証 します(IdPがOktaの場合にのみサポート)。

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

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

デフォルトは snowflake です。

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

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

default_binary_size. default_varchar_size

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

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

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

注釈

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

一方、アプリケーションは、これらのパラメーターで指定された長さに基づいてデータバッファーを割り当てることができ、バッファー内のスペースが不足していると、データが切り捨てられる可能性があります。ベストプラクティスとして、Snowflakeは、メモリの使用量を大幅に削減し、データ切り捨ての可能性を最小化するため、元のデフォルト値の16777216/8388608バイトの代わりに、通常のデータの最大サイズ(例: 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サービスに接続する際の応答を待機する時間を秒単位で指定します。

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

network_timeout

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

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

no_proxy

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

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

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

    • .amazonaws.com

    • myorganization-myaccount.snowflakecomputing.com

  • IP アドレス。例:

    • 192.196.1.15

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

no_proxy=localhost,.my_company.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で導入されました。

query_timeout

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

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

token=<文字列>

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

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

validateSessionParam

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

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

  • false (デフォルト): 正常に接続しますが、 database および schema のパラメーター値を空の文字列に設定し、 warehouse パラメーターをデフォルト値に設定します。ウェアハウスの詳細については、 セッションでのウェアハウスの使用 をご参照ください。

  • true: 接続を拒否し、エラーをスローします。

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.company.com:80
    export https_proxy=http://proxyserver.company.com:80
    
    Copy

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

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

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

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

    set https_proxy=http://username:password@proxyserver.company.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. 設定を保存します。

ログファイルの管理

発生する可能性のある問題を追跡するために、 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

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 サーバーから検証ステータスを直接取得しようとします。