使用公事包 (mTLS) 建立從自治式 AI 資料庫至可公開存取之 Oracle Database 的資料庫連結

您可以從自治式 AI 資料庫建立資料庫連結到公用端點上的目標 Oracle 資料庫。

若要將資料庫連結與自治式 AI 資料庫搭配使用,必須將目標資料庫設定為使用 TCP/IP 與 SSL (TCPS) 認證。自治式 AI 資料庫預設使用 TCP/IP 與 SSL (TCPS) 認證,因此您不需要在目標資料庫中執行任何其他組態來連結至另一個自治式 AI 資料庫。其他 Oracle 資料庫必須設定為使用 TCP/IP 與 SSL (TCPS) 認證。請參閱 Oracle Database 19c Security Guide 中的 Configuring Secure Sockets Layer AuthenticationOracle Database 26ai Security Guide ,瞭解詳細資訊。

若要建立公用目標的資料庫連結,必須能夠存取 Oracle Database 目標。某些資料庫可能會限制存取 (例如,使用「存取控制清單」)。請確定啟用您的目標資料庫,以允許從來源資料庫存取資料庫連結。如果您使用存取控制清單 (ACL) 來限制存取,則可以找到來源 Autonomous AI Database 的輸出 IP 位址,並允許該 IP 位址連接到目標資料庫。

請參閱如何從您的自治式 AI 資料庫建立資料庫連結到 Database Cloud Service 執行處理以瞭解詳細資訊。

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

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

    請注意下列公事包檔案:

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

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

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

  3. 在「自治式 AI 資料庫」上建立公事包檔案 cwallet.sso 的目錄。

    舉例而言:

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

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

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

    注意:您在此步驟中使用的 credential_name 是「物件存放區」的證明資料。下一步是建立用以存取目標資料庫的證明資料。

  5. 在自治式 AI 資料庫執行處理上,建立用以存取目標資料庫的證明資料。您以 DBMS_CLOUD.CREATE_CREDENTIAL 指定的 usernamepassword 是您用來建立資料庫連結之目標資料庫的證明資料。

    注意:必須提供 credential_name 參數。

    舉例而言:

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

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

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

  6. 使用 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 => '1522',
             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 的權限。

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

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

    舉例而言:

     SELECT * FROM employees@SALESLINK;
    

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

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

其中,密碼為新密碼。

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

如需其他資訊,請參閱:

資料庫連結備註與目標 Oracle Database

提供建立目標 Oracle 資料庫之資料庫連結 (目標不是自治式 AI 資料庫時) 的注意事項

其他 Oracle 資料庫的資料庫連結注意事項:

相關內容

DBMS_CLOUD_ADMIN 套裝程式