Autonomous DatabaseのPL/SQLパッケージ・ノート
Autonomous 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 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サブプログラムを使用すると、資格証明オブジェクトを渡してディレクトリ・サーバー認証を設定できます。 資格証明オブジェクトはスキーマ・オブジェクトであるため、アクセスできるのは特権ユーザーのみで、資格証明を制御するためのスキーマ・レベルの権限を構成できます。 スケジューラ資格証明を渡すことは、認証のためにusername/password/keysを格納および管理するための適切で安全な方法です。 -
変更された
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パラメータの値として指定できます。 詳細については、「シノニムの概要」を参照してください。
-
-
LDAPサーバーとAutonomous Databaseの間のすべての通信に対してSSL/TLSが強制されます。
-
Autonomous Databaseインスタンスがプライベート・エンドポイントを使用して構成されている場合、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータをPRIVATE_ENDPOINTに設定して、すべての送信LDAP接続がAutonomous 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 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 Databaseインスタンスがパブリック・エンドポイントにある場合、
HTTPSのみが許可されます。 Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合、HTTPS接続とHTTP_PROXY接続の両方が許可されます(パブリック・エンドポイントとプライベート・エンドポイントの両方でHTTP接続は許可されません)。 -
UTL_HTTP.set_proxyAPIは、Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合に許可されます。 -
Autonomous Databaseインスタンスがプライベート・エンドポイントにあり、
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 Databaseインスタンスがパブリック・エンドポイントにある場合、許可されるポートは443のみです。 Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合、この制限は適用されません。
Autonomous Databaseインスタンスは、最もよく信頼されるルート証明書および中間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 Databaseインスタンスがプライベート・エンドポイントで構成されている場合、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信UTL_HTTP接続がAutonomous 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 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 Databaseインスタンスがプライベート・エンドポイントで構成されている場合、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信UTL_SMTP接続がAutonomous 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 Databaseでアウトバウンドwebリクエストを作成するためにUTL_HTTPおよびDBMS_CLOUDで使用されるウォレットに設定されます。 -
TCP/IP接続で発生するすべての通信に対してSSL/TLSが適用されます。
-
Autonomous Databaseインスタンスがプライベート・エンドポイントで構成されている場合、
ROUTE_OUTBOUND_CONNECTIONSデータベース・パラメータを'PRIVATE_ENDPOINT'に設定して、すべての送信UTL_TCP接続がAutonomous Databaseインスタンスのプライベート・エンドポイントVCNエグレス・ルールに従うことを指定します。 詳細については、「プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化」を参照してください。
詳細は、「PL/SQLパッケージおよびタイプ・リファレンス」のUTL_TCPを参照してください。