建立從 Autonomous Database 到另一個 Autonomous Database 的 TLS 資料庫連結

您可以從專用 Exadata 基礎架構上的 Autonomous Database 建立 TLS 資料庫連結到公用端點上的目標 Autonomous Database

建立從 Autonomous Database 到另一個 Autonomous Database 的單向 TLS 資料庫連結

您可以從專用 Exadata 基礎架構上的 Autonomous Database 建立單向 TLS 資料庫連結到可公開存取的 Autonomous Database

若要建立公用目標的資料庫連結,目標資料庫必須可供存取。部分資料庫 (包括 Autonomous Database) 可能會限制存取 (例如使用「存取控制清單」)。請確定啟用您的目標資料庫,以允許從您的來源資料庫存取資料庫連結。如果您使用存取控制清單 (ACL) 來限制存取,您可以找到來源 Autonomous Database 的輸出 IP 位址,並允許該 IP 位址連接到您的目標資料庫。當目標資料庫是另一個 Autonomous Database 時,您可以將來源資料庫的外送 IP 位址新增至目標資料庫的 ACL。

請參閱取得租用戶詳細資訊,瞭解尋找輸出 IP 位址的資訊。

若要建立連至目標 Autonomous Database 的資料庫連結,但不使用公事包 (TLS):

  1. 確定已啟用單向 TLS 連線。

    依照預設,佈建 AVMC 時會啟用單向 TLS 連線。請參閱建立自治式 Exadata VM 叢集以瞭解詳細資訊。

    附註:

    Autonomous Database on Dedicated Exadata Infrastructure 中,無公事包連線透過安裝公用 CA 所發出的自訂 SSL 憑證,適用於單向 TLS。如需詳細資訊,請參閱準備無 TLS 公事包連線
  2. 在建立資料庫連結的 Autonomous Database 執行處理上,建立存取目標 Autonomous Database 的證明資料。您以 DBMS_CLOUD.CREATE_CREDENTIAL 指定的 usernamepassword 是目標資料庫的證明資料 (您可以使用這些證明資料來建立資料庫連結)。

    附註:

    必須提供 credential_name 參數。

    舉例而言:

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

    username 參數中的字元必須全部為大寫字母。

    此作業會以加密格式將證明資料儲存在資料庫中。您可以使用任何證明資料名稱。

  3. 使用 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 建立目標 Autonomous Database 執行處理的資料庫連結。

    舉例而言:

    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;
    /

    若要使用不含公事包的安全 TCP 連線,在公用端點上使用 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 建立與目標 Autonomous Database 的資料庫連結,directory_name 參數必須為 NULL

    TLS 連線的 port 參數值必須設為 2484。不過,如果在佈建 AVMC 時選擇了不同的 SCAN 監聽器連接埠號碼,則必須使用該連接埠號碼。請參閱建立自治式 Exadata VM 叢集以瞭解詳細資訊。

    您可以省略 ssl_server_cert_dn 參數,或者如果包含,請指定 NULL 值。

    ADMIN 以外的使用者需要執行 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 的權限。

  4. 使用您建立的資料庫連結來存取目標資料庫上的資料。

    舉例而言:

    SELECT * FROM employees@SALESLINK;
                

對於您在步驟 1 中建立的證明資料,目標資料庫證明資料,如果目標使用者的密碼變更,您可以更新包含目標使用者證明資料的證明資料,如下所示:

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

其中,password 是新密碼。

此作業之後,使用此證明資料的現有資料庫連結會繼續運作,而不需要刪除並重新建立資料庫連結。

如需其他資訊,請參閱:

建立從 Autonomous Database 到另一個 Autonomous Database 的 mTLS 資料庫連結

您可以從專用 Exadata 基礎架構上的 Autonomous Database 建立 mTLS 資料庫連結到可公開存取的 Autonomous Database

若要建立公用目標的資料庫連結,目標資料庫必須可供存取。部分資料庫 (包括 Autonomous Database) 可能會限制存取 (例如使用「存取控制清單」)。請確定啟用您的目標資料庫,以允許從您的來源資料庫存取資料庫連結。如果您使用存取控制清單 (ACL) 來限制存取,您可以找到來源 Autonomous Database 的輸出 IP 位址,並允許該 IP 位址連接到您的目標資料庫。例如,如果目標資料庫是另一個 Autonomous Database ,您可以將來源資料庫的外送 IP 位址新增至目標資料庫的 ACL。

請參閱取得租用戶詳細資訊,瞭解尋找輸出 IP 位址的資訊。

使用公事包 (mTLS) 建立目標 Autonomous Database 的資料庫連結:

  1. 確定已啟用 mTLS 連線。

    依照預設,AVMC 會啟用單向 TLS 連線。您可以在佈建 AVMC 時,選取啟用相互 TLS (mTLS) 認證核取方塊,以啟用相互 TLS (mTLS) 認證。請參閱建立自治式 Exadata VM 叢集以瞭解詳細資訊。

  2. 將包含目標資料庫憑證的目標資料庫公事包 cwallet.sso 複製到物件存放區。

    請注意下列公事包檔案:

    • 公事包檔案以及資料庫使用者 ID 和密碼,可讓您存取目標 Oracle Database 中的資料。將公事包檔案儲存在安全位置。只與授權的使用者共用公事包檔案。

    • 請勿重新命名公事包檔案。物件儲存中的公事包檔案必須命名為 cwallet.sso

  3. 建立證明資料以存取儲存公事包檔案 cwallet.sso 的物件存放區。請參閱 CREATE_CREDENTIAL 程序,瞭解不同物件儲存服務的使用者名稱和密碼參數相關資訊。
  4. Autonomous Database 上建立公事包檔案 cwallet.sso 的目錄。

    舉例而言:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
                

    請參閱在 Autonomous Database 中建立目錄,瞭解建立目錄的相關資訊。

  5. 使用 DBMS_CLOUD.GET_OBJECT ,將目標資料庫公事包上傳至您在上一個步驟 DBLINK_WALLET_DIR 中建立的目錄。

    舉例而言:

    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;
    /

    在此範例中,namespace-string 是 Oracle Cloud Infrastructure 物件儲存命名空間,bucketname 是儲存桶名稱。請參閱瞭解 Object Storage 命名空間瞭解詳細資訊。

  6. Autonomous Database 執行處理上,建立存取目標資料庫的證明資料。您以 DBMS_CLOUD.CREATE_CREDENTIAL 指定的 usernamepassword 是用來建立資料庫連結之目標資料庫的證明資料。

    附註:

    必須提供 credential_name 參數。

    舉例而言:

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

    username 參數中的字元必須全部為大寫字母。

    此作業會以加密格式將證明資料儲存在資料庫中。您可以使用任何證明資料名稱。

  7. 使用 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 建立目標資料庫的資料庫連結。

    舉例而言:

    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;
    /

    ADMIN 以外的使用者需要執行 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 的權限。

    TLS 連線的 port 參數值必須設為 2484。不過,如果在佈建 AVMC 時選擇了不同的 SCAN 監聽器連接埠號碼,則必須使用該連接埠號碼。請參閱建立自治式 Exadata VM 叢集以瞭解詳細資訊。

    如果使用 directory_name 指定之目錄中的公事包檔案不是 cwallet.sso,則程序會報告如下的錯誤:ORA-28759: failure to open file

  8. 使用您建立的資料庫連結來存取目標資料庫上的資料。

    舉例而言:

    SELECT * FROM employees@SALESLINK;
                

對於您在步驟 5 中建立的證明資料,目標資料庫證明資料,如果目標使用者的密碼變更,您可以更新包含目標使用者證明資料的證明資料,如下所示:

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

其中,password 是新密碼。

此作業之後,使用此證明資料的現有資料庫連結會繼續運作,而不需要刪除並重新建立資料庫連結。

如需其他資訊,請參閱:

具有 Autonomous Database 目標的資料庫連結備註

提供與另一個 Autonomous Database 目標建立資料庫連結的備註。

資料庫連結至另一個 Autonomous Database 的注意事項:

  • 每個目錄只有一個有效的公事包檔案,才能與資料庫連結搭配使用。您一次只能將一個 cwallet.sso 上傳至您為公事包檔案選擇的目錄 (例如 DBLINK_WALLET_DIR)。這表示在 DBLINK_WALLET_DIR 中使用 cwallet.sso,您只能建立資料庫連結到該目錄中公事包有效的資料庫。若要使用多個含有資料庫連結的 cwallet.sso 檔案,您必須建立其他目錄,並將每個 cwallet.sso 放在不同的目錄中。使用 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 建立資料庫連結時,請指定包含公事包的目錄以及 directory_name 參數。

    請參閱在 Autonomous Database 中建立目錄,瞭解建立目錄的相關資訊。

  • 若要列出資料庫連結,請使用 ALL_DB_LINKS 視觀表。請參閱 Oracle Database 19c Database Reference 中的 ALL_DB_LINKSOracle Database 23ai Database Reference ,瞭解詳細資訊。

  • 公事包檔案以及資料庫使用者 ID 和密碼,可讓您存取目標 Autonomous Database 中的資料。將公事包檔案儲存在安全位置。只與授權的使用者共用公事包檔案。

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 輸入應提及目標專用 Autonomous Database 的掃描名稱作為 'hostname' 參數。