從自治式 AI 資料庫建立 TLS 資料庫連結到另一個自治式 AI 資料庫

您可以從專用 Exadata 基礎架構上的自治式 AI 資料庫建立 TLS 資料庫連結到公用端點上的目標自治式 AI 資料庫。

從自治式 AI 資料庫建立單向 TLS 資料庫連結到另一個自治式 AI 資料庫

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

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

如需尋找外送 IP 位址的詳細資訊,請參閱取得租用戶詳細資訊

建立不使用公事包 (TLS) 之目標自治式 AI 資料庫的資料庫連結:

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

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

    注意:在專用 Exadata 基礎架構上的自治式 AI 資料庫中,無公事包連線可藉由安裝公用 CA 發出的自訂 SSL 憑證,運作單向 TLS。如需詳細資訊,請參閱準備 TLS 無公事包連線

  2. 在您要建立資料庫連結的自治式 AI 資料庫執行處理上,建立用以存取目標自治式 AI 資料庫的證明資料。您以 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 建立目標自治式 AI 資料庫執行處理的資料庫連結。

    舉例而言:

     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 至目標自治式 AI 資料庫的資料庫連結,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 為新密碼。

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

如需其他資訊,請參閱:

從自治式 AI 資料庫建立 mTLS 資料庫連結到另一個自治式 AI 資料庫

您可以從專用 Exadata 基礎架構上的自治式 AI 資料庫建立 mTLS 資料庫連結到可公開存取的自治式 AI 資料庫。

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

如需尋找外送 IP 位址的詳細資訊,請參閱取得租用戶詳細資訊

使用公事包 (mTLS) 建立目標自治式 AI 資料庫的資料庫連結:

  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. 在「自治式 AI 資料庫」上建立公事包檔案 cwallet.sso 的目錄。

    舉例而言:

    CREATE DIRECTORY *dblink_wallet_dir* AS '*directory_path_of_your_choice*';
    

    如需有關建立目錄的資訊,請參閱在 Autonomous AI 資料庫中建立目錄

  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 是儲存桶名稱。請參閱瞭解物件儲存命名空間以瞭解詳細資訊。

  6. 在自治式 AI 資料庫執行處理上,建立用以存取目標資料庫的證明資料。您以 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 是新密碼。

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

如需其他資訊,請參閱:

資料庫連結備註與自治式 AI 資料庫的目標

提供建立另一個自治式 AI 資料庫之目標資料庫連結的注意事項。

其他自治式 AI 資料庫的資料庫連結注意事項:

相關內容