Autonomous AI DatabaseのPL/SQLパッケージに関するノート
Autonomous AI DatabaseのOracle Database PL/SQLパッケージに関するノート。
使用できないPL/SQLパッケージ
-
DBMS_DEBUG_JDWP -
DBMS_DEBUG_JDWP_CUSTOM
DBMS_LDAP PL/SQLパッケージのノート
DBMS_LDAPパッケージのノートを示します。
-
ホスト名にIPアドレスを指定することはできません。
-
唯一許可されているポートは636です。
-
OPEN_SSLプロシージャに対するSSLWRLおよびSSLWALLETPASSWD引数は無視されます。SSLWRLプロパティのデフォルト値は、Autonomous AI DatabaseでアウトバウンドWebリクエストを行うためにUTL_HTTPおよびDBMS_CLOUDによって使用されるウォレットに設定されます。 -
DBMS_LDAP.SIMPLE_BIND_SおよびDBMS_LDAP.BIND_Sサブプログラムは、ディレクトリ・サーバーに対する認証を実行します。DBMS_LDAP.SIMPLE_BIND_SおよびDBMS_LDAP.BIND_Sサブプログラムは、資格証明オブジェクトを引数として受け入れるように変更されます。次に、これらの変更済サブプログラムの使用上のノートと例を示します。
-
変更された
SIMPLE_BIND_SおよびBIND_Sサブプログラムを使用すると、資格証明オブジェクトを渡してディレクトリ・サーバー認証を設定できます。資格証明オブジェクトはスキーマ・オブジェクトであるため、権限のあるユーザーのみがアクセスでき、資格証明を制御するためのスキーマ・レベルの権限を構成できます。スケジューラの資格証明を渡すことは、認証用のユーザー名/パスワード/キーを格納および管理するための適切で安全な方法です。 -
変更された
SIMPLE_BIND_SおよびBIND_Sサブプログラムは、以前に存在したSIMPLE_BIND_SおよびBIND_Sサブプログラムに代わる安全で便利なプログラムです。詳細は、「ファンクションsimple_bind_s」および「ファンクションbind_s」を参照してください。
-
SIMPLE_BIND_SおよびBIND_S関数のCREDENTIAL引数は、ディレクトリ・サーバーに対する資格証明ベースの認証を実行するために使用されます。 -
たとえば:
-
資格証明オブジェクトを作成します。
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'LDAP_CRED', username => 'web_app_user', password => 'password' ); END;これにより、格納されたユーザー名/パスワードのペアを作成する資格証明オブジェクトが作成されます。
詳細は、CREATE_CREDENTIALプロシージャを参照してください。
詳細は、スケジューラ・ジョブ資格証明の指定を参照してください。
-
DBMS_LDAP.SIMPLE_BIND_Sを起動します。DECLARE l_mail_conn DBMS_LDAP.INIT; BEGIN l_ldap_conn := DBMS_LDAP.INIT('ldap.example.com', 636); l_auth_result := DBMS_LDAP.SIMPLE_BIND_S(l_ldap_conn, 'LDAP_CRED'); ... END;この例のコードは、まずLDAPサーバーとのセッションを初期化し、ポート番号
636でLDAPサーバーldap.example.comとの接続を確立するDBMS_LDAP.INIT関数を呼び出します。SIMPLE_BIND_Sファンクションの値l_ldap_connはLDAPセッション・ハンドルで、LDAP_CREDは資格証明名です。 -
function bind_sは、ディレクトリ・サーバーに対して複雑な認証を実行します。たとえば:DECLARE l_mail_conn DBMS_LDAP.INIT; BEGIN l_ldap_conn := DBMS_LDAP.INIT('ldap.example.com', 636); l_auth_result := DBMS_LDAP.BIND_S(l_ldap_conn, 'LDAP_CRED', METH => DBMS_LDAP.AUTH_SIMPLE); ... END;この例のコードは、まずLDAPサーバーとのセッションを初期化し、ポート番号
636でLDAPサーバーldap.example.comとの接続を確立するDBMS_LDAP.INIT関数を呼び出します。BIND_Sファンクションの値l_ldap_connはLDAPセッション・ハンドルで、LDAP_CREDは資格証明名です。METHは認証方法です。有効な値はDBMS_LDAP_UTL.AUTH_SIMPLEのみです。
-
-
スケジューラ資格証明を作成するには、
DBMS_CLOUDまたはDWROLEに対するEXECUTE権限が必要です。 -
渡された資格証明は、現在のスキーマに存在するか、スキーマ内の資格証明を指すシノニムを持ち、有効状態である必要があります。
-
異なるユーザー・スキーマ内の資格証明を指すパブリック・シノニムまたはプライベート・シノニムは、シノニムが指すベース資格証明オブジェクトに対する
EXECUTE権限を持っている場合、CREDENTIALパラメータの値として指定できます。詳細は、シノニムの概要を参照してください。
-
-
SSL/TLSは、LDAPサーバーと自律型AIデータベースの間で発生するすべての通信に適用されます。
-
Autonomous AI Databaseインスタンスがプライベート・エンドポイントで構成されている場合は、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信LDAP接続がAutonomous AI Databaseインスタンスのプライベート・エンドポイントVCNのエグレス・ルールの対象となることを指定します。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。 -
プライベート・エンドポイントでの接続に
DBMS_LDAPを使用するには、DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACEを使用し、private_targetパラメータに値TRUEを指定します。ノート
ROUTE_OUTBOUND_CONNECTIONSをPRIVATE_ENDPOINTに設定した場合、このAPIではprivate_targetパラメータをTRUEに設定する必要はありません。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。 -
DBMS_LDAPエラーエラー・メッセージ 潜在的な原因 ORA-31400: Missing or invalid scheduler credential渡された資格証明がNULLまたは無効です。
詳細は、『PL/SQLパッケージおよびタイプ・リファレンス』のDBMS_LDAPを参照してください。
DBMS_NETWORK_ACL_ADMIN PL/SQLパッケージのノート
DBMS_NETWORK_ACL_ADMINパッケージのノートを示します。
-
IPアドレスに対するACL権限の付与は許可されていません。
-
HTTP_PROXYACLは、プライベート・エンドポイントで使用できます。
詳細は、『PL/SQLパッケージおよびタイプ・リファレンス』のDBMS_NETWORK_ACL_ADMINを参照してください。
DBMS_SCHEDULERパッケージ・ノート
DBMS_SCHEDULERパッケージのノートを提供します。
Autonomous AI Databaseでは、DBMS_SCHEDULER.CREATE_JOBプロシージャは、job_typeパラメータに対してPLSQL_BLOCKおよびSTORED_PROCEDUREジョブ・タイプをサポートします。
サポートされていないjob_typeを使用すると、次のようなメッセージが表示される場合があります。
ORA-27399: job type EXECUTABLE requires the CREATE EXTERNAL JOB privilege
ORA-27369: JOB OF TYPE EXECUTABLE FAILED WITH EXIT CODE: OPERATION NOT PERMITTED
詳細は、Oracle Schedulerでの事前定義済ジョブ・クラスおよびDBMS_SCHEDULERを参照してください。
UTL_HTTP PL/SQLパッケージのノート
UTL_HTTPパッケージのノートを示します。
-
IPアドレスを介した接続は許可されません。
-
Autonomous AI Databaseインスタンスがパブリック・エンドポイントにある場合、
HTTPSのみが許可されます。Autonomous AI Databaseインスタンスがプライベート・エンドポイント上にある場合、HTTPS接続とHTTP_PROXY接続の両方が許可されます(パブリック・エンドポイントとプライベート・エンドポイントの両方でHTTP接続は許可されません)。 -
UTL_HTTP.set_proxyAPIは、Autonomous AI Databaseインスタンスがプライベート・エンドポイントにある場合に許可されます。 -
自律型AIデータベース・インスタンスがプライベート・エンドポイントにあり、
HTTP_PROXYまたはUTL_HTTP.SET_PROXYAPIを使用する場合:-
DBMS_CLOUDリクエストは、UTL_HTTP.SET_PROXYで設定したプロキシ・サーバーを使用しません。これには、DBMS_CLOUD.SEND_REQUESTと、DBMS_CLOUD.CREATE_EXTERNAL_TABLE、DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLEまたはDBMS_CLOUD.CREATE_HYBRID_PART_TABLEで定義したDBMS_CLOUD外部表に対するすべてのオブジェクト・ストレージ・アクセスが含まれます。 -
APEX_WEB_SERVICEリクエストは、UTL_HTTP.SET_PROXYで設定したプロキシ・サーバーを使用しません。
-
-
すべてのWebサービスが保護されている必要があります。Autonomous AI Databaseインスタンスがパブリック・エンドポイントにある場合、許可されるポートは443のみです。自律型AIデータベース・インスタンスがプライベート・エンドポイントにある場合、この制限は適用されません。
自律型AIデータベース・インスタンスは、最も一般的に信頼できるルートおよび中間SSL証明書が90を超えるOracle Walletを使用して事前構成されます。Oracle Walletは一元管理されています。自己署名SSL証明書を使用して保護されているサイトのウォレットを使用するように
UTL_HTTPを構成できます。詳細は、UTL_HTTPでの外部コールに対する顧客管理Walletの使用を参照してください。 -
SET_AUTHENTICATION_FROM_WALLETプロシージャは使用できません。 -
CREATE_REQUEST_CONTEXT、REQUESTおよびREQUEST_PIECESプロシージャのWALLET_PATHおよびWALLET_PASSWORD引数は無視されます。 -
SET_CREDENTIALプロシージャのCREDENTIAL引数は、プロシージャへの入力として資格証明オブジェクトを渡すために使用されます。詳細は、スケジューラ・ジョブ資格証明の指定およびCREATE_CREDENTIALプロシージャを参照してください。 -
資格証明オブジェクトを作成するには、
DBMS_CLOUDまたはDWROLEに対するEXECUTE権限が必要です。 -
渡された資格証明は、現在のユーザー・スキーマに存在し、有効な状態である必要があります。
-
異なるユーザー・スキーマ内の資格証明を指すパブリック・シノニムまたはプライベート・シノニムは、シノニムが指すベース資格証明オブジェクトに対する
EXECUTE権限を持っている場合、CREDENTIALパラメータの値として指定できます。詳細は、シノニムの概要を参照してください。 -
Oracle Wallet構成は変更できません。
SET_WALLETプロシージャのすべての引数は無視されます。 -
Autonomous AI Databaseインスタンスがプライベート・エンドポイントで構成されている場合は、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信UTL_HTTP接続がAutonomous AI Databaseインスタンスのプライベート・エンドポイントVCNのエグレス・ルールに従うことを指定します。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。 -
UTL_HTTPエラー次の表に、
UTL_HTTPの使用時のエラー・メッセージおよびこれらのエラー・メッセージの考えられる原因を示します。エラー・メッセージ 潜在的な原因 ORA-12545: Connect failed because target host or object does not existターゲット・ホストまたはオブジェクトが存在しないか、プライベートです。
ORA-24247: network access denied by access control list (ACL)指定されたホストのアクセス制御リスト(ACL)が見つかりませんでした。
ORA-29024: Certificate validation failureホストの証明書が存在しないか、サポートされている証明書に含まれていません。
ORA-29261: Bad argument渡された資格証明が無効または無効であるか、ユーザーに資格証明に対する十分な権限がありません。
詳細は、『PL/SQLパッケージおよびタイプ・リファレンス』のUTL_HTTPを参照してください。
UTL_INADDR PL/SQLパッケージのノート
UTL_INADDRパッケージのノートを示します。
-
UTL_INADDRパッケージは、プライベート・エンドポイント(PE)を持つAutonomous AI Databaseインスタンスで使用できます。 -
GET_HOST_ADDRESSファンクションを使用できます。 -
GET_HOST_NAMEファンクションは使用できません。
詳細は、『PL/SQLパッケージおよびタイプ・リファレンス』のUTL_INADDRを参照してください。
UTL_SMTP PL/SQLパッケージのノート
UTL_SMTPパッケージのノートを示します。
-
パブリックSMTPエンドポイントは、ルーティングが顧客のリバース接続エンドポイント(RCE)を介して行われるかぎり使用できます。
-
ホスト名にIPアドレスが含まれるメールは許可されません。
-
許可されるポートは25と587のみです。
-
SET_CREDENTIALファンクションのCREDENTIAL引数は、スケジューラ資格証明オブジェクトをファンクションへの入力として渡すために使用します。詳細は、スケジューラ・ジョブ資格証明の指定およびCREATE_CREDENTIALプロシージャを参照してください。 -
資格証明オブジェクトを作成するには、
DBMS_CLOUDまたはDWROLEに対するEXECUTE権限が必要です。 -
SET_CREDENTIALプロシージャのCREDENTIAL引数は、資格証明オブジェクト・オブジェクトをプロシージャへの入力として渡すために使用します。詳細は、スケジューラ・ジョブ資格証明の指定を参照してください。 -
渡された資格証明は、現在のユーザー・スキーマに存在し、有効な状態である必要があります。
-
異なるユーザー・スキーマ内の資格証明を指すパブリック・シノニムまたはプライベート・シノニムは、シノニムが指すベース資格証明オブジェクトに対する
EXECUTE権限を持っている場合、CREDENTIALパラメータの値として指定できます。詳細は、シノニムの概要を参照してください。 -
Autonomous AI Databaseインスタンスがプライベート・エンドポイントで構成されている場合は、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信UTL_SMTP接続がAutonomous AI Databaseインスタンスのプライベート・エンドポイントVCNのエグレス・ルールに従うことを指定します。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。 -
UTL_SMTPエラーエラー・メッセージ 潜在的な原因 ORA-29261: Bad argument渡された資格証明が無効または無効であるか、ユーザーに資格証明に対する十分な権限がありません。
詳細は、『PL/SQLパッケージおよびタイプ・リファレンス』のUTL_SMTPを参照してください。
UTL_TCP PL/SQLパッケージのノート
UTL_TCPパッケージのノートを示します。
-
IPアドレスはホスト名では使用できません。
-
許可されるポートは、443 (HTTP) 25および587 (SMTP)のみです。
-
ポート443では、HTTPS URLのみが許可されます。
-
OPEN_CONNECTIONプロシージャのWALLET_PATHおよびWALLET_PASSWORD引数は無視されます。WALLET_PATHおよびWALLET_PASSWORDプロパティのデフォルト値は、Autonomous AI DatabaseでアウトバウンドWebリクエストを行うためにUTL_HTTPおよびDBMS_CLOUDによって使用されるウォレットに設定されます。 -
SSL/TLSは、TCP/IP接続で発生するすべての通信に適用されます。
-
Autonomous AI Databaseインスタンスがプライベート・エンドポイントで構成されている場合は、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信UTL_TCP接続がAutonomous AI Databaseインスタンスのプライベート・エンドポイントVCNのエグレス・ルールに従うことを指定します。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。
詳細は、『PL/SQLパッケージおよびタイプ・リファレンス』のUTL_TCPを参照してください。