建立從 Autonomous Database 到另一個 Autonomous Database 的 TLS 資料庫連結
必須啟用 JavaScript 才能正確顯示此內容
建立從 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):
- 確定已啟用單向 TLS 連線。
依照預設,佈建 AVMC 時會啟用單向 TLS 連線。請參閱建立自治式 Exadata VM 叢集以瞭解詳細資訊。
附註:
在
Autonomous Database on Dedicated Exadata Infrastructure 中,無公事包連線透過安裝公用 CA 所發出的自訂 SSL 憑證,適用於單向 TLS。如需詳細資訊,請參閱
準備無 TLS 公事包連線。
- 在建立資料庫連結的 Autonomous Database 執行處理上,建立存取目標 Autonomous Database 的證明資料。您以
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
建立目標 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
的權限。
- 使用您建立的資料庫連結來存取目標資料庫上的資料。
舉例而言:
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 的資料庫連結:
- 確定已啟用 mTLS 連線。
依照預設,AVMC 會啟用單向 TLS 連線。您可以在佈建 AVMC 時,選取啟用相互 TLS (mTLS) 認證核取方塊,以啟用相互 TLS (mTLS) 認證。請參閱建立自治式 Exadata VM 叢集以瞭解詳細資訊。
- 將包含目標資料庫憑證的目標資料庫公事包
cwallet.sso
複製到物件存放區。
- 建立證明資料以存取儲存公事包檔案
cwallet.sso
的物件存放區。請參閱 CREATE_CREDENTIAL 程序,瞭解不同物件儲存服務的使用者名稱和密碼參數相關資訊。
- 在 Autonomous Database 上建立公事包檔案
cwallet.sso
的目錄。
舉例而言:
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
- 使用
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 命名空間瞭解詳細資訊。
- 在 Autonomous Database 執行處理上,建立存取目標資料庫的證明資料。您以
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 => '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
。
- 使用您建立的資料庫連結來存取目標資料庫上的資料。
舉例而言:
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_LINKS 或 Oracle Database 23ai Database Reference ,瞭解詳細資訊。
-
公事包檔案以及資料庫使用者 ID 和密碼,可讓您存取目標 Autonomous Database 中的資料。將公事包檔案儲存在安全位置。只與授權的使用者共用公事包檔案。
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
輸入應提及目標專用 Autonomous Database 的掃描名稱作為 'hostname' 參數。