存取管理適用的 DBMS_CLOUD
必備條件
身為開發人員,您可以將 DBMS_CLOUD 程序與部署在 Oracle Public Cloud 、多重雲端或 Exadata Cloud@Customer 上的 Autonomous Database 搭配使用。
視部署選擇而定,必須符合下列先決條件,才能將 DBMS_CLOUD 程序與 Amazon S3 、Azure Blob Storage 及 Google Cloud Storage 服務提供者搭配使用。
- 請依照 Oracle Cloud Infrastructure 文件中建立 NAT 閘道的指示,在 Autonomous Database 資源所在的虛擬雲端網路 (VCN) 中建立 NAT 閘道。
- 建立 NAT 閘道之後,請在 Autonomous Database 資源所在的每個子網路新增路由規則和傳出安全規則 (在 VCN 中),以便這些資源能夠使用此閘道從您的 Azure AD 執行處理取得公開金鑰:
- 移至子網路的子網路詳細資訊頁面。
- 在子網路資訊頁籤中,按一下子網路的路由表名稱,以顯示其路由表詳細資訊頁面。
- 在現有路由規則的表格中,檢查是否已有具有下列特性的規則:
- 目標:0.0.0.0/0
- 目標類型:NAT 閘道
- 目標:剛在 VCN 中建立的 NAT 閘道名稱
如果沒有這類規則,請按一下新增路由規則,然後新增具有這些特性的路由規則。
- 返回子網路的子網路詳細資訊頁面。
- 在子網路的安全清單表格中,按一下子網路安全清單的名稱,以顯示其安全清單詳細資訊頁面。
- 在側邊功能表的資源下,按一下傳出規則。
- 在現有傳出規則的表格中,檢查是否已有具有下列特性的規則:
- 目標類型: CIDR
- 目的地:0.0.0.0/0
- IP 協定: TCP
- 來源連接埠範圍: 443
- 目的地連接埠範圍:全部
如果該規則不存在,請按一下新增輸出規則,然後新增具有這些特性的輸出規則。
您環境中的 HTTP 代理主機設定值必須允許資料庫存取雲端服務提供者。
附註:
必須等到 Exadata 基礎架構為需要啟用狀態後,才能編輯網路組態 (包括 HTTP 代理主機)。啟用之後,您就無法編輯這些設定值。在 My Oracle Support 中設定已啟動設定之 Exadata 基礎架構的 HTTP 代理主機時,必須要有服務要求 (SR)。請參閱 在 My Oracle Support 中建立服務要求瞭解詳細資訊。
存取管理適用的 DBMS_CLOUD 子程式
DBMS_CLOUD 套裝程式內用於證明資料管理的子程式,包括建立、刪除及更新證明資料。
子程式 | 描述 |
---|---|
此程序會將雲端服務證明資料儲存在 Autonomous Database 中。 | |
此程序會從 Autonomous Database 移除現有的證明資料。 | |
此程序會更新 Autonomous Database 中的雲端服務證明資料屬性。 |
CREATE_CREDENTIAL 程序
此程序會將雲端服務證明資料儲存在 Autonomous Database 中。
使用預存雲端服務證明資料存取雲端服務以進行資料載入、查詢位於雲端的外部資料,或者使用 DBMS_CLOUD
程序搭配 credential_name
參數時的其他情況。
語法
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2);
參數
Parameter - 參數 | 描述 |
---|---|
|
要儲存的證明資料名稱。 |
|
|
|
|
|
指定使用者的 OCID。請參閱取得租用戶 OCID 和使用者 OCID 的位置,瞭解取得使用者 OCID 的詳細資訊。 |
|
指定租用戶的 OCID。請參閱取得租用戶 OCID 和使用者 OCID 的位置,瞭解取得租用戶 OCID 的詳細資訊。 |
|
指定產生的私密金鑰。不支援以密碼詞組產生私密金鑰。您必須產生不含密碼詞組的私密金鑰。如需以 PEM 格式產生金鑰組的詳細資訊,請參閱 How to Generate an API Signing Key 。 |
|
指定指紋。將產生的公開金鑰上傳至使用者的帳戶後,主控台中就會顯示指紋。對此引數使用顯示的指紋。如需詳細資訊,請參閱 How to Get the Key's Fingerprint 和 How to Generate an API Signing Key 。 |
使用注意事項
-
此作業會以加密格式將證明資料儲存在資料庫中。
-
您可以查詢
user_credentials
表格來查看綱要中的證明資料。 -
ADMIN
使用者可以透過查詢dba_credentials
表格來查看所有證明資料。 -
除非您的雲端服務證明資料變更,否則您只需要建立證明資料一次。儲存證明資料之後,您就可以對需要
credential_name
參數的DBMS_CLOUD
程序使用相同的證明資料名稱。 -
此程序已超載。如果您提供其中一個以金鑰為基礎的認證屬性 (
user_ocid
、tenancy_ocid
、private_key
或fingerprint
),則呼叫會假設為以 Oracle Cloud Infrastructure 簽署金鑰為基礎的證明資料。 -
您可以從檢視
ALL_CREDENTIALS
列出證明資料。例如,執行下列命令以列出證明資料:SELECT credential_name, username, comments FROM all_credentials;
Oracle Cloud Infrastructure 證明資料 (認證權杖)
對於 Oracle Cloud Infrastructure ,username
是您的 Oracle Cloud Infrastructure 使用者名稱。password
是您的 Oracle Cloud Infrastructure 認證權杖。請參閱使用認證權杖。
舉例而言:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
認證對 OCI 物件儲存的呼叫時,請使用「認證權杖」式證明資料。如需對任何其他類型 Oracle Cloud Infrastructure 雲端服務的呼叫,請使用 Oracle Cloud Infrastructure 簽署金鑰型證明資料。
Oracle Cloud Infrastructure 簽署金鑰型證明資料
使用 Oracle Cloud Infrastructure 簽署金鑰相關參數,包括:user_ocid
、tenancy_ocid
、private_key
及 fingerprint
與 Oracle Cloud Infrastructure 簽署金鑰認證。
舉例而言:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
不支援以密碼詞組產生私密金鑰。您必須產生不含密碼詞組的私密金鑰。請參閱 How to Generate an API Signing Key 瞭解詳細資訊。
Amazon Web Services (AWS) 憑證
如果您的來源檔案位於 Amazon S3 ,或者您正在呼叫 AWS API,則 username
是您的 AWS 存取金鑰 ID,而 password
是您的 AWS 密碼存取金鑰。請參閱 AWS Identity and Access Management 。
Microsoft Azure 證明資料
如果您的來源檔案位於 Azure Blob 儲存體中,或者您正在呼叫 Azure API,則 username
會是您的 Azure 儲存體帳戶名稱,而 password
則是 Azure 儲存體帳戶存取金鑰。請參閱關於 Azure 儲存體帳戶。
Amazon S3 相容 憑證
管理 DBMS_CLOUD 證明資料以認證 C3 物件儲存
您可以使用 DBMS_CLOUD.CREATE_CREDENTIAL
程序為 Autonomous Database 提供連線至 C3 物件儲存的儲存桶所需的認證資訊。使用與 Oracle Cloud Infrastructure 簽署金鑰認證相關的 Oracle Cloud Infrastructure 簽署金鑰參數,包括 user_ocid
、tenancy_ocid
、private_key
和 fingerprint
。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => 'OBJECT_STORAGE_CREDENTIAL',
user_ocid => 'ocid1.user.oc1..abcdedfxxxxx………',
tenancy_ocid => 'ocid1.tenancy.oc1..abcdefxyyyyyy…..',
private_key => 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDku_Rest_of_PrivateKey_no_spaces_no_newlines',
fingerprint => '3d:ba:f9:aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:xa:xb:xc'
);
END;
/
DROP_CREDENTIAL 程序
此程序會從 Autonomous Database 移除現有的證明資料。
語法
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
參數
Parameter - 參數 | 描述 |
---|---|
|
要移除的證明資料名稱。 |
UPDATE_CREDENTIAL 程序
此程序會以指定之 credential_name
的新值更新屬性。
使用預存證明資料載入資料、查詢位於雲端的外部資料,或者使用 DBMS_CLOUD
程序搭配 credential_name
參數的位置。
語法
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
參數
Parameter - 參數 | 描述 |
---|---|
|
要更新的證明資料名稱。 |
|
要更新的屬性名稱。 對於使用者名稱 / 密碼類型證明資料,有效的 如需詳細資訊,請參閱CREATE_CREDENTIAL 程序。 |
|
指定之屬性的新值。 |
使用注意事項
-
使用者名稱值區分大小寫。不能包含雙引號或空格。
-
ADMIN
使用者可以透過查詢dba_credentials
來查看所有證明資料。 -
除非您的雲端服務證明資料變更,否則您只需要建立證明資料一次。儲存證明資料之後,您就可以對需要
credential_name
參數的DBMS_CLOUD
程序使用相同的證明資料名稱。 -
您可以從檢視
ALL_CREDENTIALS
列出證明資料。例如,執行下列命令以列出證明資料:SELECT credential_name, username, comments FROM all_credentials;
範例
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/