Richiama script generici in un'istanza di Autonomous Database
È possibile richiamare script generici di tipo BASH, C o Python nell'Autonomous Database.
- Informazioni sull'esecuzione di script generici su Autonomous Database
È possibile richiamare script generici, inclusi script scritti in Bash, C o Python, da un'istanza di Autonomous Database. - Carica wallet per creare una connessione sicura all'istanza dell'agente EXTPROC
Un wallet con firma automatica viene creato come parte della creazione dell'applicazione dell'agenteEXTPROC
. Questo wallet consente di accedere all'istanza dell'agenteEXTPROC
da un'istanza di Autonomous Database. - Passi per richiamare script generici
Mostra i passi per richiamare script generici su un Autonomous Database.
Argomento padre: Richiama funzioni definite dall'utente
Informazioni sull'esecuzione di script generici in Autonomous Database
Puoi richiamare script generici, inclusi script scritti in Bash, C o Python, da un'istanza di Autonomous Database.
Non è possibile eseguire uno script generico direttamente su un'istanza di Autonomous Database. Lo script viene invece ospitato in remoto su un'immagine container Extproc di Oracle Autonomous Database in esecuzione in una rete cloud virtuale (VCN) di Oracle Cloud Infrastructure. È possibile richiamare script generici da Autonomous Database utilizzando i job di Oracle Scheduler. Il job di Oracle Scheduler creato deve essere un job eseguibile. I processi eseguibili possono eseguire script della shell o altri eseguibili.
Questa funzione è supportata solo per la release di database Oracle 19c.
Gli script generici di Autonomous Database sono supportati solo quando il database si trova su un endpoint privato. Per eseguire script generici, è necessario ottenere, installare e configurare l'immagine contenitore di Oracle Autonomous Database con l'agente EXTPROC
installato. L'immagine del contenitore EXTPROC
di Autonomous Database consente di chiamare procedure e script esterni scritti in BASH, C o Python dall'Autonomous Database. L'istanza dell'agente EXTPROC
è ospitata in una subnet privata e Autonomous Database accede all'agente EXTPROC
tramite un endpoint di connessione inversa (RCE).
Gli script generici vengono distribuiti utilizzando:
-
Un'immagine contenitore di Autonomous Database fornita da Oracle con l'agente
EXTPROC
installato. Oracle fornisce l'immagine del contenitore nei pacchetti GitHub.Per istruzioni su come ottenere e configurare l'immagine del contenitore
EXTPROC
, vedere GitHub README:L'istanza dell'agente
EXTPROC
è ospitata in remoto su un'immagine contenitore in esecuzione in una rete VCN (Virtual Cloud Network) di Oracle Cloud Infrastructure. La comunicazione sicura tra l'istanza dell'agente Autonomous Database eEXTPROC
viene protetta impostando regole NSG (Network Security Group) in modo che il traffico sia consentito dall'istanza di Autonomous Database in esecuzione su un endpoint privato all'istanza dell'agenteEXTPROC
. L'immagine dell'agenteEXTPROC
è preconfigurata per ospitare ed eseguire procedure esterne sulla porta 16000. -
Procedure PL/SQL per registrare gli ambienti endpoint e gestire i privilegi sugli endpoint registrati. Per ulteriori informazioni, vedere DBMS_CLOUD_FUNCTION_ADMIN Package.
-
Procedure PL/SQL per creare e gestire job e programmi scheduler per richiamare script generici.
Per ulteriori informazioni, vedere DBMS_SCHEDULER.
Per eseguire uno script generico da un'istanza di Autonomous Database, effettuare le operazioni riportate di seguito.
-
Ottenere e configurare l'immagine del contenitore
EXTPROC
. Per ulteriori informazioni, vedere GitHub README. -
Configurare Autonomous Database per connettersi all'istanza dell'agente
EXTPROC
. Per ulteriori informazioni, vedere Carica wallet per creare una connessione sicura all'istanza dell'agente EXTPROC. -
Richiama gli script generici su Autonomous Database. Per ulteriori informazioni, vedere Passi per richiamare script generici.
Argomento padre: Richiama script generici in un'istanza di Autonomous Database
Carica wallet per creare una connessione sicura all'istanza dell'agente EXTPROC
Viene creato un wallet con firma automatica nell'ambito della creazione dell'applicazione agente EXTPROC
. Questo wallet consente di accedere all'istanza dell'agente EXTPROC
da un'istanza di Autonomous Database.
Per eseguire script generici nell'istanza dell'agente EXTPROC
, l'agente Autonomous Database e EXTPROC
si connettono utilizzando Mutual Transport Layer Security (mTLS). Quando ci si connette all'agente EXTPROC con mTLS, si utilizza una connessione al database TCPS (Secure TCP) utilizzando TLS 1.2 standard con un certificato CA (Secure Client Certificate Authority). Per ulteriori informazioni, vedere Informazioni sulla connessione a un'istanza di Autonomous Database.
È anche possibile ottenere e utilizzare un certificato pubblico emesso da un'autorità di certificazione (CA).
Come prerequisito, è necessario esportare il wallet nello storage degli oggetti dalla directory /u01/app/oracle/wallets/extproc_wallet/
nella VM in cui viene eseguito EXTPROC
. Ciò consente ad Autonomous Database di utilizzare il wallet per accedere in modo sicuro a EXTPROC
.
Caricare il wallet EXTPROC
nell'istanza di Autonomous Database:
Argomento padre: Richiama script generici in un'istanza di Autonomous Database
Passi per richiamare gli script generici
Mostra i passi per richiamare script generici su un Autonomous Database.
Dopo aver configurato l'istanza dell'agente EXTPROC
per eseguire script generici, è possibile registrare un endpoint remoto e creare job di Scheduler per chiamare script generici.
Di seguito sono riportati i prerequisiti per richiamare gli script generici con Autonomous Database.
-
Gli script generici devono essere copiati nell'istanza agente EXTPROC. Per ulteriori informazioni, vedere GitHub README.
-
Per creare e gestire job di Scheduler per richiamare script generici con un utente diverso da ADMIN, è necessario disporre dei seguenti privilegi:
-
MANAGE SCHEDULER
-
CREATE JOB
-
Privilegio sull'endpoint remoto registrato
-
Argomenti
- Registrare e gestire l'endpoint remoto su Autonomous Database
Come utente ADMIN, eseguire i passi riportati di seguito per registrare e gestire gli endpoint remoti in Autonomous Database. - Crea e gestisci processi scheduler per richiamare script generici
Mostra i passi per creare e gestire job scheduler per richiamare script generici da Autonomous Database.
Argomento padre: Richiama script generici in un'istanza di Autonomous Database
Registrazione e gestione dell'endpoint remoto su Autonomous Database
Come utente ADMIN, eseguire i passi riportati di seguito per registrare e gestire gli endpoint remoti in Autonomous Database.
Registra un endpoint remoto
Utilizzare DBMS_CLOUD_FUNCTION_ADMIN.REGISTER_REMOTE_EXECUTION_ENV
per registrare un endpoint remoto.
Esempio:
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;
/
In questo esempio viene creata la libreria rem_executable
e registrata l'istanza dell'agente EXTPROC
specificata nel parametro remote_url
nell'istanza di Autonomous Database. L'istanza dell'agente EXTPROC
è preconfigurata per ospitare script generici sulla porta 16000.
Per ulteriori informazioni, vedere REGISTER_REMOTE_EXECUTION_ENV Procedure.
Gestisci privilegi in un endpoint registrato
Questo passo è facoltativo ed è necessario solo quando un utente diverso da ADMIN deve richiamare script generici da Autonomous Database.
Utilizzare DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
per concedere il privilegio sull'endpoint registrato a un utente diverso da ADMIN.
Esempio:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.GRANT_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
Questo esempio concede il privilegio su REM_EXECUTABLE
all'utente specificato. Per ulteriori informazioni, vedere GRANT_REMOTE_EXECUTION_ENV Procedure.
Dopo aver concesso il privilegio sull'endpoint registrato, è possibile utilizzare DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
per revocare il privilegio sul form dell'endpoint registrato di un utente.
Esempio:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.REVOKE_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE',
user_name => 'username');
END;
/
In questo esempio il privilegio su REM_EXECUTABLE
viene revocato dall'utente specificato. Per ulteriori informazioni, vedere REVOKE_REMOTE_EXECUTION_ENV Procedure.
È possibile eseguire una query su DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT
per elencare le autorizzazioni concesse per tutti gli endpoint remoti. Per ulteriori informazioni, vedere DBA_CLOUD_FUNCTION_REMOTE_EXECUTION_GRANT View.
Rimuovi un endpoint registrato
Utilizzare DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
per rimuovere un endpoint remoto registrato.
Esempio:
BEGIN
DBMS_CLOUD_FUNCTION_ADMIN.DEREGISTER_REMOTE_EXECUTION_ENV
(
remote_endpoint_name => 'REM_EXECUTABLE');
END;
/
In questo modo, l'endpoint remoto rem_executable
viene rimosso da Autonomous Database. Per ulteriori informazioni, vedere DEREGISTER_REMOTE_EXECUTION_ENV Procedure.
Argomento padre: Passi per richiamare script generici
Creare e gestire job scheduler per richiamare script generici
Mostra i passi per creare e gestire i job dello scheduler per richiamare script generici da Autonomous Database.
Argomento padre: Passi per richiamare script generici