Crea database link da Autonomous AI Database a un Autonomous AI Database accessibile al pubblico

È possibile creare database link da un Autonomous AI Database a un Autonomous AI Database di destinazione che si trova su un endpoint pubblico.

Per ulteriori informazioni, vedere Come creare un database link da Autonomous Database a un'istanza di Database Cloud Service.

Creare database link da Autonomous AI Database a un Autonomous AI Database accessibile al pubblico senza un wallet (TLS)

Puoi creare database link da un Autonomous AI Database a un Autonomous AI Database accessibile pubblicamente senza un wallet (TLS).

Per creare database link a una destinazione pubblica, il database di destinazione deve essere accessibile. Alcuni database, inclusi i database AI autonomi, possono 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 affinché il database link funzioni. Se limiti l'accesso con le liste di controllo dell'accesso (ACL), puoi trovare l'indirizzo IP in uscita di Autonomous AI Database di origine e consentire a tale indirizzo IP di connettersi al database di destinazione. Quando il database di destinazione è un altro Autonomous AI Database, è possibile aggiungere l'indirizzo IP in uscita del database di origine all'ACL del database di destinazione.

Per informazioni sulla ricerca dell'indirizzo IP in uscita, vedere Ottieni dettagli tenancy.

Per creare un database link a un Autonomous AI Database di destinazione senza un wallet (TLS):

  1. Se non lo si è già fatto, abilitare le connessioni TLS sull'istanza di Autonomous AI Database.
  2. Nell'istanza di Autonomous AI Database in cui si sta creando il database link, creare le credenziali per accedere all'Autonomous AI 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 del parametro username devono essere tutte lettere maiuscole.

    Nota

    È possibile utilizzare una credenziale segreta del vault per la credenziale del database di destinazione in un database link. Per ulteriori informazioni, vedere Usa credenziali segrete vault.

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

  3. Creare un database link all'istanza di Autonomous AI 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 => '1521',
            service_name => 'example_medium.adb.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 AI Database di destinazione su un endpoint pubblico utilizzando una connessione TCP sicura senza un wallet, il parametro directory_name deve essere NULL.

    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 cambia, è 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 corrisponde alla nuova password.

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

Nota

È possibile creare collegamenti a Big Data Service utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Per ulteriori informazioni, vedere Query Big Data Service Hadoop (HDFS) sui dati di Autonomous AI Database.

Per ulteriori informazioni, vedere:

Creare database link da Autonomous AI Database a un Autonomous AI Database accessibile al pubblico con un wallet (mTLS)

Puoi creare database link da un Autonomous AI Database a un Autonomous AI Database accessibile pubblicamente con un wallet (mTLS).

Per creare database link a una destinazione pubblica, il database di destinazione deve essere accessibile. Alcuni database, inclusi i database AI autonomi, possono 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 affinché il database link funzioni. Se limiti l'accesso con le liste di controllo dell'accesso (ACL), puoi trovare l'indirizzo IP in uscita di Autonomous AI 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 AI Database, è possibile aggiungere l'indirizzo IP in uscita del database di origine all'ACL del database di destinazione.

Per informazioni sulla ricerca dell'indirizzo IP in uscita, vedere Ottieni dettagli tenancy.

Per creare database link a un Autonomous AI Database di destinazione con un wallet (mTLS):

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

  2. Creare le credenziali per accedere all'area di memorizzazione degli oggetti in cui memorizzare il file wallet cwallet.sso. Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere CREATE_CREDENTIAL Procedure.

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione Usa principal risorsa per accedere alle risorse di Oracle Cloud Infrastructure.

  3. Creare una directory in Autonomous AI 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 AI Database.

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

    Nota

    Il credential_name utilizzato in questo passo è costituito dalle credenziali per l'area di memorizzazione degli oggetti. Nel passo successivo si creano le credenziali per accedere al database di destinazione.

    La creazione di una credenziale per accedere all'area di memorizzazione degli oggetti di Oracle Cloud Infrastructure non è necessaria se si abilitano le credenziali del principal risorsa. Per ulteriori informazioni, consulta la sezione Usa principal risorsa per accedere alle risorse di Oracle Cloud Infrastructure.

  5. Nell'istanza di Autonomous AI Database creare le credenziali per accedere al database di destinazione. Le credenziali username e password specificate 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 del parametro username devono essere tutte lettere maiuscole.

    Nota

    È possibile utilizzare una credenziale segreta del vault per la credenziale del database di destinazione in un database link. Per ulteriori informazioni, vedere Usa credenziali segrete vault.

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

  6. Creare il database link al 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 => '1522',
            service_name => 'example_medium.adb.example.oraclecloud.com',
            ssl_server_cert_dn => 'CN=adb.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.

    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.

  7. 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 corrisponde alla nuova password.

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

Nota

È possibile creare collegamenti a Big Data Service utilizzando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Per ulteriori informazioni, vedere Query Big Data Service Hadoop (HDFS) sui dati di Autonomous AI Database.

Per ulteriori informazioni, vedere: