Crea database link TLS da un Autonomous Database a un altro Autonomous Database

È possibile creare database link TLS da un'infrastruttura Autonomous Database on Dedicated Exadata a un Autonomous Database di destinazione che si trova su un endpoint pubblico.

Argomenti correlati

Crea database link TLS unidirezionali da un Autonomous Database a un altro Autonomous Database

Puoi creare database link TLS unidirezionali da un'infrastruttura Autonomous Database on Dedicated Exadata a un Autonomous Database accessibile pubblicamente.

Per creare database link a una destinazione pubblica, il database di destinazione deve essere accessibile. Alcuni database, inclusi gli Autonomous Database, potrebbero limitare l'accesso (ad esempio, utilizzando le liste di controllo dell'accesso). Assicurarsi di abilitare il database di destinazione per consentire l'accesso dal database di origine per il funzionamento del database link. Se limiti l'accesso con le liste di controllo dell'accesso (ACL, Access Control List), puoi trovare l'indirizzo IP in uscita dell'Autonomous Database di origine e consentire a tale indirizzo IP di connettersi al database di destinazione. Quando il database di destinazione è un altro Autonomous Database, è possibile aggiungere l'indirizzo IP in uscita del database di origine all'ACL del database di destinazione.

Per informazioni su come trovare l'indirizzo IP in uscita, vedere Ottenere i dettagli della tenancy.

Per creare un database link a un Autonomous Database di destinazione senza un wallet (TLS), effettuare le operazioni riportate di seguito.

  1. Assicurarsi che le connessioni TLS unidirezionali siano abilitate.

    Per impostazione predefinita, le connessioni TLS unidirezionali vengono abilitate quando si esegue il provisioning di un AVMC. Per ulteriori informazioni, vedere Creare un cluster VM Autonomous Exadata.

    Nota

    In un'Autonomous Database on Dedicated Exadata Infrastructure, le connessioni walletless funzionano per TLS unidirezionale installando un certificato SSL personalizzato emesso da una CA pubblica. Per ulteriori dettagli, vedere Preparazione per connessioni senza wallet TLS.
  2. Nell'istanza di Autonomous Database in cui si sta creando il database link, creare le credenziali per accedere all'Autonomous Database di destinazione. Le credenziali username e password specificate con DBMS_CLOUD.CREATE_CREDENTIAL sono le credenziali per il database di destinazione (le credenziali vengono utilizzate per creare il database link).

    Nota

    È 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.

  3. Creare un database link all'istanza di Autonomous Database di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK', 
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '2484',
            service_name => 'example_medium.atpc.example.oraclecloud.com',
            credential_name => 'DB_LINK_CRED',
            directory_name => NULL);
    END;
    /

    Per creare un database link con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK a un Autonomous Database di destinazione su un endpoint pubblico utilizzando una connessione TCP sicura senza un wallet, il parametro directory_name deve essere NULL.

    Per le connessioni TLS, il valore del parametro port deve essere impostato su 2484. Tuttavia, se durante il provisioning di AVMC è stato scelto un numero di porta del listener SCAN diverso, è necessario utilizzare tale numero di porta. Per ulteriori informazioni, vedere Creare il cluster VM Autonomous Exadata.

    Il parametro ssl_server_cert_dn può essere omesso oppure, se incluso, specificare un valore NULL.

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

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

    Ad esempio:

    SELECT * FROM employees@SALESLINK;
                

Per le credenziali create nel Passo 1, le credenziali del database di destinazione, 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:

Creare database link mTLS da un Autonomous Database a un altro Autonomous Database

È possibile creare database link mTLS da un'infrastruttura Autonomous Database on Dedicated Exadata a un Autonomous Database accessibile pubblicamente.

Per creare database link a una destinazione pubblica, il database di destinazione deve essere accessibile. Alcuni database, inclusi gli Autonomous Database, potrebbero limitare l'accesso (ad esempio, utilizzando le liste di controllo dell'accesso). Assicurarsi di abilitare il database di destinazione per consentire l'accesso dal database di origine per il funzionamento del database link. Se limiti l'accesso con le liste di controllo dell'accesso (ACL, Access Control List), puoi trovare l'indirizzo IP in uscita dell'Autonomous Database di origine e consentire a tale indirizzo IP di connettersi al database di destinazione. Ad esempio, se il database di destinazione è un altro Autonomous Database, è possibile aggiungere l'indirizzo IP in uscita del database di origine all'ACL del database di destinazione.

Per informazioni su come trovare l'indirizzo IP in uscita, vedere Ottenere i dettagli della tenancy.

Per creare i database link a un Autonomous Database di destinazione con un wallet (mTLS), procedere come segue.

  1. Accertarsi che le connessioni mTLS siano abilitate.

    Per impostazione predefinita, le connessioni TLS unidirezionali sono abilitate per un AVMC. È possibile abilitare l'autenticazione mTLS (mutual TLS) selezionando la casella di controllo Enable mutual TLS (mTLS) authentication durante il provisioning di AVMC. Per ulteriori informazioni, vedere Creare un cluster VM Autonomous Exadata.

  2. Copiare il wallet del database di destinazione, cwallet.sso, contenente i certificati per il database di destinazione nell'area di memorizzazione degli oggetti.

    Tenere presente quanto riportato di seguito per il file wallet.

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

    • Non rinominare il file wallet. Il file wallet nello storage degli oggetti deve essere denominato cwallet.sso.

  3. Creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui è memorizzato il file wallet cwallet.sso. Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere CREATE_CREDENTIAL Procedura.
  4. 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.

  5. Utilizzare DBMS_CLOUD.GET_OBJECT per caricare il wallet del database 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.

  6. Nell'istanza di 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 per creare il database link.

    Nota

    È 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.

  7. Creare il database link nel database di destinazione utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Ad esempio:

    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name => 'SALESLINK',
            hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
            port => '2484',
            service_name => 'example_medium.atpc.example.oraclecloud.com',
            ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

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

    Per le connessioni TLS, il valore del parametro port deve essere impostato su 2484. Tuttavia, se durante il provisioning di AVMC è stato scelto un numero di porta del listener SCAN diverso, è necessario utilizzare tale numero di porta. Per ulteriori informazioni, vedere Creare il cluster VM Autonomous Exadata.

    Se il file wallet nella directory specificata con directory_name non è cwallet.sso, la procedura segnala un errore, ad esempio ORA-28759: failure to open file.

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

    Ad esempio:

    SELECT * FROM employees@SALESLINK;
                

Per le credenziali create nel Passo 5, le credenziali del database di destinazione, 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:

Note del database link con una destinazione che è un Autonomous Database

Fornisce note per la creazione di database link a una destinazione che è un altro Autonomous Database.

Note per i database link a un altro Autonomous Database:

  • È valido un solo file wallet per directory da utilizzare con i database link. È possibile caricare un solo file cwallet.sso alla volta nella directory scelta per i file wallet (ad esempio, DBLINK_WALLET_DIR). Ciò significa che con un cwallet.sso in DBLINK_WALLET_DIR è possibile creare solo database link ai database per i quali il wallet in tale directory è valido. Per utilizzare più file cwallet.sso con database link, è necessario creare directory aggiuntive e inserire ogni file cwallet.sso in una directory diversa. Quando si creano database link con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK, specificare la directory che contiene il wallet con il parametro directory_name.

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

  • Per elencare i database link, utilizzare la vista ALL_DB_LINKS. Per ulteriori informazioni, consulta ALL_DB_LINKS in Oracle Database 19c Database Reference o Oracle Database 23ai Database Reference.

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

  • L'input DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK deve menzionare il nome di scansione dell'Autonomous Database dedicato di destinazione come parametro 'hostname'.