ODBC Driver for Snowflake

Build 23.0.8839

Linux DSN の構成

このセクションでは、以下のいくつかのLinux ディストリビューションでODBC 接続をセットアップしDSN を設定する方法を説明します:Ubuntu のようなDebian ベースのシステム、Red Hat Enterprise Linux (RHEL)、CentOS、およびFedora のようなRed Hat Linux プラットフォーム。

Linux の最小バージョン

Red Hat ベースおよびDebian ベースシステムでサポートされる最小バージョンは以下のとおりです。

OSMin. Version
Ubuntu11.04
Debian7
RHEL6.9
CentOS6.9
Fedora13
SUSE12.1

ドライバー依存関係のインストール

必要な依存関係をインストールするには、次のコマンドをルートとしてまたはsudo で実行します。

  • Debian/Ubuntu:
    apt-get install libc6 libstdc++6 zlib1g libgcc1
  • RHEL/CentOS/Fedora:
    yum install glibc libstdc++ zlib libgcc

本製品 が必要とする対応ライブラリは以下のとおりです。

Debian/Ubuntu PackageRHEL/CentOS/Fedora PackageFile
libc6glibclinux-vdso.1
libc6glibclibm.so.6
libc6glibclibrt.so.1
libc6glibclibdl.so.2
libc6glibclibpthread.so.0
libc6glibclibc.so.6
libc6glibcld-linux-x86-64.so.2
libstdc++6libstdc++libstdc++.so.6
zlib1gzliblibz.so.1
libgcc1libgcclibgcc_s.so.1

ドライバーのインストール

標準のパッケージ管理システムを使用してドライバーをインストールできます。

Ubuntu のようなDebian ベースのシステムでは、次のコマンドをroot またはsudo で実行します。

dpkg -i /path/to/driver/setup/SnowflakeODBCDriverforUnix.deb 

RPM パッケージ形式をサポートするシステムでは、次のコマンドをroot またはsudo で実行します。

rpm -ivh /path/to/driver/SnowflakeODBCDriverforUnix.rpm 

ドライバーのライセンス

次のコマンドを実行して本製品 のライセンスを取得します。評価版をアクティベートするには、<key> の入力を省略してください。

cd /opt/cdata/cdata-odbc-driver-for-snowflake/bin/
sudo ./install-license.sh <key>

ドライバーマネージャー経由の接続

ドライバーマネージャーはドライバーをロードし、アプリケーションからドライバーに関数呼び出しを渡します。本製品 をドライバーマネージャーに登録して、ドライバーマネージャーのコンフィギュレーションファイルにDSN を定義する必要があります。

本製品 のインストールでは、本製品 をunixODBC ドライバーマネージャーに登録し、システムDSN を作成します。UnixODBC ドライバーマネージャーは、Python やその他多くのアプリケーションから使用できます。アプリケーションに別のドライバーマネージャーが組み込まれている可能性があります。

DSN の作成

unixODBC をインストールしてDSN を設定するには、unixODBC の使用 を参照してください。OBIEE、Informatica、およびSAS に接続するDSN を作成するには、DataDirect ドライバーマネージャーの使用 を参照してください。

Snowflake への接続

Snowflake データベースに接続するには、認証に加えて(下記参照)、次のプロパティを設定します。

  • Url:AWS とAzure の両方のインスタンスがサポートされています。次に例を示します。
    • AWS: https://myaccount.region.snowflakecomputing.com
    • Azure: https://myaccount.region.azure.snowflakecomputing.com

Account が必要となるのは、Url が最初にアカウント名を含む通常の構文に準拠していない場合だけです。この場合に必要なAccount 名は、Snowflake が提供します。

オプションとして、DatabaseSchema を設定して、本製品 から返されるテーブルとビューを制限できます。

GCP インスタンス

GCP インスタンスへの接続を確立するには、次のURL を指定します。
URL: https://myaccount.gcp.snowflakecomputing.com
次はGCP インスタンスと連携するための接続文字列の例です。
jdbc:snowflake:AuthScheme=Basic;url=https://myaccount.gcp.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;

Snowflake への認証

本製品 は、Snowflake ユーザー認証、フェデレーション認証、およびSSL クライアント認証をサポートしています。認証するには、UserPassword を設定し、AuthScheme プロパティで認証メソッドを選択します。

パスワード

User およびPassword をSnowflake ユーザーに設定し、AuthSchemePASSWORD に設定します。

キーペア

本製品 を使用すると、ユーザーアカウントに定義されたプライベートキーを使用してセキュアなトークンを作成することにより、キーペア認証を使用して認証できます。この方法で接続するには、AuthSchemePRIVATEKEY に設定し、次の値を設定します。

  • User:認証に使用するユーザーアカウント。
  • PrivateKey:プライベートキーを含む.pem ファイルへのパスなど、ユーザーに使用されるプライベートキー。
  • PrivateKeyType:プライベートキーを含むキーストアの種類(PEMKEY_FILE、PFXFILE など)。
  • PrivateKeyPassword:指定されたプライベートキーのパスワード。

Okta

AuthSchemeOKTA に設定します。Okta に接続するには、次の接続プロパティを使用します。

  • User:Okta ユーザーに設定。
  • Password:ユーザーのOkta パスワードに設定。
  • MFAPasscode(オプション):デバイスに送信されたOTP コードに設定。このプロパティは、OKTA サインオンにMFA が必要な場合にのみ使用します。
次のSSOProperties がOkta への認証に必要です。

  • Domain:OKTA org ドメイン名に設定。
  • MFAType(オプション):multi-factor タイプに設定。このプロパティは、OKTA サインオンにMFA が必要な場合にのみ使用します。このプロパティには、次のいずれかの値を指定します。
    • OKTAVerify
    • Email
    • SMS
  • APIToken(オプション):顧客がOkta 組織から作成したAPI Token に設定。Okta クライアントリクエストコンテキストをオーバーライドする、信頼されたアプリケーションまたはプロキシ経由でユーザーを認証する場合には、これを指定する必要があります。ほとんどの場合必要ありません。

次は接続文字列の例です。

AuthScheme=OKTA;User=username;Password=password;Url='https://myaccount.region.snowflakecomputing.com';Warehouse=My_warehouse;SSO Properties='Domain=https://cdata-okta.okta.com';

次はOKTA MFA の接続文字列の例です。

AuthScheme=OKTA;User=username;Password=password;MFAPasscode=8111461;Url='https://myaccount.region.snowflakecomputing.com';Warehouse=My_warehouse;SSO Properties='Domain=https://cdata-okta.okta.com;MFAType=OktaVerify;';

AzureAD

AuthSchemeAzureAD に、User をAD ユーザーに設定します。接続すると、ブラウザが開きAzure AD にログインして認証を完了できます。 次はAzureAD の接続文字列の例です。
AuthScheme=AzureAD;Url=https://myaccount.region.snowflakecomputing.com;User=user@domain.onmicrosoft.com;

PingFederate

AuthSchemePingFederate に設定します。PingFederate に接続するには、次の接続プロパティを設定します。

  • User:PingFederate ユーザーに設定。また、PingFederate Data Store にもユーザーを追加する必要があります。接続すると、ブラウザが開きPingFederate にログインして認証を完了できます。
  • Password:ユーザーパスワードに設定。
  • ProofKey(オプション):ブラウザを使用せずに接続する場合は、必ず指定してください。ブラウザの設定では、この値は自動生成されます。
  • ExternalToken(オプション):ブラウザを使用せずに接続する場合に必要です。ブラウザの設定では、この値は自動生成されます。
次はPingFederate(Data Store にActive Directory を使用することを想定した場合)の接続文字列の例です。
AuthScheme=PingFederate;Url=https://myaccount.region.snowflakecomputing.com;User=myuser@mydomain;Account=myaccount;Warehouse=mywarehouse;

Proof Key およびExternal Token の使用

AuthSchemeAzureAD またはPingFederate に設定するには、Proof Key およびExternal Token を使用します。インターネットブラウザで認証を完了する場合、これらの値は自動生成され、Snowflake のログインプロセスで使用される接続文字列に自動的に含まれます。

ブラウザ経由以外の方法で接続する場合は、ProofKey およびExternalToken に値を指定する必要があります。この場合、下記の手順に従って認証します。

  1. 8080 などのポートを指定して、ローカルWeb サーバーを作成します。
  2. 指定したポートを使って、GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。このプロシージャは、ログインSSO URL を返します。
  3. 返されたURL をブラウザにコピーします。
  4. 表示されるページで、ユーザーネームとパスワードを入力します。
  5. ログイン後、コールバックURL が生成され、ローカルのWeb サーバーインスタンスに送信されます。このコールバックURL は特殊な形式になっています。コールバックURL からExternal Token を抽出するためのコードを独自に記述する必要があります。

OAuth

OAuth で認証するには、AuthScheme をOAuth に設定します。カスタムOAuth アプリの作成 で認証して、OAuthClientIdOAuthClientSecret、およびCallbackURL 接続プロパティを取得できます。

NOTE:OAuthAuthenticator と呼ばれる追加の接続プロパティがあります。デフォルト値はAzure ですが、None またはOKTA に設定することもできます。このプロパティは、OAuth アプリケーションがSnowflake に要求するAuthenticator を決定します。

AuthSchemeAzureAD に設定する場合と、AuthScheme をOAuth してOAuthAuthenticatorAzureに設定する場合には違いがあります。

  • AuthScheme=AzureAD:これはブラウザを必要とするSSO 認証形式で、Snowflake 側から見たセキュリティインテグレーションタイプはSAML2 です。
  • AuthScheme=OAuth かつOAuthAuthenticator=Azure:ブラウザを必要としないOAuth 形式です。Snowflake 側から見ると、セキュリティインテグレーションタイプは"external_oauth" です。

デスクトップアプリ

このセクションでは、カスタムOAuth アプリの資格情報を使用したデスクトップ認証について説明します。詳しくは、カスタムOAuth アプリの作成 を参照してください。

OAuth アクセストークンの取得

以下を設定して、接続してください。

  • OAuthClientId:OAuth 統合設定のクライアントID に設定。
  • OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
  • CallbackURL:OAuth 統合設定のリダイレクトURL に設定。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

手動でのOAuth アクセストークンの取得

次の接続プロパティを設定し、OAuthAccessToken を取得します。

  • InitiateOAuthOFF に設定。
  • OAuthClientId:OAuth 統合設定のクライアントID に設定。
  • OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。

続いてストアドプロシージャを呼び出し、OAuth 交換を完了します。

  1. GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。CallbackURL インプットをアプリ設定で指定したリダイレクトURI に設定します。ストアドプロシージャがOAuth エンドポイントのURL とPKCEVerifier を返します。
  2. URL を開き、ログインして、アプリケーションを認可します。コールバックURL にリダイレクトされます。
  3. GetOAuthAccessToken ストアドプロシージャを呼び出します。CallbackURL インプットをアプリ設定で指定したリダイレクトURI に設定します。PKCEVerifier インプットを最初の手順で取得したPKCEVerifier の値に設定します。

ヘッドレスマシン

ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。

  1. 以下の2つのオプションから選択します。

    • オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
    • オプション2:別のマシンに本製品 をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。

  2. その後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。

オプション1:Verifier code を取得および交換

Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。

手順については、カスタムOAuth アプリの作成 を参照してください。このセクションでは、データの認証および接続を行う手順について説明します。

Verifier code を取得するには、ヘッドレスマシンで次のプロパティを設定します。

  • InitiateOAuthOFF に設定。
  • OAuthClientId:OAuth 統合設定のクライアントID に設定。
  • OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。

次に、別のマシンから認証してOAuthVerifier 接続プロパティを取得します。

  1. GetOAuthAuthorizationUrl ストアドプロシージャを呼び出します。CallbackURL インプットをアプリ設定で指定したリダイレクトURI に設定します。ストアドプロシージャがOAuth エンドポイントのURL とPKCEVerifier を返します。
  2. 返されたURL をブラウザで開きます。ログインして、本製品 にアクセス許可を与えます。すると、verifier code を含むコールバックURL にリダイレクトされます。
  3. Verifier の値とPKCEVerifier の値を保存します。OAuthVerifier 接続プロパティにVerifier の値を設定し、PKCEVerifier 接続プロパティにPKCEVerifier の値を設定する必要があります。

最後に、ヘッドレスマシンで、次の接続プロパティを設定してOAuth 認証値を取得します。

  • OAuthClientId:OAuth 統合設定のクライアントID に設定。
  • OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
  • OAuthVerifier:verifier code に設定。
  • PKCEVerifier:PKCE verifier code に設定。
  • OAuthSettingsLocation:暗号化されたOAuth 認証値を指定された場所に永続化。
  • InitiateOAuthREFRESH に設定。

データへの接続

OAuth 設定ファイルが生成されたら、次のプロパティを設定してデータに接続します。

  • OAuthSettingsLocation:暗号化されたOAuth 認証値が保存される場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所がプロバイダーに読み書きのアクセス許可を与えることを確認してください。
  • InitiateOAuthREFRESH に設定。

オプション2:OAuth 設定を転送

別のマシンに本製品 をインストールするには、認証してから、結果のOAuth 値を転送します。

  1. セカンドマシンに、本製品 をインストールして、次の接続プロパティセットで接続します。
    • OAuthSettingsLocation:書き込み可能な場所に設定。
    • OAuthClientId:アプリケーション設定のクライアントID に設定。
    • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
    • CallbackURL:アプリケーション設定のコールバックURL に設定。
  2. 認証する接続をテストします。生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
    • InitiateOAuthREFRESH に設定。
    • OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。

SAML プロバイダー

本製品 は、OneLogin などのSAML ベースのID プロバイダーを汎用的にサポートしています。

AuthSchemeExternalBrowser に設定します。

OneLogin

User を認証したいSnowflake ユーザーに設定します。

接続を試みると、SAML プロバイダーは、デフォルトのWeb ブラウザでログインプロンプトを起動します。

Snowflake を認証するために、SAML プロバイダーに紐づいた認証情報を提供します。

アクセス制御の設定

認証ユーザーがシステム定義のロールにマップしている場合は、RoleName プロパティで指定します。

ドライバーエンコーディングの設定

ODBC ドライバーは、ODBC ドライバーマネージャーで使用するエンコーディングを指定する必要があります。デフォルトでは、Unix 用のCData ODBC ドライバーはunixODBC と互換性のあるUTF-16 を使用するように設定されていますが、他のドライバーマネージャーでは代替エンコーディングが必要な場合があります。

また、ANSI ODBC API を使用するアプリケーションからODBC ドライバーを使用している場合は、ANSI コードページを設定する必要があります。例えば、ANSI アプリケーションに日本語の文字をインポートするには、設定ファイル'/opt/cdata/cdata-odbc-driver-for-snowflake/lib/cdata.odbc.snowflake.ini' でコードページを指定できます。

[Driver]
AnsiCodePage = 932

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839