機械翻訳について

接続の作成の前提条件

Snowflakeアダプタとの接続を作成するには、次の前提条件を満たす必要があります:

パラメータ値の把握

  • インスタンスURLを確認します。

  • 倉庫名を確認します。

  • データベース名がわかっていること。

  • スキーマ名を確認します。

  • 統合のクライアントIDおよびクライアント・シークレットを確認します。 クライアント・シークレットは、SYSTEM$SHOW_OAUTH_CLIENT_SECRETS関数を使用して取得されます。

  • 統合ユーザー(カスタム・ロール)に、ウェアハウス、データベースおよびスキーマに対するすべての権限があることを確認します。

Oracle Integration「Snowflakeアダプタ」接続を作成する場合は、接続ページで次の詳細を指定する必要があります。 したがって、接続を作成する前に、次の値を把握または取得する必要があります:
  • 倉庫名
  • データベース名
  • スキーマ名
  • クライアントIDおよびクライアント・シークレット
  • リフレッシュ・トークン
これらの値を取得するには、次のステップを実行します:

ノート:

次のコマンド例は、入力内容を把握するために提供されています。
  1. Snowflake管理アカウントにログインします。
  2. 次のコマンドを使用してウェアハウスを作成します。 たとえば:
    create or replace warehouse ORACLE_WH;
    「倉庫の作成」を参照してください。
  3. 次のコマンドを使用してデータベースを作成します。 たとえば:
    create or replace database snowflake_db_oracle;
    「データベースの作成」を参照してください。
  4. スキーマの作成 「スキーマの作成」を参照してください。 ステップ2および3で説明したコマンドを使用した場合は、デフォルトで次のスキーマが表示されます。
    use schema Public;
  5. 現行/指定したスキーマに新しい表を作成します。 「表の作成」を参照してください。
  6. 次のコマンドを使用してユーザーを作成します。 たとえば:
    create user oracle_user password='01March#2022' default_role = SYSADMIN

    「ユーザーの作成」を参照してください。

  7. Snowflakeの次のコマンドを使用して、新しいSnowflake OAuthセキュリティ統合を作成します。 たとえば:
    create or replace security integration ORACLE_OAUTH
    type=oauth
    enabled=true
    oauth_client=CUSTOM
    oauth_client_type='CONFIDENTIAL'
    oauth_redirect_uri='https://my-development-instance.integration.us-region-1.domain.com/icsapis/agent/oauth/callback’
    oauth_issue_refresh_tokens=true
    oauth_refresh_token_validity=86400; 
    

    「セキュリティ統合の作成(Snowflake Oauth)」を参照してください。

    ノート:

    OAuthリフレッシュ・トークン値では、最大値を7776000 (90日)に設定できます。

    このステップでは、SnowflakeにアクセスするためのクライアントID、クライアント・シークレットおよびアクセス・トークン(およびオプションでリフレッシュ・トークン)を生成します。

    • セキュリティ統合のクライアントIDおよびクライアント・シークレットを表示するには、次のコマンドを使用します。 たとえば:
      SELECT SYSTEM$SHOW_OAUTH_CLIENT_SECRETS('ORACLE_OAUTH');
    • セキュリティ統合のプロパティを表示するには、次のコマンドを使用します。 たとえば:
      desc integration ORACLE_OAUTH;
  8. ユーザーにロール(admin以外)を割り当てます。 「ロールの付与」「ユーザーの変更」を参照してください。
  9. ウェアハウス、データベースおよびスキーマに対するすべての権限をカスタム・ロールに付与します。
    • データベースの権限をデフォルト・ロールに付与するには、次のコマンドを使用します。 たとえば:
      GRANT all PRIVILEGES on DATABASE snowflake_db_oracle to role sysadmin;
    • セキュリティ統合の権限をデフォルト・ロールに提供するには、次のコマンドを使用します。 たとえば:
      grant all on integration ORACLE_OAUTH to role sysadmin;
    • 事前定義済ロールの権限をユーザーに付与するには、次のコマンドを使用します。 たとえば:
      grant role SYSADMIN to user oracle_user;
    • ウェアハウスの権限をデフォルト・ロールに付与するには、次のコマンドを使用します。 たとえば:
      grant usage on warehouse oracle_wh to role sysadmin;
    • データベースの権限をデフォルト・ロールに付与するには、次のコマンドを使用します。 たとえば:
      grant usage on database snowflake_db_oracle to role sysadmin;
    • スキーマの使用権限をデフォルト・ロールに付与するには、次のコマンドを使用します。 たとえば:
      grant usage on schema public to role sysadmin;

    GRANT <privileges> … TO ROLEを参照してください。

OAuth 2.0クライアント資格証明認証用の外部アイデンティティ・プロバイダの構成

OAuth 2.0クライアント資格証明セキュリティ・ポリシーをスノーフレーク・アダプタで使用するには、Azure AD、Okta、PingFederateなどの外部アイデンティティ・プロバイダ(IDP)を構成して、トークンベースのアクセスを有効にする必要があります。 選択したIDPにアプリケーションを登録し、認証に必要な次の値を取得します。
  • アクセス・トークンURI
  • クライアントID
  • クライアント・シークレット
  • 有効範囲

これらの資格証明を使用して、スノーフレーク・アダプタがユーザー対話型(3レッグOAuth)フローを必要とせずにスノーフレークに安全に接続するために使用するアクセス・トークンを取得します。

ノート:

これらの詳細は、セキュリティ構成にのみ適用されます。 接続プロパティおよび実行時の動作は、既存のOAuthベースの統合と同じままです。 無効な資格証明が指定されている場合は、トラブルシューティングに役立つ説明的なエラー・メッセージが返されます。
詳細は、プロバイダ固有の設定手順を参照してください。

外部OAuthがスノーフレークで一般的にどのように機能するかの詳細は、スノーフレーク・ドキュメントの外部OAuthの概要を参照してください。

スノーフレークでのユーザーおよびセキュリティ統合の作成

外部アイデンティティ・プロバイダを使用してSnowflakeへのセキュアでトークンベースのアクセスを許可するには、次のステップに従ってユーザーを作成します。

  1. IDPから次の資格証明を使用してアクセス・トークンを取得します。
    • クライアントID
    • クライアント・シークレット
    • アクセス・トークンURI
    • 有効範囲
  2. アクセス・トークンをデコードし、sub値を抽出します。 OAuthアクセス・トークンのデコードを参照してください。 このsub値は、アイデンティティ・プロバイダによって発行されたユーザーIDを表します。
  3. スノーフレークで外部OAuthセキュリティ統合を作成します。 次の情報を指定します:
    • JWSキーURL
    • OAuth発行者
    • 対象者リスト
  4. 抽出したsub値をLOGIN_NAMEプロパティの値として使用して、Snowflakeでユーザーを作成します。
  5. ユーザーに適切なロールと権限を付与します。
  6. Oracle Integrationの「接続」ページの「セキュリティ」セクションで、「ユーザーID」フィールドに同じsub値を入力します。