PL/SQL Package Notes for Autonomous AI Database
Notes for Oracle Database PL/SQL packages in Autonomous AI Database.
Unavailable PL/SQL Packages
-
DBMS_DEBUG_JDWP -
DBMS_DEBUG_JDWP_CUSTOM
DBMS_LDAP PL/SQL Package Notes
Provides notes for the DBMS_LDAP package:
-
Specifying an IP address in the host name is not allowed.
-
The only allowed port is 636.
-
The
SSLWRLandSSLWALLETPASSWDarguments to theOPEN_SSLprocedure are ignored. The default value for theSSLWRLproperty is set to the wallet that is used byUTL_HTTPandDBMS_CLOUDfor making outbound web requests on Autonomous AI Database. -
The
DBMS_LDAP.SIMPLE_BIND_SandDBMS_LDAP.BIND_Ssubprograms perform authentication to the directory server.The
DBMS_LDAP.SIMPLE_BIND_SandDBMS_LDAP.BIND_Ssubprograms are modified to accept credential objects as an argument.Following are the usage notes and examples of these modified subprograms:
-
The modified
SIMPLE_BIND_SandBIND_Ssubprograms enable you to pass credential objects to set directory server authentication. Credential objects are schema objects, hence they can be accessed only by privileged users and enable you to configure schema-level privileges to access control the credentials. Passing scheduler credentials is an appropriate and secure way to store and manage username/password/keys for authentication. -
The modified
SIMPLE_BIND_SandBIND_Ssubprograms are a secure and convenient alternative to previously existedSIMPLE_BIND_SandBIND_Ssubprogram.See FUNCTION simple_bind_s and FUNCTION bind_s for more information.
-
The
CREDENTIALargument of theSIMPLE_BIND_SandBIND_Sfunctions is used to perform credential based authentication to the directory server. -
For example:
-
Create a credential object:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL ( credential_name => 'LDAP_CRED', username => 'web_app_user', password => 'password' ); END;This creates a credential object which creates a stored username/password pair.
See CREATE_CREDENTIAL Procedure for more information.
See Specifying Scheduler Job Credentials for more information.
-
Invoke
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;The code in this example first invokes the
DBMS_LDAP.INITfunction which initializes a session with an LDAP server and establishes a connection with the LDAP serverldap.example.comat port number636. The valuel_ldap_connin theSIMPLE_BIND_Sfunction is the LDAP session handle andLDAP_CREDis the credentials name. -
The
function bind_sperforms complex authentication to the directory server. For example: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;The code in this example first invokes the
DBMS_LDAP.INITfunction which initializes a session with an LDAP server and establishes a connection with the LDAP serverldap.example.comat port number636. The valuel_ldap_connin theBIND_Sfunction is the LDAP session handle andLDAP_CREDis the credentials name.METHis the authentication method. The only valid value isDBMS_LDAP_UTL.AUTH_SIMPLE.
-
-
The
EXECUTEprivileges onDBMS_CLOUDorDWROLEis required to create scheduler credentials. -
The passed credential must be present in the current schema or have a synonym pointing to a credential in the schema and be in the enabled state.
-
A public or private synonym that points to a credential in a different user schema can be supplied as a value for the
CREDENTIALparameter provided you have theEXECUTEprivilege on the base credential object pointed to by the synonym. See Overview of Synonyms for more information.
-
-
SSL/TLS is enforced for all communication happening between LDAP server and Autonomous AI Database.
-
When your Autonomous AI Database instance is configured with a private endpoint, set the
ROUTE_OUTBOUND_CONNECTIONSdatabase parameter to 'PRIVATE_ENDPOINT' to specify that all outgoing LDAP connections are subject to the Autonomous AI Database instance private endpoint VCN's egress rules. See Enhanced Security for Outbound Connections with Private Endpoints for more information. -
To use
DBMS_LDAPfor a connection on a private endpoint, useDBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACEand specify theprivate_targetparameter with valueTRUE.Note:
If you setROUTE_OUTBOUND_CONNECTIONStoPRIVATE_ENDPOINT, setting theprivate_targetparameter toTRUEis not required in this API. See Enhanced Security for Outbound Connections with Private Endpoints for more information. -
DBMS_LDAPErrorError Message Potential Cause ORA-31400: Missing or invalid scheduler credentialPassed credentials are NULL or invalid.
See DBMS_LDAP in PL/SQL Packages and Types Reference for more information.
DBMS_NETWORK_ACL_ADMIN PL/SQL Package Notes
Provides notes for the DBMS_NETWORK_ACL_ADMIN package:
-
Granting ACL privileges on IP addresses is not allowed.
-
The
HTTP_PROXYACL is allowed on private endpoints.
See DBMS_NETWORK_ACL_ADMIN in PL/SQL Packages and Types Reference for more information.
DBMS_SCHEDULER Package Notes
Provides notes for the DBMS_SCHEDULER package.
In Autonomous AI Database the
DBMS_SCHEDULER.CREATE_JOB procedure supports PLSQL_BLOCK
and STORED_PROCEDURE job types for the job_type
parameter.
Using an unsupported job_type, you may see messages such as the
following:
ORA-27399: job type EXECUTABLE requires the CREATE EXTERNAL JOB privilege
ORA-27369: JOB OF TYPE EXECUTABLE FAILED WITH EXIT CODE: OPERATION NOT PERMITTED
See Predefined Job Classes with Oracle Scheduler and DBMS_SCHEDULER for more information.
UTL_HTTP PL/SQL Package Notes
Provides notes for the UTL_HTTP package:
-
Connections through IP addresses are not allowed.
-
Only
HTTPSis allowed when the Autonomous AI Database instance is on a public endpoint. When the Autonomous AI Database instance is on a private endpoint, bothHTTPSandHTTP_PROXYconnections are allowed (HTTPconnections are disallowed for both public endpoints and private endpoints). -
The
UTL_HTTP.set_proxyAPI is allowed when the Autonomous AI Database instance is on a private endpoint. -
When the Autonomous AI Database instance is on a private endpoint and you use
HTTP_PROXYor theUTL_HTTP.SET_PROXYAPI:-
DBMS_CLOUDrequests do not honor the proxy server you set withUTL_HTTP.SET_PROXY. This includesDBMS_CLOUD.SEND_REQUESTand all object storage access forDBMS_CLOUDexternal tables that you define withDBMS_CLOUD.CREATE_EXTERNAL_TABLE,DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE, orDBMS_CLOUD.CREATE_HYBRID_PART_TABLE. -
APEX_WEB_SERVICErequests do not honor the proxy server you set withUTL_HTTP.SET_PROXY.
-
-
All web services must be secured. The only allowed port is 443 when the Autonomous AI Database instance is on a public endpoint. When the Autonomous AI Database instance is on a private endpoint this restriction does not apply.
Your Autonomous AI Database instance is preconfigured with an Oracle Wallet that contains more than 90 of the most commonly trusted root and intermediate SSL certificates. The Oracle Wallet is centrally managed. You can configure
UTL_HTTPto use a wallet for a site that is protected using self-signed SSL certificates. See Use a Customer-Managed Wallet for External Calls with UTL_HTTP for more information. -
The
SET_AUTHENTICATION_FROM_WALLETprocedure is disallowed. -
The
WALLET_PATHandWALLET_PASSWORDarguments for theCREATE_REQUEST_CONTEXT,REQUEST, andREQUEST_PIECESprocedures are ignored. -
The
CREDENTIALargument of theSET_CREDENTIALprocedure is used to pass the credential object as an input to the procedure. See Specifying Scheduler Job Credentials and CREATE_CREDENTIAL Procedure for more information. -
The
EXECUTEprivileges onDBMS_CLOUDorDWROLEis required to create credential objects. -
The passed credentials must be present in the current user schema and be in the enabled state.
-
A public or private synonym that points to a credential in a different user schema can be supplied as a value for the
CREDENTIALparameter provided you have theEXECUTEprivilege on the base credential object pointed to by the synonym. See Overview of Synonyms for more information. -
Oracle Wallet configuration cannot be altered. All arguments for
SET_WALLETprocedure are ignored. -
When your Autonomous AI Database instance is configured with a private endpoint, set the
ROUTE_OUTBOUND_CONNECTIONSdatabase parameter to 'PRIVATE_ENDPOINT' to specify that all outgoingUTL_HTTPconnections are subject to the Autonomous AI Database instance private endpoint VCN's egress rules. See Enhanced Security for Outbound Connections with Private Endpoints for more information. -
UTL_HTTPErrorsThe following table shows error messages and possible causes for these error messages when using
UTL_HTTP:Error Message Potential Cause ORA-12545: Connect failed because target host or object does not existTarget host or object does not exist or it is private.
ORA-24247: network access denied by access control list (ACL)Access control list (ACL) for the specified host could not be found.
ORA-29024: Certificate validation failureCertificate of the host does not exist or is not among the supported certificates.
ORA-29261: Bad argumentPassed credentials are invalid or disabled or the user does not have sufficient privileges on the credential.
See UTL_HTTP in PL/SQL Packages and Types Reference for more information.
UTL_INADDR PL/SQL Package Notes
Provides notes for the UTL_INADDR package:
-
The
UTL_INADDRpackage is available for use on an Autonomous AI Database instance with a private endpoint (PE). -
The
GET_HOST_ADDRESSfunction is available. -
The
GET_HOST_NAMEfunction is not available.
See UTL_INADDR in PL/SQL Packages and Types Reference for more information.
UTL_SMTP PL/SQL Package Notes
Provides notes for the UTL_SMTP package:
-
Public SMTP endpoints can be used as long as routing is done through customer reverse connection endpoint (RCE).
-
Mail with an IP address in the host name is not allowed.
-
The only allowed ports are 25 and 587.
-
The
CREDENTIALargument of theSET_CREDENTIALfunction is used to pass the scheduler credentials object as an input to the function. See Specifying Scheduler Job Credentials and CREATE_CREDENTIAL Procedure for more information. -
The
EXECUTEprivileges onDBMS_CLOUDorDWROLEis required to create credential objects. -
The
CREDENTIALargument of theSET_CREDENTIALprocedure is used to pass the credential objects object as an input to the procedure. See Specifying Scheduler Job Credentials for more information. -
The passed credentials must be present in the current user schema and be in the enabled state.
-
A public or private synonym that points to a credential in a different user schema can be supplied as a value for the
CREDENTIALparameter provided you have theEXECUTEprivilege on the base credential object pointed to by the synonym. See Overview of Synonyms for more information. -
When your Autonomous AI Database instance is configured with a private endpoint, set the
ROUTE_OUTBOUND_CONNECTIONSdatabase parameter to 'PRIVATE_ENDPOINT' to specify that all outgoingUTL_SMTPconnections are subject to the Autonomous AI Database instance private endpoint VCN's egress rules. See Enhanced Security for Outbound Connections with Private Endpoints for more information. -
UTL_SMTPErrorError Message Potential Cause ORA-29261: Bad argumentPassed credentials are invalid or disabled or the user does not have sufficient privileges on the credential.
See UTL_SMTP in PL/SQL Packages and Types Reference for more information.
UTL_TCP PL/SQL Package Notes
Provides notes for the UTL_TCP package:
-
The IP address is not allowed in the host name.
-
The only allowed ports are: 443 (HTTP) 25 and 587 (SMTP).
-
For port 443, only HTTPS URLs are allowed.
-
The
WALLET_PATHandWALLET_PASSWORDarguments for theOPEN_CONNECTIONprocedure are ignored. The default value for theWALLET_PATHandWALLET_PASSWORDproperty are set to the wallet that is used byUTL_HTTPandDBMS_CLOUDfor making outbound web requests on Autonomous AI Database. -
SSL/TLS is enforced for all communication happening over TCP/IP connections.
-
When your Autonomous AI Database instance is configured with a private endpoint, set the
ROUTE_OUTBOUND_CONNECTIONSdatabase parameter to 'PRIVATE_ENDPOINT' to specify that all outgoingUTL_TCPconnections are subject to the Autonomous AI Database instance private endpoint VCN's egress rules. See Enhanced Security for Outbound Connections with Private Endpoints for more information.
See UTL_TCP in PL/SQL Packages and Types Reference for more information.
Parent topic: Notes for Users Migrating from Other Oracle Databases