Note sul package PL/SQL per Autonomous Database

Note per i package PL/SQL Oracle Database in Autonomous Database.

Package PL/SQL non disponibili

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP Note package PL/SQL

Fornisce note per il pacchetto DBMS_LDAP:

  • Non è consentito specificare un indirizzo IP nel nome host.

  • L'unica porta consentita è 636.

  • Gli argomenti SSLWRL e SSLWALLETPASSWD della procedura OPEN_SSL vengono ignorati. Il valore predefinito per la proprietà SSLWRL viene impostato sul wallet utilizzato da UTL_HTTP e DBMS_CLOUD per effettuare richieste Web in uscita su Autonomous Database.

  • I sottoprogrammi DBMS_LDAP.SIMPLE_BIND_S e DBMS_LDAP.BIND_S eseguono l'autenticazione al server delle directory.

    I sottoprogrammi DBMS_LDAP.SIMPLE_BIND_S e DBMS_LDAP.BIND_S vengono modificati per accettare gli oggetti credenziali come argomento.

    Di seguito sono riportate le note di utilizzo e gli esempi di questi sottoprogrammi modificati.

    • I programmi secondari SIMPLE_BIND_S e BIND_S modificati consentono di passare gli oggetti delle credenziali per impostare l'autenticazione del server delle directory. Gli oggetti delle credenziali sono oggetti dello schema, pertanto è possibile accedervi solo da utenti con privilegi e consentire di configurare privilegi a livello di schema per controllare le credenziali. Il passaggio delle credenziali dello scheduler è un modo appropriato e sicuro per memorizzare e gestire nome utente/password/chiavi per l'autenticazione.

    • I sottoprogrammi SIMPLE_BIND_S e BIND_S modificati sono un'alternativa sicura e conveniente ai sottoprogrammi SIMPLE_BIND_S e BIND_S esistenti in precedenza.

      Per ulteriori informazioni, vedere FUNCTION simple_bind_s e FUNCTION bind_s.

    • L'argomento CREDENTIAL delle funzioni SIMPLE_BIND_S e BIND_S viene utilizzato per eseguire l'autenticazione basata sulle credenziali al server delle directory.

    • Ad esempio:
      • Creare un oggetto credenziale:

        BEGIN DBMS_CLOUD.CREATE_CREDENTIAL (
            credential_name => 'LDAP_CRED',
            username        => 'web_app_user',
            password        => 'password' );
        END;

        In questo modo viene creato un oggetto credenziale che crea una coppia di nome utente/password memorizzata.

        Per ulteriori informazioni, vedere CREATE_CREDENTIAL Procedure.

        Per ulteriori informazioni, vedere Specifica delle credenziali del job scheduler.

      • Richiama 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;
        

        Il codice in questo esempio richiama per la prima volta la funzione DBMS_LDAP.INIT che inizializza una sessione con un server LDAP e stabilisce una connessione con il server LDAP ldap.example.com alla porta numero 636. Il valore l_ldap_conn nella funzione SIMPLE_BIND_S è l'handle della sessione LDAP e LDAP_CRED è il nome delle credenziali.

      • function bind_s esegue l'autenticazione complessa al server delle directory. Ad esempio:

        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;
        

        Il codice in questo esempio richiama per la prima volta la funzione DBMS_LDAP.INIT che inizializza una sessione con un server LDAP e stabilisce una connessione con il server LDAP ldap.example.com alla porta numero 636. Il valore l_ldap_conn nella funzione BIND_S è l'handle della sessione LDAP e LDAP_CRED è il nome delle credenziali. METH è il metodo di autenticazione. L'unico valore valido è DBMS_LDAP_UTL.AUTH_SIMPLE.

    • Per creare le credenziali dello scheduler sono richiesti i privilegi EXECUTE in DBMS_CLOUD o DWROLE.

    • La credenziale passata deve essere presente nello schema corrente o avere un sinonimo che punta a una credenziale nello schema ed essere nello stato abilitato.

    • Un sinonimo pubblico o privato che punta a una credenziale in uno schema utente diverso può essere fornito come valore per il parametro CREDENTIAL a condizione che si disponga del privilegio EXECUTE sull'oggetto credenziale di base a cui punta il sinonimo. Per ulteriori informazioni, vedere Panoramica dei sinonimi.

  • SSL/TLS viene applicato per tutte le comunicazioni tra il server LDAP e Autonomous Database.

  • Quando l'istanza di Autonomous Database è configurata con un endpoint privato, impostare il parametro del database ROUTE_OUTBOUND_CONNECTIONS su 'PRIVATE_ENDPOINT' per specificare che tutte le connessioni LDAP in uscita sono soggette alle regole di uscita della VCN dell'endpoint privato dell'istanza di Autonomous Database. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.

  • Per utilizzare DBMS_LDAP per una connessione su un endpoint privato, utilizzare DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE e specificare il parametro private_target con il valore TRUE.

    Nota

    Se si imposta ROUTE_OUTBOUND_CONNECTIONS su PRIVATE_ENDPOINT, l'impostazione del parametro private_target su TRUE non è obbligatoria in questa API. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.
  • DBMS_LDAP Errore

    Messaggio di errore Causa potenziale

    ORA-31400: Missing or invalid scheduler credential

    Le credenziali passate sono NULL o non valide.

Per ulteriori informazioni, vedere DBMS_LDAP in PL/SQL Packages and Types Reference.

DBMS_NETWORK_ACL_ADMIN Note package PL/SQL

Fornisce note per il pacchetto DBMS_NETWORK_ACL_ADMIN:

  • La concessione dei privilegi ACL sugli indirizzi IP non è consentita.

  • L'ACL HTTP_PROXY è consentita sugli endpoint privati.

Per ulteriori informazioni, vedere DBMS_NETWORK_ACL_ADMIN in PL/SQL Packages and Types Reference.

DBMS_SCHEDULER Note del pacchetto

Fornisce note per il pacchetto DBMS_SCHEDULER.

In Autonomous Database la procedura DBMS_SCHEDULER.CREATE_JOB supporta i tipi di job PLSQL_BLOCK e STORED_PROCEDURE per il parametro job_type.

L'uso di un elemento job_type non supportato potrebbe indicare i messaggi riportati di seguito.

ORA-27399: job type EXECUTABLE requires the CREATE EXTERNAL JOB privilege
ORA-27369: JOB OF TYPE EXECUTABLE FAILED WITH EXIT CODE: OPERATION NOT PERMITTED

Per ulteriori informazioni, vedere Classi processo predefinite con Oracle Scheduler e DBMS_SCHEDULER.

UTL_HTTP Note package PL/SQL

Fornisce note per il pacchetto UTL_HTTP:

  • Le connessioni tramite indirizzi IP non sono consentite.

  • È consentito solo HTTPS quando l'istanza di Autonomous Database si trova su un endpoint pubblico. Quando l'istanza di Autonomous Database si trova su un endpoint privato, sono consentite sia le connessioni HTTPS che HTTP_PROXY (le connessioni HTTP non sono consentite sia per gli endpoint pubblici che per gli endpoint privati).

  • L'API UTL_HTTP.set_proxy è consentita quando l'istanza di Autonomous Database si trova in un endpoint privato.

  • Quando l'istanza di Autonomous Database si trova su un endpoint privato e si utilizza HTTP_PROXY o l'API UTL_HTTP.SET_PROXY:

    • Le richieste DBMS_CLOUD non rispettano il server proxy impostato con UTL_HTTP.SET_PROXY. Sono inclusi DBMS_CLOUD.SEND_REQUEST e tutti gli accessi allo storage degli oggetti per le tabelle esterne DBMS_CLOUD definite con DBMS_CLOUD.CREATE_EXTERNAL_TABLE, DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE o DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    • Le richieste APEX_WEB_SERVICE non rispettano il server proxy impostato con UTL_HTTP.SET_PROXY.

  • Tutti i servizi Web devono essere protetti. L'unica porta consentita è la 443 quando l'istanza di Autonomous Database si trova su un endpoint pubblico. Quando l'istanza di Autonomous Database si trova su un endpoint privato, questa limitazione non si applica.

    L'istanza di Autonomous Database è preconfigurata con un Oracle Wallet che contiene più di 90 dei certificati SSL root e intermedi più comunemente accettati. Oracle Wallet è gestito centralmente. È possibile configurare UTL_HTTP in modo che utilizzi un wallet per un sito protetto mediante certificati SSL autofirmati. Per ulteriori informazioni, vedere Utilizzare un wallet gestito dal cliente per le chiamate esterne con UTL_HTTP.

  • La procedura SET_AUTHENTICATION_FROM_WALLET non è consentita.

  • Gli argomenti WALLET_PATH e WALLET_PASSWORD per le procedure CREATE_REQUEST_CONTEXT, REQUEST e REQUEST_PIECES vengono ignorati.

  • L'argomento CREDENTIAL della procedura SET_CREDENTIAL viene utilizzato per passare l'oggetto credenziale come input alla procedura. Per ulteriori informazioni, vedere Specifica delle credenziali del job Scheduler e CREATE_CREDENTIAL Procedure.

  • Per creare oggetti credenziali sono necessari i privilegi EXECUTE su DBMS_CLOUD o DWROLE.

  • Le credenziali passate devono essere presenti nello schema utente corrente ed essere nello stato abilitato.

  • Un sinonimo pubblico o privato che punta a una credenziale in uno schema utente diverso può essere fornito come valore per il parametro CREDENTIAL a condizione che si disponga del privilegio EXECUTE sull'oggetto credenziale di base a cui punta il sinonimo. Per ulteriori informazioni, vedere Panoramica dei sinonimi.

  • Impossibile modificare la configurazione di Oracle Wallet. Tutti gli argomenti per la procedura SET_WALLET vengono ignorati.

  • Quando l'istanza di Autonomous Database è configurata con un endpoint privato, impostare il parametro del database ROUTE_OUTBOUND_CONNECTIONS su 'PRIVATE_ENDPOINT' per specificare che tutte le connessioni UTL_HTTP in uscita sono soggette alle regole di uscita della VCN dell'endpoint privato dell'istanza di Autonomous Database. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.

  • UTL_HTTP Errori

    La tabella seguente mostra i messaggi di errore e le possibili cause di tali messaggi quando si utilizza UTL_HTTP:

    Messaggio di errore Causa potenziale

    ORA-12545: Connect failed because target host or object does not exist

    L'host o l'oggetto di destinazione non esiste o è privato.

    ORA-24247: network access denied by access control list (ACL)

    Impossibile trovare la lista di controllo dell'accesso (ACL, Access Control List) per l'host specificato.

    ORA-29024: Certificate validation failure

    Il certificato dell'host non esiste o non è incluso nei certificati supportati.

    ORA-29261: Bad argument

    Le credenziali passate non sono valide o disabilitate oppure l'utente non dispone di privilegi sufficienti sulla credenziale.

Per ulteriori informazioni, vedere UTL_HTTP in PL/SQL Packages and Types Reference.

UTL_INADDR Note package PL/SQL

Fornisce note per il pacchetto UTL_INADDR:

  • Il package UTL_INADDR è disponibile per l'uso in un'istanza di Autonomous Database con un endpoint privato (PE, Private Endpoint).

  • La funzione GET_HOST_ADDRESS è disponibile.

  • La funzione GET_HOST_NAME non è disponibile.

Per ulteriori informazioni, vedere UTL_INADDR in PL/SQL Packages and Types Reference.

UTL_SMTP Note package PL/SQL

Fornisce note per il pacchetto UTL_SMTP:

  • Gli endpoint SMTP pubblici possono essere utilizzati purché l'instradamento venga eseguito tramite l'endpoint RCE (Inverse Connection Endpoint) del cliente.

  • La posta con un indirizzo IP nel nome host non è consentita.

  • Le uniche porte consentite sono 25 e 587.

  • L'argomento CREDENTIAL della funzione SET_CREDENTIAL viene utilizzato per passare l'oggetto delle credenziali dello scheduler come input alla funzione. Per ulteriori informazioni, vedere Specifica delle credenziali del job Scheduler e CREATE_CREDENTIAL Procedure.

  • Per creare oggetti credenziali sono necessari i privilegi EXECUTE su DBMS_CLOUD o DWROLE.

  • L'argomento CREDENTIAL della procedura SET_CREDENTIAL viene utilizzato per passare l'oggetto oggetti credenziali come input alla procedura. Per ulteriori informazioni, vedere Specifica delle credenziali del job scheduler.

  • Le credenziali passate devono essere presenti nello schema utente corrente ed essere nello stato abilitato.

  • Un sinonimo pubblico o privato che punta a una credenziale in uno schema utente diverso può essere fornito come valore per il parametro CREDENTIAL a condizione che si disponga del privilegio EXECUTE sull'oggetto credenziale di base a cui punta il sinonimo. Per ulteriori informazioni, vedere Panoramica dei sinonimi.

  • Quando l'istanza di Autonomous Database è configurata con un endpoint privato, impostare il parametro del database ROUTE_OUTBOUND_CONNECTIONS su 'PRIVATE_ENDPOINT' per specificare che tutte le connessioni UTL_SMTP in uscita sono soggette alle regole di uscita della VCN dell'endpoint privato dell'istanza di Autonomous Database. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.

  • UTL_SMTP Errore

    Messaggio di errore Causa potenziale

    ORA-29261: Bad argument

    Le credenziali passate non sono valide o disabilitate oppure l'utente non dispone di privilegi sufficienti sulla credenziale.

Per ulteriori informazioni, vedere UTL_SMTP in PL/SQL Packages and Types Reference.

UTL_TCP Note package PL/SQL

Fornisce note per il pacchetto UTL_TCP:

  • L'indirizzo IP non è consentito nel nome host.

  • Le uniche porte consentite sono: 443 (HTTP) 25 e 587 (SMTP).

  • Per la porta 443, sono consentiti solo URL HTTPS.

  • Gli argomenti WALLET_PATH e WALLET_PASSWORD per la procedura OPEN_CONNECTION vengono ignorati. Il valore predefinito per le proprietà WALLET_PATH e WALLET_PASSWORD viene impostato sul wallet utilizzato da UTL_HTTP e DBMS_CLOUD per l'esecuzione di richieste Web in uscita su Autonomous Database.

  • SSL/TLS viene applicato per tutte le comunicazioni che si verificano su connessioni TCP/IP.

  • Quando l'istanza di Autonomous Database è configurata con un endpoint privato, impostare il parametro del database ROUTE_OUTBOUND_CONNECTIONS su 'PRIVATE_ENDPOINT' per specificare che tutte le connessioni UTL_TCP in uscita sono soggette alle regole di uscita della VCN dell'endpoint privato dell'istanza di Autonomous Database. Per ulteriori informazioni, vedere Sicurezza avanzata per le connessioni in uscita con endpoint privati.

Per ulteriori informazioni, vedere UTL_TCP in PL/SQL Packages and Types Reference.