11.7.1 アクセスおよび認可のプロシージャとファンクション
ネットワーク・アクセス制御リスト(ACL) APIを使用して、データベースから外部ネットワーク・サービスおよびリソースへのユーザーによるアクセスを制御します。トークン・ストアAPIを使用して、クラウド・ホストによって発行された認可トークンを保持し、後続のSQLコールで使用できるようにします。
次を使用してACL権限を管理します。ADMIN
ユーザーが必要です。
次を使用して認可トークンを管理します。
ワークフロー
Autonomous DatabaseでEmbedded Python Execution用のSQL APIを使用するための一般的なワークフローは次のとおりです。
-
ADMIN
ユーザーとしてPDBに接続し、ルート・ドメインがadb.us-region-1.oraclecloudapps.com
であるクラウド・ホストのACLリストに通常のユーザーOMLUSER
を追加します。exec pyqAppendHostAce('OMLUSER','adb.us-region-1.oraclecloudapps.com');
-
OML Rest URLは、プロビジョニングされているOracle Autonomous Databaseから取得できます。
- Oracle Cloud Infrastructureアカウントにサインインします。OCIユーザー名とパスワードが必要です。
- ハンバーガー・メニューをクリックし、プロビジョニングされているAutonomous Databaseインスタンスを選択します。Autonomous Databaseのプロビジョニングの詳細は、Oracle Autonomous Databaseのプロビジョニングを参照してください。
- 「サービス・コンソール」をクリックして、「開発」をクリックします。
- 「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
はルート・ドメインです
-
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
とともにトークンの有効期限が切れたことを示すメッセージを返します -
OMLUSER
としてPDBに接続し、アクセス・トークンを設定し、pyqIndexEval
を実行します。exec pyqSetAuthToken('<
access token
>'); select * from table(pyqIndexEval( par_lst => 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.
- pyqAppendHostACEプロシージャ
pyqAppendHostACE
プロシージャは、アクセス制御エントリ(ACE)をクラウド・ホストのアクセス制御リスト(ACL)に追加します。ACLはデータベースからクラウド・ホストへのアクセスを制御し、ACEは指定されたユーザー名に付与される接続権限を指定します。 - pyqGetHostACEファンクション
pyqGetHostACE
ファンクションは、指定されたユーザーの既存のホスト・アクセス制御エントリ(ACE)を取得します。指定されたユーザーのホストACEが存在しない場合は、例外が発生します。 - pyqRemoveHostACEプロシージャ
- pyqSetAuthTokenプロシージャ
pyqSetAuthToken
プロシージャは、トークン・ストアにアクセス・トークンを設定します。 - pyqIsTokenSetファンクション
pyqIsTokenSet
ファンクションは、認可トークンが設定されているかどうかを返します。