Llamada a scripts genéricos en una instancia de Autonomous Database
Puede llamar a scripts genéricos de tipo BASH, C o Python en su instancia de Autonomous Database.
- Acerca de la ejecución de scripts genéricos en Autonomous Database
Puede llamar a scripts genéricos, incluidos scripts escritos en Bash, C o Python, desde una instancia de Autonomous Database. - Carga de cartera para crear una conexión segura a la instancia del agente EXTPROC
Se crea una cartera autofirmada como parte de la creación de la aplicación del agenteEXTPROC
. Esta cartera permite acceder a la instancia del agenteEXTPROC
desde una instancia de Autonomous Database. - Pasos para llamar a scripts genéricos
Muestra los pasos para llamar a scripts genéricos en una instancia de Autonomous Database.
Tema principal: Llamada a funciones definidas por el usuario
Acerca de la ejecución de scripts genéricos en Autonomous Database
Puede llamar a scripts genéricos, incluidos scripts escritos en Bash, C o Python, desde una instancia de Autonomous Database.
No puede ejecutar un script genérico directamente en una instancia de Autonomous Database. En su lugar, el script se aloja de forma remota en una imagen de contenedor de Oracle Autonomous Database Extproc que se ejecuta en una red virtual en la nube (VCN) de Oracle Cloud Infrastructure. Llamará a scripts genéricos desde su instancia de Autonomous Database mediante trabajos de Oracle Scheduler. El trabajo de Oracle Scheduler que cree debe ser un trabajo ejecutable. Los trabajos ejecutables pueden ejecutar secuencias de comandos de shell u otros ejecutables.
Esta función solo está soportada para la versión 19c de la base de datos Oracle.
Los scripts genéricos de Autonomous Database solo están soportados cuando la base de datos está en un punto final privado. Para ejecutar scripts genéricos, debe obtener, instalar y configurar la imagen de contenedor de Oracle Autonomous Database con el agente EXTPROC
instalado. La imagen de contenedor EXTPROC
de Autonomous Database permite llamar a scripts y procedimientos externos escritos en BASH, C o Python desde su instancia de Autonomous Database. La instancia del agente EXTPROC
se aloja en una subred privada, y Autonomous Database accede al agente EXTPROC
a través de un punto final de conexión inversa (RCE).
Los scripts genéricos se despliegan mediante:
-
Una imagen de contenedor de Autonomous Database proporcionada por Oracle con el agente
EXTPROC
instalado. Oracle proporciona la imagen de contenedor en paquetes GitHub.Consulte GitHub README para obtener instrucciones para obtener y configurar la imagen de contenedor
EXTPROC
:La instancia del agente
EXTPROC
se aloja de forma remota en una imagen de contenedor que se ejecuta en una red virtual en la nube (VCN) de Oracle Cloud Infrastructure. La comunicación segura entre la instancia de Autonomous Database y la instancia de agenteEXTPROC
se protege mediante la definición de reglas de grupo de seguridad de red (NSG) para permitir el tráfico desde la instancia de Autonomous Database que se ejecuta en un punto final privado a la instancia de agenteEXTPROC
. La imagen del agenteEXTPROC
está preconfigurada para alojar y ejecutar procedimientos externos en el puerto 16000. -
Procedimientos PL/SQL para registrar entornos de punto final y gestionar privilegios en los puntos finales registrados. Consulte DBMS_CLOUD_FUNCTION_ADMIN Package para obtener más información.
-
Procedimientos PL/SQL para crear y gestionar trabajos y programas del programador para llamar a scripts genéricos.
Consulte DBMS_SCHEDULER para obtener más información.
Siga estos pasos para ejecutar un script genérico desde una instancia de Autonomous Database:
-
Obtenga y configure la imagen de contenedor
EXTPROC
. Consulte GitHub README para obtener más información. -
Configure la instancia de Autonomous Database para conectarse a la instancia del agente
EXTPROC
. Consulte Carga de cartera para crear una conexión segura a la instancia del agente EXTPROC para obtener más información. -
Invoque scripts genéricos en su instancia de Autonomous Database. Consulte Pasos para llamar a scripts genéricos para obtener más información.
Carga de Cartera para Crear una Conexión Segura a la Instancia del Agente EXTPROC
Una cartera autofirmada se crea como parte de la creación de la aplicación del agente EXTPROC
. Esta cartera permite acceder a la instancia del agente EXTPROC
desde una instancia de Autonomous Database.
Para ejecutar scripts genéricos en la instancia del agente EXTPROC
, Autonomous Database y el agente EXTPROC
se conectan mediante la seguridad de capa de transporte mutuo (mTLS). Cuando se conecta al agente EXTPROC con mTLS, utiliza una conexión de base de datos TCPS (TCP seguro) mediante el estándar TLS 1.2 con un certificado de autoridad de certificación (CA) de cliente de confianza. Consulte Acerca de la conexión a una instancia de Autonomous Database para obtener más información.
También puede obtener y utilizar un certificado público emitido por una autoridad de certificación (CA).
Como requisito, debe exportar la cartera a Object Storage desde el directorio /u01/app/oracle/wallets/extproc_wallet/
en la máquina virtual donde se ejecuta EXTPROC
. Esto permite que Autonomous Database utilice la cartera para acceder de forma segura a EXTPROC
.
Cargue la cartera EXTPROC
en la instancia de Autonomous Database:
Pasos para invocar scripts genéricos
Muestra los pasos para llamar a scripts genéricos en una instancia de Autonomous Database.
Después de configurar la instancia de agente EXTPROC
para ejecutar scripts genéricos, registre un punto final remoto y cree trabajos del programador para llamar a scripts genéricos.
A continuación se muestran los requisitos para llamar a scripts genéricos con Autonomous Database:
-
Los scripts genéricos se deben copiar en la instancia del agente EXTPROC. Consulte GitHub README para obtener más información.
-
Para crear y gestionar trabajos del programador para llamar a scripts genéricos con un usuario que no sea ADMIN, debe tener los siguientes privilegios:
-
MANAGE SCHEDULER
-
CREATE JOB
-
Privilegio en el punto final remoto registrado
-
Temas
- Registro y gestión de punto final remoto en Autonomous Database
Como usuario ADMIN, realice los siguientes pasos para registrar y gestionar puntos finales remotos en Autonomous Database. - Creación y gestión de trabajos del programador para llamar a scripts genéricos
Muestra los pasos para crear y gestionar trabajos del programador para llamar a scripts genéricos desde Autonomous Database.
Registro y gestión de punto final remoto en Autonomous Database
Como usuario ADMIN, realice los siguientes pasos para registrar y gestionar puntos finales remotos en su instancia de Autonomous Database.
Registro de un punto final remoto
Utilice DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV
para registrar un punto final remoto.
Ejemplo:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'rem_executable',
remote_endpoint_url => 'remote_extproc_hostname:16000',
wallet_dir => 'WALLET_DIR',
remote_cert_dn => 'CN=MACHINENAME'
);
END;
/
En este ejemplo se crea la biblioteca rem_executable
y se registra la instancia del agente EXTPROC
especificada en el parámetro remote_url
en la instancia de Autonomous Database. La instancia del agente EXTPROC
está preconfigurada para alojar scripts genéricos en el puerto 16000.
Consulte REGISTER_REMOTE_EXECUTION_ENV Procedure para obtener más información.
Gestión de privilegios en un punto final registrado
Este paso es opcional y solo es necesario cuando un usuario que no sea ADMIN necesita llamar a scripts genéricos desde Autonomous Database.
Utilice DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
para otorgar privilegios en el punto final registrado a un usuario que no sea el administrador.
Ejemplo:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
En este ejemplo, se otorga el privilegio en REM_EXECUTABLE
al usuario especificado. Consulte GRANT_REMOTE_EXECUTION_ENV Procedure para obtener más información.
Después de otorgar el privilegio en el punto final registrado, puede utilizar DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
para revocar el privilegio en el punto final registrado como usuario.
Ejemplo:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
En este ejemplo, se revoca el privilegio en REM_EXECUTABLE
del usuario especificado. Consulte REVOKE_REMOTE_EXECUTION_ENV Procedure para obtener más información.
Puede consultar DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT
para mostrar los permisos otorgados para todos los puntos finales remotos. Consulte DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT View para obtener más información.
Eliminación de un punto final registrado
Utilice DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
para eliminar un punto final remoto registrado.
Ejemplo:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/
Esto elimina el punto final remoto rem_executable
de su instancia de Autonomous Database. Consulte DEREGISTER_REMOTE_EXECUTION_ENV Procedure para obtener más información.
Tema principal: Pasos para llamar a scripts genéricos
Crear y gestionar tareas de programador para invocar scripts genéricos
Muestra los pasos para crear y gestionar trabajos del programador para llamar a scripts genéricos desde Autonomous Database.
Tema principal: Pasos para llamar a scripts genéricos