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.
次のトピックでは、ACL権限および承認トークンを管理するステップについて説明します。
トピック:
- pyqAppendHostACEプロシージャpyqAppendHostACEプロシージャは、アクセス制御エントリ(ACE)をクラウド・ホストのアクセス制御リスト(ACL)に追加します。ACLはデータベースからクラウド・ホストへのアクセスを制御し、ACEは指定されたユーザー名に付与される接続権限を指定します。
- pyqGetHostACEファンクションpyqGetHostACEファンクションは、指定されたユーザーの既存のホスト・アクセス制御エントリ(ACE)を取得します。指定されたユーザーのホストACEが存在しない場合は、例外が発生します。
- pyqRemoveHostACEプロシージャ
 
- pyqSetAuthTokenプロシージャpyqSetAuthTokenプロシージャは、トークン・ストアにアクセス・トークンを設定します。
- pyqIsTokenSetファンクションpyqIsTokenSetファンクションは、認可トークンが設定されているかどうかを返します。