Crea database link con connettività eterogenea gestita dal cliente a database non Oracle accessibili al pubblico

Utilizzare DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK per creare database link da un'istanza di Autonomous Database su un endpoint pubblico a un Oracle Database Gateway per accedere ai database non Oracle.

Per utilizzare i database link da un'istanza di Autonomous Database su un endpoint pubblico, è necessario configurare una destinazione Oracle Database Gateway per utilizzare il protocollo TCP/IP con l'autenticazione SSL (TCPS). Per ulteriori informazioni, vedere Configurazione dell'autenticazione Secure Sockets Layer.

Per creare i database link da un'istanza di Autonomous Database su un endpoint pubblico a un Oracle Database Gateway di destinazione, 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.
    Nota

    Il file wallet, insieme all'ID utente e alla password del database, fornisce l'accesso ai dati disponibili tramite l'Oracle Database 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 si memorizza cwallet.sso. Per informazioni sui parametri di nome utente e password per diversi servizi di storage degli oggetti, vedere CREATE_CREDENTIAL Procedure.
  3. Creare una directory nell'istanza di 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.

    Il valore 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 gateway di destinazione.

  5. Nell'istanza di Autonomous Database creare una credenziale 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 da utilizzare quando si crea il database link, in cui è possibile accedere al database di destinazione tramite Oracle Database Gateway.

    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.

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

  6. Creare un database link per accedere 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);
    END;
    /

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

  7. Utilizzare il database link per accedere ai dati sul 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 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.

Per un esempio che mostra come creare un database link a un database Oracle Database Gateway per accedere a un database Microsoft SQL Server, vedere:

Come accedere ai database non Oracle da Autonomous Database utilizzando Oracle Database Gateway

Per ulteriori informazioni, vedere: