ODBC 構成および接続パラメーター¶
Snowflake ODBC ドライバーは、構成パラメーターと接続パラメーターの両方を利用します。パラメーターを設定する方法は、ドライバーがインストールされている環境によって異なります。
このトピックの内容:
Windowsでのパラメーターの設定¶
Windowsの場合:
構成パラメーターは、 regedit と次のレジストリパスを使用してWindowsレジストリに設定されます。
[HKEY_LOCAL_MACHINE\SOFTWARE\Snowflake\Driver]
接続パラメーターはデータソース名(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>]
32ビットWindows:
[HKEY_CURRENT_USER\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>] [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432NODE\ODBC\ODBC.INI\<DSN_NAME>]
regedit を使用して接続パラメーターを追加するには、新しい String Value を追加し、作成した値をダブルクリックして、 ODBC パラメーターを Value name として、そしてパラメーター値を Value data として入力します。
macOS またはLinuxでのパラメーターの設定¶
macOS またはLinuxの場合:
構成パラメーターは、構成ファイル(
simba.snowflake.ini
)で設定されます。接続パラメーターはデータソース名(DSN)ファイル(
odbc.ini
)で設定されます。
構成パラメーター¶
LogLevel
ODBC ドライバーを使用するクライアントについて記録される詳細レベルを指定します。
0 = Off 1 = Fatal 2 = Error 3 = Warning 4 = Info 5 = Debug 6 = Trace
LogPath
ODBC ドライバーを使用するクライアントのSnowflakeログファイルの場所を指定します。
CURLVerboseMode
cURL の詳細ログを有効にするには、
true
に設定します。ログファイルsnowflake_odbc_curl.dmp
が作成および更新されます。Snowflake ODBC ドライバーは、 cURL を HTTP および SSL ライブラリとして使用します。このパラメーターは、ネットワークの問題の診断に役立ちます。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で導入されました。
Proxy
ODBC ドライバーを使用するクライアント用に、プロキシサーバーを
<ホスト>:<ポート>
の形式で指定します。注釈
Windowsでは、 ODBC ドライバーがインストールされると、
LogLevel
およびLogPath
のエントリが作成され、デフォルト値が入力されます。ただし、インストール中にProxy
のエントリは作成されません。ドライバーで使用するプロキシを指定するには、ドライバーレジストリキーにエントリを手動で追加する必要があります。1つ以上の IP アドレスまたは URLs のプロキシをバイパスするには、 NoProxy パラメーターを追加します。
NoProxy
プロキシサーバーをバイパスするホスト名パターンを指定します(例:Amazon S3アクセスをバイパスするには、
.amazonaws.com
)。注釈
Snowflake ODBC ドライバーは、
NoProxy
値をカールプションCURLOPT_NOPROXY
に渡します。NoProxy
値の形式は こちら にあります。CABundleFile
証明機関(CA)のバンドルファイルの場所を設定します。CA 証明書の有効なリストを含むファイルを参照する必要があります。
Linuxの場合、 RPM および DEB インストーラーは自動的にファイルをコピーし、このパラメーターを設定します。
Macの場合、 PKG インストーラーはファイルをコピーし、このパラメーターを設定します。
Windowsの場合、 MSI インストーラーはファイルをコピーし、このパラメーターを設定します。
手動インストールでは、 https://curl.haxx.se/docs/caextract.html からファイルをダウンロードし、ファイルの場所を設定する必要があります。
DisableOCSPCheck
true
に設定して、オンライン証明書状態プロトコル(OCSP)による TLS/SSL 証明書失効ステータスチェックを無効にします。通常の状況では、このフラグは設定しないでください。ただし、 OCSP の可用性の問題が解決しないときは、アプリケーションがこのパラメーターを一時的に設定して、接続の問題のブロックを解除し、 OCSP の可用性の問題が解決されたときに削除する場合があります。KeepLeadingTrailingZeros
文字列値としてフォーマットされた数値の先頭または後続のゼロの処理方法を決定します。デフォルトでは、パラメーターは
true
に設定されます。これは、ドライバーが先頭または後続のゼロを保持することを意味します。パラメーターをfalse
に設定して、先頭または後続のゼロを削除します。たとえば、0.23
は.23
に変更7.00
は7
に変更
NoExecuteInSQLPrepare
true
に設定して、 ODBC ドライバーを構成し、 DDL ステートメント(CREATE や DROP など)をSQLPrepare()
とSQLExecute()
に渡すときに標準の ODBC 動作を使用します。Snowflakeでは、デフォルトで、 DDL ステートメントを
SQLPrepare()
に渡すと、 ODBC ドライバーはデータソースにステートメントを送信して(準備ではなく)実行します。DDL ステートメントをSQLExecute()
に渡すと、 ODBC ドライバーはステートメントをデータソースに送信しません。NoExecuteInSQLPrepare
をtrue
に設定すると、 ODBC ドライバーは標準の ODBC 動作に従います。SQLPrepare()
を呼び出すと、ステートメントがデータソースに送信され、準備されます(実行はしない)。SQLExecute()
を呼び出すと、ステートメントがデータソースに送信されて実行されます。このパラメーターは、ODBC ドライバーのバージョン2.21.6で導入されました。
EnableAutoIpdByDefault
false
に設定して、ODBC ドライバーの SQL_ATTR_ENABLE_AUTO_IPD をfalse(ODBC 標準のデフォルト値)に設定します。それ以外の場合、デフォルトでは、ODBC ドライバーはサードパーティツールとの互換性のために SQL_ATTR_ENABLE_AUTO_IPD をtrueに設定します。
このパラメーターは、ODBC ドライバーのバージョン2.22.0で導入されました。
接続パラメーター¶
必要な接続パラメーター¶
<名前>
(データソース)DSNの名前を指定します。
uid
(ユーザー)認証するSnowflakeユーザーのログイン名を指定します。
pwd
(パスワード)Snowflakeに接続するにはパスワードが必要です。ただし、セキュリティおよび認証上の理由により、 DSN 定義内にパスワード認証情報を直接保存することを強くお勧めします。
通常、認証情報は、Snowflakeへの接続を試行しているクライアントアプリケーションによってプログラムでドライバーに渡されます。
注釈
Windowsでは、 ODBC ドライバーは Data Source Administration ツールの Password フィールドを表示します。ただし、ドライバーはフィールドに入力された値を保存 しません 。代わりに、ドライバーは接続時にログイン認証情報を提供する必要があります。
server
(サーバー)アカウントの ホスト名 を次の形式で指定します。
アカウント名.snowflakecomputing.com
ただし、完全なアカウント名には、アカウントがホストされている 地域 および クラウドプラットフォーム を識別する 追加 のセグメントが含まれている場合があります。
地域別のアカウント名の例
アカウント名が
xy12345
の場合、クラウドプラットフォーム/地域
完全なアカウント名
AWS
US 西部(オレゴン)xy12345
US 東部(オハイオ)xy12345.us-east-2.aws
US 東部(バージニア北部)xy12345.us-east-1
US 東部(商業組織、バージニア政府北部)xy12345.us-east-1-gov.aws
カナダ(中部)xy12345.ca-central-1.aws
ヨーロッパ(ロンドン)xy12345.eu-west-2.aws
EU (アイルランド)xy12345.eu-west-1
EU (フランクフルト)xy12345.eu-central-1
アジア太平洋(東京)xy12345.ap-northeast-1.aws
アジア太平洋(ムンバイ)xy12345.ap-south-1.aws
アジア太平洋(シンガポール)xy12345.ap-southeast-1
アジア太平洋(シドニー)xy12345.ap-southeast-2
GCP
US 中央部1(アイオワ)xy12345.us-central1.gcp
ヨーロッパ西部2(ロンドン)xy12345.europe-west2.gcp
ヨーロッパ西部4(オランダ)xy12345.europe-west4.gcp
Azure
西 US 2(ワシントン)xy12345.west-us-2.azure
東 US 2(バージニア)xy12345.east-us-2.azure
US 政府バージニアxy12345.us-gov-virginia.azure
カナダ中央部(トロント)xy12345.canada-central.azure
西ヨーロッパ(オランダ)xy12345.west-europe.azure
スイス北部(チューリッヒ)xy12345.switzerland-north.azure
東南アジア(シンガポール)xy12345.southeast-asia.azure
オーストラリア東部(ニューサウスウェールズ)xy12345.australia-east.azure
重要
次のいずれかの条件に該当する場合、完全なアカウント名は、上記の例の構造とは異なります。
Snowflake Editionが VPS の場合、アカウント名の詳細については Snowflakeサポート にお問い合わせください。
アカウントで AWS PrivateLink またはAzure Private Linkが有効になっている場合、アカウント名には、地域セグメントの代わりに
privatelink
セグメントが 必要 です。詳細については、以下をご参照ください。
port
(ポート)ドライバーがSnowflake通信をリッスンするポートを指定します。
注釈
443
のデフォルトのPort
値を変更する必要はありません。
オプションの接続パラメーター¶
database
(データベース)ドライバーによって開始されたセッションに使用するデフォルトのデータベースを指定します。
schema
(スキーマ)ドライバーによって開始されたセッションに使用するデフォルトのスキーマを指定します。
デフォルトは
public
です。warehouse
(ウェアハウス)ドライバーによって開始されたセッションに使用するデフォルトのウェアハウスを指定します。
role
(ロール)ドライバーによって開始されたセッションに使用する既定のロールを指定します。指定されたロールは、ドライバーの指定されたユーザーに割り当てられたロールでなければなりません。指定されたロールがユーザーに割り当てられたロールのいずれとも一致しない場合、ドライバーによって開始されたセッションには最初はロールがありません。ただし、ロールはセッション内からいつでも指定できます。
tracing
(トレース)ドライバートレースファイルに記録される詳細レベル:
0 =トレースの無効化
1 =致命的なエラーのみトレース
2 =エラートレース
3 =警告トレース
4 =情報トレース
5 =デバッグトレース
6 =詳細トレース
追加の接続パラメーター¶
注釈
Windowsでは、これらの追加の接続パラメーターは、 regedit を使用してWindowsレジストリで設定できます。
macOS またはLinuxでは、他の接続パラメーターと同様に、 odbc.ini
ファイルで設定されます。
application
Snowflakeパートナーによる使用のみ : ODBC を介して接続するパートナーアプリケーションの名前を指定します。
このパラメーターは、
SQLSetConnectAttr()
関数を呼び出すことでも設定できます。詳細については、 Snowflake固有のSQLSetConnectAttr 関数の動作 をご参照ください。authenticator
ユーザーのログイン認証情報の確認に使用する認証方式を指定します。
snowflake
(デフォルト)は、内部Snowflake認証方式を使用します。externalbrowser
から 自分のウェブブラウザーを使用 して、Okta、ADFS、またはアカウントに定義されている他のSAML 2.0準拠の識別プロバイダー(IdP)を認証します。https://<Oktaのアカウント名>.okta.com
(つまり、ご使用のOktaのURLエンドポイント)から ネイティブOktaを介して認証 します(IdPがOktaの場合にのみサポート)。OAuthを使用して認証する
oauth
。OAuth が認証コードとして指定されている場合は、 OAuth トークンを指定するためにtoken
パラメーターも設定する必要があります( 以下を参照)。
デフォルトは
snowflake
です。認証の詳細については、 フェデレーション認証の管理/使用 および OAuth のクライアント、ドライバー、およびコネクター をご参照ください。
token=<文字列>
認証に使用する OAuth トークンを指定します。
<文字列>
はトークンです。このパラメーターは、authenticator=oauth
パラメーターが設定されている場合にのみ必要です。デフォルトはありません。
passcode
多要素認証に使用するパスコードを指定します。
多要素認証の詳細については、 多要素認証(MFA) をご参照ください。
passcodeInPassword
多要素認証のパスコードをパスワードに追加するかどうかを指定します。
on
(またはtrue
)は、パスコードが追加されることを指定します。off
(またはfalse
)またはその他の値は、パスコードが追加されないことを指定します。
デフォルト値は
off
です。login_timeout
ログイン失敗エラーを返す前に、Snowflakeサービスに接続する際の応答を待機する時間を指定します。
デフォルトは60秒です。
network_timeout
Snowflakeサービスと対話するときにエラーを返すまでの応答を待機する時間を指定します。ゼロ(0)は、ネットワークタイムアウトが設定されていないことを示します。
デフォルトは0秒です。
query_timeout
エラーを返す前に、クエリが完了するまで待機する時間を指定します。ゼロ(0)は無期限に待機することを示します。
デフォルトは0秒です。
odbc_use_standard_timestamp_columnsize
このブール値パラメーターは、 SQL_TYPE_TIMESTAMPに対して返される列サイズ(文字数)に影響します。このパラメーターをtrueに設定すると、ドライバーは ODBC 標準に従って29を返します。このパラメーターをfalseに設定すると、ドライバーは35を返します。これにより、タイムゾーンオフセット用のスペースが許可されます(例: 「-08:00」)。
この値は、odbc.iniファイル(LinuxまたはmacOS)またはMicrosoft Windowsレジストリだけでなく、接続文字列経由でも設定できます。
デフォルトはfalseです。
proxy
ODBC からのすべての通信がプロキシサーバーを使用するように、プロキシサーバー URL を
http://<ホスト名>:<ポート>/
または<ホスト名>:<ポート番号>
の形式で指定します。注釈
このパラメーターはプロセスに適用されます。別の接続が同じプロセスを共有する場合、プロキシ設定は同一である必要があります。そうでない場合、動作は予測できません。
no_proxy
プロキシサーバーのバイパスを許可するホスト名の末尾を指定します(例:
no_proxy=.amazonaws.com
は、Amazon S3アクセスがプロキシを通過する必要がないことを意味)。このパラメーターはワイルドカードをサポートしていません。指定する各値は、次のいずれかである必要があります。
ホスト名の末尾(または完全なホスト名)。例:
.amazonaws.com
xy12345.snowflakecomputing.com
IP アドレス。例:
192.196.1.15
複数の値を指定する場合、値はコンマで区切る必要があります。次に例を示します。
no_proxy=localhost,.my_company.com,xy12345.snowflakecomputing.com,192.168.1.15,192.168.1.16
注釈
このパラメーターはプロセスに適用されます。別の接続が同じプロセスを共有する場合、プロキシ設定は同一である必要があります。そうでない場合、動作は予測できません。
put_fastfail
PUT コマンドとワイルドカード文字を使用して一度に複数のファイルをアップロードし、エラーが発生したときにドライバーがファイルのアップロードを停止するようにする場合は、これを
true
に設定します。デフォルト値は
false
です。これは、1つのファイルでエラーが発生した場合、ドライバーは残りのファイルのアップロードを続行することを意味します。このパラメーターは、 ODBC ドライバーのバージョン2.22.3で導入されました。
put_maxretries
コマンドが失敗した場合に、ドライバーが PUT コマンドを再試行する回数を指定します。
デフォルト値は
5
です。このパラメーターの有効な値の範囲は
0
から100
です。この範囲外の値を指定すると、ドライバーはデフォルト値の5
を使用します。このパラメーターは、 ODBC ドライバーのバージョン2.22.3で導入されました。
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 = account.snowflakecomputing.com proxy = http://proxyserver.company:80 no_proxy = .amazonaws.com
パラメーターの説明については、 接続パラメーター をご参照ください。
構成パラメーターの使用¶
注釈
これらのパラメーターは、最新の 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
プロキシサーバーでユーザー名とパスワードが必要な場合は、認証情報を含めます。たとえば、
export https_proxy=http://username:password@proxyserver.company.com:80
Windows:
set http_proxy=http://proxyserver.company.com:80 set https_proxy=http://proxyserver.company.com:80
プロキシサーバーでユーザー名とパスワードが必要な場合は、認証情報を含めます。たとえば、
set https_proxy=http://username:password@proxyserver.company.com:80
オプションで、特定の通信のプロキシをバイパスするように no_proxy
を設定できます(例:Amazon S3アクセスをバイパスするには、 no_proxy=.amazonaws.com
)。
認証でのシングルサインオン(SSO)の使用¶
シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合、認証に SSO を使用するようにクライアントアプリケーションを構成できます。詳細については Snowflakeに接続するクライアントアプリケーションでの SSO の使用 をご参照ください。
キーペア認証の使用¶
ODBC ドライバーは、キーペア認証とキーローテーションをサポートします。
開始するには、 キーペア認証およびキーペアローテーション に示すように、キーペア認証の初期構成を完了します。
ドライバーのデータソース名(DSN)エントリを変更します。 DSN エントリの詳細については、オペレーティングシステムに該当するトピックをご参照ください。
次の(大文字と小文字を区別する)パラメーターを追加します。
AUTHENTICATOR = SNOWFLAKE_JWT
JSON Webトークン(JWT)でのキーペア認証を使用してSnowflake接続を認証するように指定します。
JWT_TIME_OUT = 整数
オプション。Snowflakeがタイムアウトになるまで JWT の受信を待機する時間の長さ(秒単位)を指定します。その場合、認証は失敗し、ドライバーは
Invalid JWT token
エラーを返します。エラーの繰り返し発生を解決するには、パラメーター値を増やします。デフォルト:30
PRIV_KEY_FILE = パス/rsa_key.p8
作成した秘密キーファイル(つまり、
rsa_key.p8
)へのローカルパスを指定します。DSN に設定された値は、
SQLSetConnectAttr()
関数を呼び出すことで上書きできます。詳細については、 Snowflake固有のSQLSetConnectAttr関数の動作 をご参照ください。PRIV_KEY_FILE_PWD = <password>
秘密キーファイルをデコードするパスコードを指定します。
このパラメーターは、パラメーター PRIV_KEY_FILE も設定されている場合にのみ設定する必要があります。
DSN に設定された値は、
SQLSetConnectAttr()
関数を呼び出すことで上書きできます。詳細については、 Snowflake固有のSQLSetConnectAttr関数の動作 をご参照ください。
設定を保存します。
OCSP コネクタまたはドライバーバージョンの確認¶
Snowflakeは、Snowflakeへの接続の際、 OCSP を使用して証明書チェーンを評価します。ドライバーまたはコネクターのバージョンとその構成により、 OCSP の動作が決まります。ドライバーまたはコネクタのバージョン、それらの構成、および OCSP の動作の詳細については、 OCSP 設定 をご参照ください。
OCSP 応答キャッシュサーバー¶
注釈
OCSP 応答キャッシュサーバーは現在、Snowflake ODBC ドライバー2.15.0以上でサポートされています。
Snowflakeクライアントは、実際にデータを転送する前に安全な接続を確立する「ハンドシェイク」を使用して、Snowflakeサービスエンドポイントへのすべての接続を開始します。ハンドシェイクの一部として、クライアントはサービスエンドポイントの TLS/SSL 証明書を認証します。証明書の失効ステータスは、 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 サーバーから検証ステータスを直接取得しようとします。