Crea database link con connettività eterogenea gestita dal cliente a database non Oracle in un endpoint privato

È possibile creare database link da un'istanza di Autonomous Database a un'istanza di Oracle Database Gateway per accedere ai database non Oracle presenti in un endpoint privato.

In questa sezione vengono descritti i passi per l'utilizzo dei database link per la connessione da Autonomous Database a un non Oracle Database tramite un Oracle Database Gateway, in cui l'elemento non Oracle Database si trova su un endpoint privato.

Prerequisiti per creare database link con connettività eterogenea gestita dal cliente a database non Oracle su un endpoint privato

Elenca i prerequisiti per creare database link da un Autonomous Database con connettività eterogenea gestita dal cliente a database non Oracle che si trovano in un endpoint privato.

Per creare un database link con connettività eterogenea gestita dal cliente a database non Oracle che si trovano in un endpoint privato, effettuare le operazioni riportate di seguito.

  • Il database di destinazione deve essere accessibile dalla VCN Oracle Cloud Infrastructure del database di origine. Ad esempio, è possibile connettersi al database di destinazione quando:

    • Il database di destinazione si trova in un endpoint privato.

    • Sia il database di origine che il database di destinazione si trovano nella stessa VCN di Oracle Cloud Infrastructure.

    • Il database di origine e il database di destinazione si trovano in diverse VCN di Oracle Cloud Infrastructure abbinate.

    • Per una destinazione in un endpoint privato, DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK supporta la specifica di un singolo nome host con il parametro hostname. In un endpoint privato non è supportato l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN (quando la destinazione si trova su un endpoint pubblico, CREATE_DATABASE_LINK supporta l'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN).

  • Per l'endpoint privato devono essere definite le regole di entrata e uscita seguenti:

    • Definire una regola di uscita nella lista di sicurezza della subnet del database di origine o nel gruppo di sicurezza di rete in modo che il traffico su TCP sia consentito all'indirizzo IP e al numero di porta del database di destinazione.

    • Definire una regola di entrata nella lista di sicurezza della subnet del database di destinazione o nel gruppo di sicurezza di rete in modo che il traffico su TCP sia consentito dall'indirizzo IP del database di origine alla porta di destinazione.

    Per informazioni sulla configurazione degli endpoint privati con regole di entrata e uscita, vedere Configura accesso di rete con endpoint privati.

Nota

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 tutti i database link in uscita sono soggetti 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.

Crea database link con connettività eterogenea gestita dal cliente ai database non Oracle su un endpoint privato (senza un wallet)

È possibile creare database link da un'istanza di Autonomous Database a un Oracle Database Gateway per accedere ai database non Oracle presenti in un endpoint privato, connettendosi a un wallet (TCPS) o senza un wallet (TLS).

Per creare i database link da un'istanza di Autonomous Database in un endpoint privato a un Oracle Database Gateway di destinazione, connettersi senza un wallet (TLS):

  1. In Autonomous Database creare le credenziali per accedere al database di destinazione. I valori username e password specificati con DBMS_CLOUD.CREATE_CREDENTIAL sono le credenziali per il database di destinazione utilizzato all'interno del database link, dove è possibile accedere al database di destinazione tramite Oracle Database Gateway.

    È necessario specificare il parametro credential_name.

    Ad esempio:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    I caratteri nel parametro username devono essere tutte lettere maiuscole.

    Questa operazione memorizza le credenziali nel database in formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.

  2. Creare il database link al gateway di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name =>       'SALESLINK', 
              hostname =>           'example.com', 
              port =>               '1522',
              service_name =>       'example_service_name',
              ssl_server_cert_dn => 'ssl_server_cert_dn',
              credential_name =>    'DB_LINK_CRED',
              directory_name =>      NULL,
              gateway_link =>        TRUE,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    Il parametro ssl_server_cert_dn è facoltativo se la connessione viene creata come database link basato su TCP (senza wallet).

    Quando directory_name è NULL, la connessione viene creata come database link basato su TCP (senza wallet).

    Il parametro private_target deve essere impostato su TRUE quando la destinazione non Oracle Database si trova su un endpoint privato (ovvero, il database link accede a un nome host che deve essere risolto in un server DNS della VCN). Quando private_target è TRUE, il parametro hostname deve essere un singolo nome host (in un endpoint privato non è supportato l'uso di un indirizzo IP, un IP SCAN o un nome host SCAN).

    Quando gateway_link è TRUE e gateway_params è NULL, questa opzione specifica che il database link è un gateway Oracle gestito dal cliente.

    Gli utenti diversi da ADMIN richiedono privilegi per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  3. Utilizzare il database link creato per accedere ai dati nel gateway di destinazione.

    Ad esempio:

    SELECT * FROM employees@SALESLINK;
    

Per le credenziali create nel Passo 1, le credenziali di Oracle Database Gateway, se la password dell'utente di destinazione viene modificata, è possibile aggiornare la credenziale che contiene le credenziali dell'utente di destinazione come indicato di seguito.

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'DB_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

Dove password è la nuova password.

Dopo questa operazione, i database link esistenti che utilizzano questa credenziale continuano a funzionare senza dover eliminare e ricreare i database link.

Per ulteriori informazioni, vedere:

Crea database link con connettività eterogenea gestita dal cliente a database non Oracle su un endpoint privato (con un wallet)

È possibile creare database link da un'istanza di Autonomous Database a un Oracle Database Gateway per accedere ai database non Oracle presenti in un endpoint privato, connettendosi a un wallet (TCPS) o senza un wallet (TLS).

Per creare i database link da un'istanza di Autonomous Database in un endpoint privato a un Oracle Database Gateway di destinazione e connettersi senza un wallet, effettuare le operazioni riportate di seguito.

  1. Copiare il wallet con firma automatica di Oracle Database Gateway di destinazione nell'area di memorizzazione degli oggetti. Ad esempio, copiare cwallet.sso, contenente i certificati per Oracle Database Gateway, nell'area di memorizzazione degli oggetti.

    Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati disponibili tramite il gateway di destinazione. Memorizzare i file wallet in una posizione sicura. Condividere i file wallet solo con utenti autorizzati.

  2. Creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui è memorizzato cwallet.sso. Vedere CREATE_CREDENTIAL Procedura per informazioni sui parametri del nome utente e della password per diversi servizi di storage degli oggetti.
  3. Creare una directory in Autonomous Database per il file wallet cwallet.sso.

    Ad esempio:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
    

    Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous Database.

  4. Utilizzare DBMS_CLOUD.GET_OBJECT per caricare il wallet con firma automatica del gateway di destinazione nella directory creata nel passo precedente, DBLINK_WALLET_DIR.

    Ad esempio:

    BEGIN 
         DBMS_CLOUD.GET_OBJECT(
            credential_name => 'DEF_CRED_NAME',
            object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name => 'DBLINK_WALLET_DIR'); 
    END;
    /

    In questo esempio, namespace-string è lo spazio di nomi dello storage degli oggetti Oracle Cloud Infrastructure e bucketname è il nome del bucket. Per ulteriori informazioni, vedere Informazioni sugli spazi di nomi dello storage degli oggetti.

    Nota

    Il valore credential_name utilizzato in questo passo sono le credenziali per l'area di memorizzazione degli oggetti. Nel passo successivo si creano le credenziali per accedere al gateway di destinazione.
  5. In Autonomous Database creare le credenziali per accedere al database di destinazione. I valori username e password specificati con DBMS_CLOUD.CREATE_CREDENTIAL sono le credenziali per il database di destinazione utilizzato all'interno del database link, dove è possibile accedere al database di destinazione tramite Oracle Database Gateway.

    È necessario specificare il parametro credential_name.

    Ad esempio:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    I caratteri nel parametro username devono essere tutte lettere maiuscole.

    Questa operazione memorizza le credenziali nel database in formato cifrato. È possibile utilizzare qualsiasi nome per il nome della credenziale.

  6. Creare il database link al gateway di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name =>       'SALESLINK', 
              hostname =>           'example.com', 
              port =>               '1522',
              service_name =>       'example_service_name',
              ssl_server_cert_dn => 'ssl_server_cert_dn',
              credential_name =>    'DB_LINK_CRED',
              directory_name =>     'DBLINK_WALLET_DIR',
              gateway_link =>        TRUE,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    Se directory_name non è NULL, viene creato un database link basato su TCPS.

    Il parametro private_target deve essere impostato su TRUE quando la destinazione non Oracle Database si trova su un endpoint privato (ovvero, il database link accede a un nome host che deve essere risolto in un server DNS della VCN). Quando private_target è TRUE, il parametro hostname deve essere un singolo nome host (in un endpoint privato non è supportato l'uso di un indirizzo IP, un IP SCAN o un nome host SCAN).

    Quando gateway_link è TRUE e gateway_params è NULL, questa opzione specifica che il database link è un gateway Oracle gestito dal cliente.

    Gli utenti diversi da ADMIN richiedono privilegi per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  7. Utilizzare il database link creato per accedere ai dati nel gateway di destinazione.

    Ad esempio:

    SELECT * FROM employees@SALESLINK;
    

Per le credenziali create nel Passo 5, le credenziali di Oracle Database Gateway, se la password dell'utente di destinazione viene modificata, è possibile aggiornare la credenziale che contiene le credenziali dell'utente di destinazione come indicato di seguito.

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'DB_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

Dove password è la nuova password.

Dopo questa operazione, i database link esistenti che utilizzano questa credenziale continuano a funzionare senza dover eliminare e ricreare i database link.

Per ulteriori informazioni, vedere: