10.6.1 アクセスおよび認可のプロシージャとファンクション

ネットワーク・アクセス制御リスト(ACL) APIを使用して、データベースから外部ネットワーク・サービスおよびリソースへのユーザーによるアクセスを制御します。トークン・ストアAPIを使用して、クラウド・ホストによって発行された認可トークンを保持し、後続のSQLコールで使用できるようにします。

次を使用してACL権限を管理します。ADMINユーザーが必要です。

次を使用して認可トークンを管理します。

ワークフロー

Autonomous DatabaseでEmbedded Python Execution用のSQL APIを使用するための一般的なワークフローは次のとおりです。

  1. ADMINユーザーとしてPDBに接続し、ルート・ドメインがadb.us-region-1.oraclecloudapps.comであるクラウド・ホストのACLリストに通常のユーザーOMLUSERを追加します。

    exec pyqAppendHostAce('OMLUSER','adb.us-region-1.oraclecloudapps.com');
  2. OML Rest URLは、プロビジョニングされているOracle Autonomous Databaseから取得できます。

    1. Oracle Cloud Infrastructureアカウントにサインインします。OCIユーザー名とパスワードが必要です。
    2. ハンバーガー・メニューをクリックし、プロビジョニングされているAutonomous Databaseインスタンスを選択します。Autonomous Databaseのプロビジョニングの詳細は、Oracle Autonomous Databaseのプロビジョニングを参照してください。
    3. 「サービス・コンソール」をクリックして、「開発」をクリックします。
    4. 「Oracle Machine Learning RESTfulサービス」タイルまでスクロールし、「コピー」をクリックして、次のURLを取得します。
      • OMLによって提供されるREST APIのREST認証トークンの取得:

        <oml-cloud-service-location-url>/omlusers/

    URL <oml-cloud-service-location-url>には、テナンシID、場所およびデータベース名が含まれます。たとえば、https://qtraya2braestch-omldb.adb.us-sanjose-1.oraclecloudapps.comです.

    この例では、次のようになります。

    • qtraya2braestchはテナンシIDです
    • omldbはデータベース名です
    • us-sanjose-1はデータセンター・リージョンです
    • oraclecloudapps.comはルート・ドメインです
  3. Oracle Machine LearningのREST APIでは、トークンを使用してOracle Machine Learningユーザーを認証します。アクセス・トークンを認証および取得するには、OMLユーザー名およびパスワードを使用して、Oracle Machine Learning User Management Cloud Service RESTエンドポイント/oauth2/v1/tokenにPOSTリクエストを送信します。

    curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' 
    -d '{"grant_type":"password", "username":"'${username}'", "password":"'${password}'"}' 
    "<oml-cloud-service-location-url>/omlusers/api/oauth2/v1/token"

    この例では次の値が使用されています。

    • usernameはOMLユーザー名です。
    • passwordはOMLユーザー・パスワード
    • oml-cloud-service-location-urlは、テナンシID、データベース名、場所名を含むOracle Machine Learning User Management Cloud ServiceインスタンスURLのRESTサーバー部分を含む変数です。omlserver URLは、Oracle Autonomous Databaseインスタンスのサービス・コンソールの「開発」タブから取得できます。

    ノート:

    トークンの有効期限が切れると、OML ServicesのRESTエンドポイントへのすべてのコールは、HTTPエラー: HTTP/1.1 401 Unauthorizedとともにトークンの有効期限が切れたことを示すメッセージを返します
  4. OMLUSERとしてPDBに接続し、アクセス・トークンを設定し、pyqIndexEvalを実行します。

    exec pyqSetAuthToken('<access token>');
    select *
        from table(pyqIndexEval(
            par_qry => NULL,
            out_fmt => '{"ID":"number", "RES":"varchar2(3)"}',
            times_num => 3,
            scr_name => 'idx_ret_df'));
    
            ID RES
    ---------- ---
             1 a
             2 b
             3 c
    
    3 rows selected.