JDBC Driver for Snowflake

Build 22.0.8509

接続の確立

JDBC データソースの作成

Java アプリケーションから接続するJDBC データソースを作成できます。CData JDBC Driver for Snowflake に基づくJDBC データソースの作成は、3つの基本ステップで構成されます。

  • ドライバーのJAR ファイルをクラスパスに追加します。JAR ファイルはインストールディレクトリの[lib]サブフォルダ内にあります。.lic ファイルはJAR ファイルと同じフォルダ内に配置される必要があることに注意してください。
  • ドライバークラスを入力します。次に例を示します。
    cdata.jdbc.snowflake.SnowflakeDriver
  • JDBC URL を入力します。次に例を示します。
    jdbc:snowflake:url=https://myaccount.region.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;
    
    or
    
    jdbc:cdata:snowflake:url=https://myaccount.region.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;

    上記の2つ目の形式は、同じURL 形式を使用しているドライバー間でアプリケーションに競合がある場合は、CData ドライバーを使用していることを確認するために常に使用できます。URL は "jdbc:snowflake:" または"jdbc:cdata:snowflake:" のいずれかから始まり、任意の接続プロパティの名前と値のペアをセミコロン区切りで入力します。

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 ユーザーに設定し、AuthScheme をPASSWORD に設定します。

キーペア

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

  • 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 org から作成した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 に設定します。AzureAD への接続には、以下の接続プロパティを使用します。
  • 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 にログインして認証を完了できます。
次はPingFederate(Data Store にActive Directory を使用することを想定した場合)の接続文字列の例です。
AuthScheme=PingFederate;Url=https://myaccount.region.snowflakecomputing.com;User=myuser@mydomain;Account=myaccount;Warehouse=mywarehouse;

OAuth

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

デスクトップアプリ

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

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

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

  • OAuthClientId:OAuth 統合設定のクライアントID に設定。
  • OAuthClientSecret:OAuth 統合設定のクライアントシークレットに設定。
  • CallbackURL:OAuth 統合設定のリダイレクトURL に設定。
  • InitiateOAuthGETANDREFRESH に設定。InitiateOAuth を使うと、OAuth 交換の繰り返しや、手動でのOAuthAccessToken 設定を避けられます。
接続すると、本製品 はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。本製品 はこれで次のOAuth プロセスを完了します。
  1. コールバックURL からアクセストークンを取得し、リクエストを認証します。
  2. 古いトークンの期限が切れたときは、新しいアクセストークンを取得します。
  3. OAuthSettingsLocation に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:書き込み可能なテキストファイルに設定。
    • InitiateOAuthGETANDREFRESH に設定。
    • OAuthClientId:アプリケーション設定のクライアントID に設定。
    • OAuthClientSecret:アプリケーション設定のクライアントシークレットに設定。
    • CallbackURL:アプリケーション設定のコールバックURL に設定。
  2. 認証する接続をテストします。生成された認証値は、OAuthSettingsLocation で指定されたパスに暗号化されて書き込まれます。接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
    • InitiateOAuthREFRESH に設定。
    • OAuthSettingsLocation:OAuth 設定ファイルのパスに設定。アクセストークンの自動リフレッシュを有効にするために、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。

アクセス制御の設定

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

Copyright (c) 2023 CData Software, Inc. - All rights reserved.
Build 22.0.8509