Note del package PL/SQL per Autonomous Database

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

Package PL/SQL non disponibili

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP Note del pacchetto 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 è 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 d'uso e gli esempi di questi sottoprogrammi modificati:

    • I sottoprogrammi 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 possono essere accessibili solo dagli utenti con privilegi e consentono di configurare i 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 precedentemente esistenti.

      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 su credenziali al server delle directory.

    • Ad esempio:
      • Crea un oggetto credenziali:

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

        Questo crea un oggetto credenziali che crea una coppia nome utente/password memorizzata.

        Per ulteriori informazioni, vedere CREATE_CREDENTIAL Procedura.

        Per ulteriori informazioni, vedere Specifica delle credenziali del job dello 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 innanzitutto 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 un'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 innanzitutto 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 su 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 un diverso schema utente può essere fornito come valore per il parametro CREDENTIAL a condizione che si disponga del privilegio EXECUTE sull'oggetto della credenziale di base a cui punta il sinonimo. Per ulteriori informazioni, vedere Panoramica dei sinonimi.

  • SSL/TLS viene applicato per tutte le comunicazioni che si verificano 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 Maggiore sicurezza 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 valore TRUE.

    Nota

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

    Messaggio di errore Causa possibile

    ORA-31400: Missing or invalid scheduler credential

    Le credenziali passate sono nulle o non valide.

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

DBMS_NETWORK_ACL_ADMIN Note del 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.

UTL_HTTP Note del 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 in un endpoint pubblico. Quando l'istanza di Autonomous Database si trova in 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 quelli privati).

  • L'interfaccia 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 in un endpoint privato e si utilizza l'interfaccia API HTTP_PROXY o UTL_HTTP.SET_PROXY:

    • Le richieste DBMS_CLOUD non soddisfano 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 soddisfano il server proxy impostato con UTL_HTTP.SET_PROXY.

  • Tutti i Web Service devono essere protetti. L'unica porta consentita è 443 quando l'istanza di Autonomous Database si trova su un endpoint pubblico. Quando l'istanza di Autonomous Database si trova in 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 radice e intermedi più comunemente sicuri. Oracle Wallet viene 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 dello scheduler e Procedura CREATE_CREDENTIAL.

  • Per creare gli oggetti delle credenziali sono richiesti i privilegi EXECUTE su DBMS_CLOUD o DWROLE.

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

  • Un sinonimo pubblico o privato che punta a una credenziale in un diverso schema utente può essere fornito come valore per il parametro CREDENTIAL a condizione che si disponga del privilegio EXECUTE sull'oggetto della 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 della 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 Maggiore sicurezza per le connessioni in uscita con endpoint privati.

  • UTL_HTTP Errori

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

    Messaggio di errore Causa possibile

    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) 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 sono disabilitate oppure l'utente non dispone di privilegi sufficienti per le credenziali.

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

UTL_INADDR Note del package PL/SQL

Fornisce note per il pacchetto UTL_INADDR:

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

  • 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 del 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 dello scheduler e Procedura CREATE_CREDENTIAL.

  • Per creare gli oggetti delle credenziali sono richiesti i privilegi EXECUTE su DBMS_CLOUD o DWROLE.

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

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

  • Un sinonimo pubblico o privato che punta a una credenziale in un diverso schema utente può essere fornito come valore per il parametro CREDENTIAL a condizione che si disponga del privilegio EXECUTE sull'oggetto della 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 Maggiore sicurezza per le connessioni in uscita con endpoint privati.

  • UTL_SMTP Errore

    Messaggio di errore Causa possibile

    ORA-29261: Bad argument

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

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

UTL_TCP Note del 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 effettuare 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 Maggiore sicurezza per le connessioni in uscita con endpoint privati.

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