Notas sobre los paquetes PL/SQL para Autonomous Database
Notes for Oracle Database PL/SQL packages in Autonomous Database.
Paquetes PL/SQL no disponibles
-
DBMS_DEBUG_JDWP
-
DBMS_DEBUG_JDWP_CUSTOM
-
UTL_INADDR
Notas sobre los paquetes PL/SQL
-
DBMS_LDAP
-
No está permitido especificar una dirección IP en el nombre de host.
-
El único puerto permitido es el 636.
-
Los argumentos
SSLWRL
ySSLWALLETPASSWD
del procedimientoOPEN_SSL
se ignoran. El valor por defecto para la propiedadSSLWRL
se define en la cartera que utilizanUTL_HTTP
yDBMS_CLOUD
para realizar solicitudes web salientes en Autonomous Database. -
Los subprogramas
DBMS_LDAP.SIMPLE_BIND_S
yDBMS_LDAP.BIND_S
realizan la autenticación en el servidor de directorios.Los subprogramas
DBMS_LDAP.SIMPLE_BIND_S
yDBMS_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
yBIND_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 los usuarios con privilegios pueden acceder a ellos y permiten configurar privilegios de nivel de esquema para acceder al control de credenciales. La transferencia de credenciales del programador es una forma adecuada y segura de almacenar y gestionar el nombre de usuario, la contraseña y las claves para la autenticación. -
Los subprogramas
SIMPLE_BIND_S
yBIND_S
modificados son una alternativa segura y práctica a los subprogramasSIMPLE_BIND_S
yBIND_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 funcionesSIMPLE_BIND_S
yBIND_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 Procedimiento CREATE_CREDENTIAL 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 llama primero a la función
DBMS_LDAP.INIT
que inicializa una sesión con un servidor LDAP y establece una conexión con el servidor LDAPldap.example.com
en el número de puerto636
. El valorl_ldap_conn
de la funciónSIMPLE_BIND_S
es el identificador de sesión LDAP yLDAP_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 llama primero a la función
DBMS_LDAP.INIT
que inicializa una sesión con un servidor LDAP y establece una conexión con el servidor LDAPldap.example.com
en el número de puerto636
. El valorl_ldap_conn
de la funciónBIND_S
es el identificador de sesión LDAP yLDAP_CRED
es el nombre de las credenciales.METH
es el método de autenticación. El único valor válido esDBMS_LDAP_UTL.AUTH_SIMPLE
.
-
-
Los privilegios
EXECUTE
enDBMS_CLOUD
oDWROLE
son necesarios para crear credenciales de programador. -
Las credenciales transferidas deben estar presentes en el esquema de usuario actual y estar en estado activado.
-
Se puede proporcionar un sinónimo público o privado que apunte a una credencial en un esquema de usuario diferente como valor para el parámetro
CREDENTIAL
siempre que tenga el privilegioEXECUTE
en el objeto de credencial base al que apunta el sinónimo. Consulte Visión general de los sinónimos para obtener más información.
-
-
El uso de
DBMS_LDAP
se audita por defecto. No puede desactivar la auditoría paraDBMS_LDAP
. -
SSL/TLS se aplica para todas las comunicaciones que se producen 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 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 de salida con puntos finales privados para obtener más información.
Para utilizar
DBMS_LDAP
para una conexión en un punto final privado, utiliceDBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE
y especifique el parámetroprivate_target
con el valorTRUE
.Nota
Si defineROUTE_OUTBOUND_CONNECTIONS
enPRIVATE_ENDPOINT
, no es necesario definir el parámetroprivate_target
enTRUE
en esta API. Consulte Seguridad mejorada para conexiones de salida con puntos finales privados para obtener más información. -
-
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 conexionesHTTPS
yHTTP_PROXY
(las conexionesHTTP
no están permitidas tanto para puntos finales públicos como 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 APIUTL_HTTP.SET_PROXY
:-
Las solicitudes
DBMS_CLOUD
no respetan el servidor proxy definido conUTL_HTTP.SET_PROXY
. Esto incluyeDBMS_CLOUD.SEND_REQUEST
y todo el acceso de almacenamiento de objetos para las tablas externasDBMS_CLOUD
que defina conDBMS_CLOUD.CREATE_EXTERNAL_TABLE
,DBMS_CLOUD.CREATE_EXTERNAL_PART_TABLE
oDBMS_CLOUD.CREATE_HYBRID_PART_TABLE
. -
Las solicitudes
APEX_WEB_SERVICE
no respetan el servidor proxy definido conUTL_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 certificados SSL intermedios y de raíz de confianza de uso habitual. 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
yWALLET_PASSWORD
para los procedimientosCREATE_REQUEST_CONTEXT
,REQUEST
yREQUEST_PIECES
se ignoran. -
El argumento
CREDENTIAL
del procedimientoSET_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
enDBMS_CLOUD
oDWROLE
son necesarios para crear objetos de credenciales. -
Las credenciales transferidas deben estar presentes en el esquema de usuario actual y estar en estado activado.
-
Se puede proporcionar un sinónimo público o privado que apunte a una credencial en un esquema de usuario diferente como valor para el parámetro
CREDENTIAL
siempre que tenga el privilegioEXECUTE
en el objeto de credencial base al que apunta el sinónimo. Consulte Visión general de los sinónimos para obtener más información. -
No se puede modificar la configuración de Oracle Wallet. Todos los argumentos para el procedimiento
SET_WALLET
se ignoran. -
El uso de
UTL_HTTP
se audita por defecto. No puede desactivar la auditoría paraUTL_HTTP
. -
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 conexionesUTL_HTTP
de salida 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 de salida con puntos finales privados para obtener más información.
-
-
UTL_SMTP
-
El único proveedor de correo electrónico soportado es el servicio Email Delivery de Oracle Cloud Infrastructure. Consulte Descripción general del servicio Email Delivery para obtener más información.
-
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ónSET_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
enDBMS_CLOUD
oDWROLE
son necesarios para crear objetos de credenciales. -
El argumento
CREDENTIAL
del procedimientoSET_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.
-
Se puede proporcionar un sinónimo público o privado que apunte a una credencial en un esquema de usuario diferente como valor para el parámetro
CREDENTIAL
siempre que tenga el privilegioEXECUTE
en el objeto de credencial base al que apunta el sinónimo. Consulte Visión general de los sinónimos para obtener más información. -
El uso de
UTL_SMTP
se audita por defecto. No puede desactivar la auditoría paraUTL_SMTP
. -
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 conexionesUTL_SMTP
de salida 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 de salida con puntos finales privados para obtener más información.
-
-
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
yWALLET_PASSWORD
para el procedimientoOPEN_CONNECTION
se ignoran. El valor por defecto para las propiedadesWALLET_PATH
yWALLET_PASSWORD
se define en la cartera que utilizanUTL_HTTP
yDBMS_CLOUD
para realizar solicitudes web salientes en Autonomous Database. -
El uso de
UTL_TCP
se audita por defecto. No puede desactivar la auditoría paraUTL_TCP
. -
SSL/TLS se aplica para todas las comunicaciones que se produzcan 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 conexionesUTL_TCP
de salida 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 de salida con puntos finales privados para obtener más información.
-
-
DBMS_NETWORK_ACL_ADMIN
-
No está permitido otorgar privilegios de ACL en direcciones IP.
-
La ACL
HTTP_PROXY
está permitida en puntos finales privados.
-
-
UTL_HTTP
ErroresEn 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 Posible causa ORA-12545: Connect failed because target host or object does not exist
El host o objeto de destino no existe o es privado.
ORA-24247: network access denied by access control list (ACL)
No se ha encontrado 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 soportados.
ORA-29261: Bad argument
Las credenciales transferidas no son válidas o están desactivadas o el usuario no tiene privilegios suficientes en la credencial.
-
UTL_SMTP
ErrorMensaje de Error Posible causa ORA-29261: Bad argument
Las credenciales transferidas no son válidas o están desactivadas o el usuario no tiene privilegios suficientes en la credencial.
-
DBMS_LDAP
ErrorMensaje de Error Posible causa ORA-31400: Missing or invalid scheduler credential
Las credenciales transferidas son NULL o no válidas.
Consulte UTL_HTTP, DBMS_LDAP, UTL_SMTP, UTL_TCP y DBMS_NETWORK_ACL_ADMIN en PL/SQL Packages and Types Reference para obtener más información.
Tema principal: Notas para usuarios que migran desde otras bases de datos Oracle