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_PROXY
ACLを使用できます。
詳細は、「PL/SQLパッケージおよびタイプ・リファレンス」のDBMS_NETWORK_ACL_ADMINを参照してください。
UTL_HTTP PL/SQLパッケージ・ノート
UTL_HTTP
パッケージのノートを示します:
-
IPアドレスによる接続は許可されません。
-
Autonomous Databaseインスタンスがパブリック・エンドポイントにある場合、
HTTPS
のみが許可されます。 Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合、HTTPS
接続とHTTP_PROXY
接続の両方が許可されます(パブリック・エンドポイントとプライベート・エンドポイントの両方でHTTP
接続は許可されません)。 -
UTL_HTTP.set_proxy
APIは、Autonomous Databaseインスタンスがプライベート・エンドポイントにある場合に許可されます。 -
Autonomous Databaseインスタンスがプライベート・エンドポイントにあり、
HTTP_PROXY
またはUTL_HTTP.SET_PROXY
APIを使用する場合:-
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を参照してください。