Notas del paquete PL/SQL para Autonomous Database

Notas para los paquetes PL/SQL de Oracle Database en Autonomous Database.

Paquetes PL/SQL no disponibles

  • DBMS_DEBUG_JDWP

  • DBMS_DEBUG_JDWP_CUSTOM

DBMS_LDAP Notas del Paquete PL/SQL

Proporciona notas para el paquete DBMS_LDAP:

  • No está permitido especificar una dirección IP en el nombre de host.

  • El único puerto permitido es 636.

  • Los argumentos SSLWRL y SSLWALLETPASSWD para el procedimiento OPEN_SSL se ignoran. El valor por defecto de la propiedad SSLWRL se define en la cartera que utilizan UTL_HTTP y DBMS_CLOUD para realizar solicitudes web salientes en Autonomous Database.

  • Los subprogramas DBMS_LDAP.SIMPLE_BIND_S y DBMS_LDAP.BIND_S realizan la autenticación en el servidor de directorios.

    Los subprogramas DBMS_LDAP.SIMPLE_BIND_S y DBMS_LDAP.BIND_S se modifican para aceptar objetos de credenciales como argumento.

    A continuación se muestran las notas de uso y los ejemplos de estos subprogramas modificados:

    • Los subprogramas SIMPLE_BIND_S y BIND_S modificados permiten transferir objetos de credenciales para definir la autenticación del servidor de directorios. Los objetos de credenciales son objetos de esquema, por lo que solo pueden acceder a ellos los usuarios con privilegios y le permiten configurar privilegios de nivel de esquema para controlar el acceso a las credenciales. La transferencia de credenciales del programador es una forma adecuada y segura de almacenar y gestionar el nombre de usuario, la contraseña o las claves para la autenticación.

    • Los subprogramas SIMPLE_BIND_S y BIND_S modificados son una alternativa segura y conveniente a los subprogramas SIMPLE_BIND_S y BIND_S que existían anteriormente.

      Consulte FUNCTION simple_bind_s y FUNCTION bind_s para obtener más información.

    • El argumento CREDENTIAL de las funciones SIMPLE_BIND_S y BIND_S se utiliza para realizar la autenticación basada en credenciales en el servidor de directorios.

    • Por ejemplo:
      • Cree un objeto de credencial:

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

        Esto crea un objeto de credencial que crea un par de nombre de usuario/contraseña almacenado.

        Consulte CREATE_CREDENTIAL Procedure para obtener más información.

        Consulte Especificación de Credenciales de Trabajo del Planificador para obtener más información.

      • Llame a 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;
        

        El código de este ejemplo primero llama a la función DBMS_LDAP.INIT que inicializa una sesión con un servidor LDAP y establece una conexión con el servidor LDAP ldap.example.com en el número de puerto 636. El valor l_ldap_conn en la función SIMPLE_BIND_S es el identificador de sesión LDAP y LDAP_CRED es el nombre de las credenciales.

      • function bind_s realiza una autenticación compleja en el servidor de directorios. Por ejemplo:

        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;
        

        El código de este ejemplo primero llama a la función DBMS_LDAP.INIT que inicializa una sesión con un servidor LDAP y establece una conexión con el servidor LDAP ldap.example.com en el número de puerto 636. El valor l_ldap_conn en la función BIND_S es el identificador de sesión LDAP y LDAP_CRED es el nombre de las credenciales. METH es el método de autenticación. El único valor válido es DBMS_LDAP_UTL.AUTH_SIMPLE.

    • Se necesitan los privilegios EXECUTE en DBMS_CLOUD o DWROLE para crear las credenciales del programador.

    • La credencial transferida debe estar presente en el esquema actual o tener un sinónimo que apunte a una credencial en el esquema y tenga el estado activado.

    • Un sinónimo público o privado que apunta a una credencial en un esquema de usuario diferente se puede proporcionar como un valor para el parámetro CREDENTIAL siempre que tenga el privilegio EXECUTE en el objeto de credencial base al que apunta el sinónimo. Consulte Visión general de sinónimos para obtener más información.

  • SSL/TLS se aplica para todas las comunicaciones entre el servidor LDAP y Autonomous Database.

  • Cuando la instancia de Autonomous Database esté configurada con un punto final privado, defina el parámetro de base de datos ROUTE_OUTBOUND_CONNECTIONS en 'PRIVATE_ENDPOINT' para especificar que todas las conexiones LDAP salientes estén sujetas a las reglas de salida de la VCN del punto final privado de la instancia de Autonomous Database. Consulte Seguridad mejorada para conexiones salientes con puntos finales privados para obtener más información.

  • Para utilizar DBMS_LDAP para una conexión en un punto final privado, utilice DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE y especifique el parámetro private_target con el valor TRUE.

    Nota

    Si define ROUTE_OUTBOUND_CONNECTIONS en PRIVATE_ENDPOINT, no es necesario definir el parámetro private_target en TRUE en esta API. Consulte Seguridad mejorada para conexiones salientes con puntos finales privados para obtener más información.
  • DBMS_LDAP Error

    Mensaje de Error Causa potencial

    ORA-31400: Missing or invalid scheduler credential

    Las credenciales transferidas son NULL o no son válidas.

Consulte DBMS_LDAP en Referencia de tipos y paquetes PL/SQL para obtener más información.

DBMS_NETWORK_ACL_ADMIN Notas del Paquete PL/SQL

Proporciona notas para el paquete DBMS_NETWORK_ACL_ADMIN:

  • No se permite otorgar privilegios de ACL en direcciones IP.

  • La ACL HTTP_PROXY está permitida en puntos finales privados.

Consulte DBMS_NETWORK_ACL_ADMIN en Referencia de tipos y paquetes PL/SQL para obtener más información.

Notas del paquete DBMS_SCHEDULER

Proporciona notas para el paquete DBMS_SCHEDULER.

En Autonomous Database, el procedimiento DBMS_SCHEDULER.CREATE_JOB soporta los tipos de trabajo PLSQL_BLOCK y STORED_PROCEDURE para el parámetro job_type.

Con un job_type no soportado, puede ver mensajes como los siguientes:

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

Consulte Clases de Trabajo Predefinidas con Oracle Scheduler y DBMS_SCHEDULER para obtener más información.

UTL_HTTP Notas del Paquete PL/SQL

Proporciona notas para el paquete UTL_HTTP:

  • Las conexiones mediante direcciones IP no están permitidas.

  • Solo se permite HTTPS cuando la instancia de Autonomous Database está en un punto final público. Cuando la instancia de Autonomous Database está en un punto final privado, se permiten las conexiones HTTPS y HTTP_PROXY (las conexiones HTTP no están permitidas para los puntos finales públicos y los puntos finales privados).

  • La API UTL_HTTP.set_proxy se permite cuando la instancia de Autonomous Database está en un punto final privado.

  • Cuando la instancia de Autonomous Database está en un punto final privado y utiliza HTTP_PROXY o la API UTL_HTTP.SET_PROXY:

    • Las solicitudes DBMS_CLOUD no respetan el servidor proxy definido con UTL_HTTP.SET_PROXY. Esto incluye DBMS_CLOUD.SEND_REQUEST y todo el acceso de almacenamiento de objetos para las tablas externas DBMS_CLOUD que defina con DBMS_CLOUD.CREATE_EXTERNAL_TABLE, DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE o DBMS_CLOUD.CREATE_HYBRID_PART_TABLE.

    • Las solicitudes APEX_WEB_SERVICE no respetan el servidor proxy definido con UTL_HTTP.SET_PROXY.

  • Todos los servicios web deben estar protegidos. El único puerto permitido es 443 cuando la instancia de Autonomous Database está en un punto final público. Cuando la instancia de Autonomous Database está en un punto final privado, esta restricción no se aplica.

    La instancia de Autonomous Database está preconfigurada con una instancia de Oracle Wallet que contiene más de 90 de los certificados SSL intermedios y raíz de confianza más comunes. Oracle Wallet se gestiona de forma centralizada. Puede configurar UTL_HTTP para que utilice una cartera para un sitio protegido mediante certificados SSL autofirmados. Consulte Uso de una cartera gestionada por el cliente para llamadas externas con UTL_HTTP para obtener más información.

  • El procedimiento SET_AUTHENTICATION_FROM_WALLET no está permitido.

  • Los argumentos WALLET_PATH y WALLET_PASSWORD para los procedimientos CREATE_REQUEST_CONTEXT, REQUEST y REQUEST_PIECES se ignoran.

  • El argumento CREDENTIAL del procedimiento SET_CREDENTIAL se utiliza para transferir el objeto de credencial como entrada al procedimiento. Consulte Especificación de credenciales de trabajo del programador y Procedimiento CREATE_CREDENTIAL para obtener más información.

  • Los privilegios EXECUTE de DBMS_CLOUD o DWROLE son necesarios para crear objetos de credenciales.

  • Las credenciales transferidas deben estar presentes en el esquema de usuario actual y estar en estado activado.

  • Un sinónimo público o privado que apunta a una credencial en un esquema de usuario diferente se puede proporcionar como un valor para el parámetro CREDENTIAL siempre que tenga el privilegio EXECUTE en el objeto de credencial base al que apunta el sinónimo. Consulte Visión general de sinónimos para obtener más información.

  • No se puede modificar la configuración de Oracle Wallet. Se ignoran todos los argumentos para el procedimiento SET_WALLET.

  • Cuando la instancia de Autonomous Database esté configurada con un punto final privado, defina el parámetro de base de datos ROUTE_OUTBOUND_CONNECTIONS en 'PRIVATE_ENDPOINT' para especificar que todas las conexiones UTL_HTTP salientes estén sujetas a las reglas de salida de la VCN del punto final privado de la instancia de Autonomous Database. Consulte Seguridad mejorada para conexiones salientes con puntos finales privados para obtener más información.

  • UTL_HTTP Errores

    En la siguiente tabla se muestran los mensajes de error y las posibles causas de estos mensajes de error al utilizar UTL_HTTP:

    Mensaje de Error Causa potencial

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

    El host u objeto de destino no existe o es privado.

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

    No se pudo encontrar la lista de control de acceso (ACL) para el host especificado.

    ORA-29024: Certificate validation failure

    El certificado del host no existe o no está entre los certificados admitidos.

    ORA-29261: Bad argument

    Las credenciales transferidas no son válidas o están desactivadas o el usuario no tiene suficientes privilegios en la credencial.

Consulte UTL_HTTP en Referencia de tipos y paquetes PL/SQL para obtener más información.

UTL_INADDR Notas del Paquete PL/SQL

Proporciona notas para el paquete UTL_INADDR:

  • El paquete UTL_INADDR está disponible para su uso en una instancia de Autonomous Database con un punto final privado (PE).

  • La función GET_HOST_ADDRESS está disponible.

  • La función GET_HOST_NAME no está disponible.

Consulte UTL_INADDR en Referencia de tipos y paquetes PL/SQL para obtener más información.

UTL_SMTP Notas del Paquete PL/SQL

Proporciona notas para el paquete UTL_SMTP:

  • Los puntos finales SMTP públicos se pueden utilizar siempre que el enrutamiento se realice mediante el punto final de conexión inversa (RCE) del cliente.

  • No se permite el correo con una dirección IP en el nombre de host.

  • Los únicos puertos permitidos son 25 y 587.

  • El argumento CREDENTIAL de la función SET_CREDENTIAL se utiliza para transferir el objeto de credenciales del programador como entrada a la función. Consulte Especificación de credenciales de trabajo del programador y Procedimiento CREATE_CREDENTIAL para obtener más información.

  • Los privilegios EXECUTE de DBMS_CLOUD o DWROLE son necesarios para crear objetos de credenciales.

  • El argumento CREDENTIAL del procedimiento SET_CREDENTIAL se utiliza para transferir el objeto de objetos de credenciales como entrada al procedimiento. Consulte Especificación de Credenciales de Trabajo del Planificador para obtener más información.

  • Las credenciales transferidas deben estar presentes en el esquema de usuario actual y estar en estado activado.

  • Un sinónimo público o privado que apunta a una credencial en un esquema de usuario diferente se puede proporcionar como un valor para el parámetro CREDENTIAL siempre que tenga el privilegio EXECUTE en el objeto de credencial base al que apunta el sinónimo. Consulte Visión general de sinónimos para obtener más información.

  • Cuando la instancia de Autonomous Database esté configurada con un punto final privado, defina el parámetro de base de datos ROUTE_OUTBOUND_CONNECTIONS en 'PRIVATE_ENDPOINT' para especificar que todas las conexiones UTL_SMTP salientes estén sujetas a las reglas de salida de la VCN del punto final privado de la instancia de Autonomous Database. Consulte Seguridad mejorada para conexiones salientes con puntos finales privados para obtener más información.

  • UTL_SMTP Error

    Mensaje de Error Causa potencial

    ORA-29261: Bad argument

    Las credenciales transferidas no son válidas o están desactivadas o el usuario no tiene suficientes privilegios en la credencial.

Consulte UTL_SMTP en Referencia de tipos y paquetes PL/SQL para obtener más información.

UTL_TCP Notas del Paquete PL/SQL

Proporciona notas para el paquete UTL_TCP:

  • La dirección IP no está permitida en el nombre de host.

  • Los únicos puertos permitidos son: 443 (HTTP) 25 y 587 (SMTP).

  • Para el puerto 443, solo se permiten URL HTTPS.

  • Los argumentos WALLET_PATH y WALLET_PASSWORD para el procedimiento OPEN_CONNECTION se ignoran. El valor por defecto para las propiedades WALLET_PATH y WALLET_PASSWORD se define en la cartera que utilizan UTL_HTTP y DBMS_CLOUD para realizar solicitudes web salientes en Autonomous Database.

  • SSL/TLS se aplica para todas las comunicaciones que se producen a través de conexiones TCP/IP.

  • Cuando la instancia de Autonomous Database esté configurada con un punto final privado, defina el parámetro de base de datos ROUTE_OUTBOUND_CONNECTIONS en 'PRIVATE_ENDPOINT' para especificar que todas las conexiones UTL_TCP salientes estén sujetas a las reglas de salida de la VCN del punto final privado de la instancia de Autonomous Database. Consulte Seguridad mejorada para conexiones salientes con puntos finales privados para obtener más información.

Consulte UTL_TCP en Referencia de tipos y paquetes PL/SQL para obtener más información.