使用公事包 (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 Authentication 或 Oracle Database 26ai Security Guide ,瞭解詳細資訊。
若要建立公用目標的資料庫連結,必須能夠存取 Oracle Database 目標。某些資料庫可能會限制存取 (例如,使用「存取控制清單」)。請確定啟用您的目標資料庫,以允許從來源資料庫存取資料庫連結。如果您使用存取控制清單 (ACL) 來限制存取,則可以找到來源 Autonomous AI Database 的輸出 IP 位址,並允許該 IP 位址連接到目標資料庫。
請參閱如何從您的自治式 AI 資料庫建立資料庫連結到 Database Cloud Service 執行處理以瞭解詳細資訊。
使用公事包 (mTLS) 建立目標 Oracle 資料庫的資料庫連結:
-
將包含目標資料庫憑證的目標資料庫公事包
cwallet.sso複製到「物件存放區」。請注意下列公事包檔案:
-
公事包檔案以及資料庫使用者 ID 和密碼,可讓您存取目標 Oracle Database 中的資料。將錢包檔案存放在安全的位置 。只有授權的使用者才能共用公事包檔案。
-
請勿重新命名公事包檔案。物件儲存中的公事包檔案必須命名為
cwallet.sso。
-
-
建立證明資料以存取您儲存公事包檔案
cwallet.sso的「物件存放區」。請參閱 CREATE_CREDENTIAL 程序,瞭解不同物件儲存服務的使用者名稱和密碼參數相關資訊。 -
在「自治式 AI 資料庫」上建立公事包檔案
cwallet.sso的目錄。舉例而言:
CREATE DIRECTORY *dblink_wallet_dir* AS '*directory_path_of_your_choice*';如需有關建立目錄的資訊,請參閱在 Autonomous AI 資料庫中建立目錄。
-
使用
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是「物件存放區」的證明資料。下一步是建立用以存取目標資料庫的證明資料。 -
在自治式 AI 資料庫執行處理上,建立用以存取目標資料庫的證明資料。您以
DBMS_CLOUD.CREATE_CREDENTIAL指定的username和password是您用來建立資料庫連結之目標資料庫的證明資料。注意:必須提供
credential_name參數。舉例而言:
BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'DB_LINK_CRED', username => 'NICK', password => '*password*'); END; /username參數中的字元必須全部都是大寫字母。此作業會以加密格式將證明資料儲存在資料庫中。您可以為證明資料名稱使用任何名稱。
-
使用
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。 -
使用您建立的資料庫連結來存取目標資料庫上的資料。
舉例而言:
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 資料庫的資料庫連結注意事項:
-
每個目錄只有一個公事包檔案可供資料庫連結使用。您一次只能將一個
cwallet.sso上傳到您為公事包檔案選擇的目錄 (例如 DBLINK_WALLET_DIR)。這表示在 DBLINK_WALLET_DIR 中使用cwallet.sso,您只能為該目錄中公事包有效的資料庫建立資料庫連結。若要使用多個具有資料庫連結的cwallet.sso檔案,您必須建立其他目錄,並將每個cwallet.sso放置在不同的目錄中。使用DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK建立資料庫連結時,請使用directory_name參數指定包含公事包的目錄。如需有關建立目錄的資訊,請參閱在 Autonomous AI 資料庫中建立目錄。
-
支援另一個 Oracle Database 資料庫連結的目標 Oracle 資料庫版本為:19c、12.2.0 和 12.1.0。
注意:如需有關支援版本的完整資訊,請參閱不同 Oracle 版本的從屬端伺服器互通性支援矩陣 (文件 ID 207303.1)
-
自治式 AI 資料庫會將
SEC_CASE_SENSITIVE_LOGON參數設為true,因此無法變更此值。如果您的目標資料庫不是自治式 AI 資料庫,則必須在目標資料庫上將SEC_CASE_SENSITIVE_LOGON參數設為true。如果目標資料庫上的SEC_CASE_SENSITIVE_LOGON設為false,則會發出錯誤ORA-28040: No matching authentication protocol。 -
若要列出資料庫連結,請使用
ALL_DB_LINKS檢視。請參閱 Oracle Database 19c Database Reference 中的 ALL_DB_LINKS 或是 Oracle Database 26ai Database Reference ,瞭解詳細資訊。 -
公事包檔案以及資料庫使用者 ID 和密碼,可讓您存取目標 Oracle 資料庫中的資料。將錢包檔案存放在安全的位置 。只有授權的使用者才能共用公事包檔案。
-
當自治式 AI 資料庫執行處理位於專用端點時,有兩種指定目標資料庫的選項:使用
hostname參數或rac_hostnames參數:-
針對專用端點上的目標,
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK支援使用hostname參數指定單一主機名稱。在專用端點上,不支援使用 IP 位址、SCAN IP 或 SCAN 主機名稱 (當目標位於公用端點時,CREATE_DATABASE_LINK會支援使用 IP 位址、SCAN IP 或 SCAN 主機名稱)。 -
當目標為 Oracle RAC 資料庫時,請使用
rac_hostnames參數指定一或多個含有DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK的主機名稱。這可讓您利用 Oracle RAC 的高可用性功能。不支援在rac_hostnames值中使用 IP 位址、SCAN IP 或 SCAN 主機名稱。當您在
rac_hostnames參數中指定主機名稱清單時,CREATE_DATABASE_LINK會使用所有指定的主機名稱作為連線字串中的位址。如果目標 Oracle RAC 資料庫上沒有其中一個指定的主機,Autonomous Database 會自動嘗試使用清單中的另一個主機名稱連線。 -
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK不支援hostname或rac_hostnames參數中的localhost值。
-