DBMS_CLOUD_ADMIN 套裝軟體

本節涵蓋 Autonomous Database 隨附的 DBMS_CLOUD_ADMIN 子程式。

子程式 描述

ATTACH_FILE_SYSTEM 程序

此程序會在您資料庫的目錄中附加檔案系統。

CREATE_DATABASE_LINK 程序

此程序會建立目標資料庫的資料庫連結。您可以選擇建立連到另一個 Autonomous Database 執行處理的資料庫連結、不是 Autonomous Database 的 Oracle Database,或使用 Oracle 管理的異質連線建立連到非 Oracle Database 的資料庫連結。

DETACH_FILE_SYSTEM 程序

此程序會從資料庫的目錄切離檔案系統。

DISABLE_EXTERNAL_AUTHENTICATION 程序

此程序會停用 Autonomous Database 執行處理的外部認證。

DROP_DATABASE_LINK 程序

此程序會刪除資料庫連結。

ENABLE_EXTERNAL_AUTHENTICATION 程序

此程序可讓使用者使用指定的外部認證配置登入 Autonomous Database

ATTACH_FILE_SYSTEM 程序

此程序會連附資料庫中的檔案系統。

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 程序會在您的資料庫中附加檔案系統,並將檔案系統的相關資訊儲存在 DBA_CLOUD_FILE_SYSTEMS 檢視中。

語法

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name         IN VARCHAR2,
    file_system_location     IN VARCHAR2,
    directory_name           IN VARCHAR2,
    description              IN VARCHAR2 DEFAULT NULL,
    params                   IN CLOB DEFAULT NULL
);

參數

Parameter - 參數 描述

file_system_name

指定檔案系統的名稱。

此為必要參數。

file_system_location

指定檔案系統的位置。

您提供給 file_system_location 的值包含「完整網域名稱 (FQDN)」,且檔案路徑的格式為: FQDN:file_path

舉例而言:

  • FQDN:myhost.sub000445.myvcn.oraclevcn.com

    若為 Oracle Cloud Infrastructure File Storage ,請在建立檔案系統時,於顯示進階選項中設定 FQDN。如需詳細資訊,請參閱 Creating File Systems

  • 檔案路徑:/results

此為必要參數。

directory_name

指定連接檔案系統的目錄名稱。該目錄必須存在。

此為必要參數。

description

(選擇性) 提供任務的描述。

params

提供檔案系統額外參數的 JSON 字串。

  • nfs_version:指定附加 NFS 時要使用的 NFS 版本 (NFSv3 或 NFSv4)。有效值:3、4。

    預設值:3

範例:

附加至 NFSv3 檔案系統:

BEGIN
   DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name      => 'FSS',
    file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
    directory_name        => 'FSS_DIR',
    description           => 'Source NFS for sales data'
  );
END;
/     

附加至 NFSv4 檔案系統:

BEGIN
   DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name      => 'FSS',
    file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
    directory_name        => 'FSS_DIR',  
    description           => 'Source NFS for sales data',
    params                => JSON_OBJECT('nfs_version' value 4)
);                                                      
END;                                                        
/

使用注意事項

  • 若要執行此程序,您必須以 ADMIN 使用者身分登入,或具備 DBMS_CLOUD_ADMINEXECUTE 權限。

  • 您必須具有資料庫中目錄物件的 WRITE 權限,才能使用 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 附加檔案系統。

  • DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 程序只能在已啟用「專用端點」的資料庫中附加專用檔案儲存服務。

    請參閱 OCI File Storage Service設定開發系統以存取資料庫以瞭解詳細資訊。

  • DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM 程序會在客戶的虛擬雲端網路 (VCN) 上查詢網路檔案系統主機名稱。如果找不到位置中指定的主機名稱,就會傳回錯誤 "ORA-20000: Mounting NFS fails"

  • Oracle Cloud Infrastructure File Storage 使用 NFSv3 進行共用

  • 如果您連附至非 Oracle Cloud Infrastructure File Storage 系統,此程序支援 NFSv3 和 NFSv4

  • 如果您所附的 NFS 伺服器使用 NFSv3,且 NFS 版本已更新為 NFS 伺服器中的 NFSv4,則必須執行 DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM ,然後執行 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (使用 params 參數,將 nfs_version 設為 4)。這會連附具有相符協定的 NFS,讓 Autonomous Database 可以存取 NFSv4 伺服器。若未先取消連附後再重新連附,將無法存取 NFS 伺服器,而且可能會看到如下的錯誤:"Protocol not supported"

CREATE_DATABASE_LINK 程序

此程序會在呼叫 API 的綱要中建立目標資料庫的資料庫連結。

超載表單支援下列項目:

  • 當您使用 gateway_params 參數時,這可讓您建立含有 Oracle 管理的異質連線的資料庫連結,其中連結是支援的非 Oracle 資料庫。

  • 使用 rac_hostnames 參數時,這可讓您從專用端點的 Autonomous Database 建立資料庫連結到目標 Oracle RAC 資料庫。在此情況下,您可以使用 rac_hostnames 參數來指定目標 Oracle RAC 資料庫中一或多個個別節點的主機名稱。

語法

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
       db_link_name         IN VARCHAR2,
       hostname             IN VARCHAR2,
       port                 IN NUMBER,
       service_name         IN VARCHAR2,
       ssl_server_cert_dn   IN VARCHAR2 DEFAULT,
       credential_name      IN VARCHAR2 DEFAULT,
       directory_name       IN VARCHAR2 DEFAULT,
       gateway_link         IN BOOLEAN DEFAULT,
       public_link          IN BOOLEAN DEFAULT,
       private_target       IN BOOLEAN DEFAULT
       gateway_params       IN CLOB DEFAULT);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
       db_link_name         IN VARCHAR2,
       rac_hostnames        IN CLOB,
       port                 IN NUMBER,
       service_name         IN VARCHAR2,
       ssl_server_cert_dn   IN VARCHAR2 DEFAULT,
       credential_name      IN VARCHAR2 DEFAULT,
       directory_name       IN VARCHAR2 DEFAULT,
       gateway_link         IN BOOLEAN DEFAULT,
       public_link          IN BOOLEAN DEFAULT,
       private_target       IN BOOLEAN DEFAULT);

參數

Parameter - 參數 描述

db_link_name

要建立之資料庫連結的名稱。

hostname

目標資料庫的主機名稱。

不允許為 hostname 指定 localhost

當您透過提供 gateway_params 參數來指定與 Oracle 管理的異質連線的連線時,請注意下列事項:

  • db_type 值為 google_bigquery 時,不會使用 hostname,而且您可以提供 example.com 等值。

  • db_type 值為 snowflake 時,hostname 會是 Snowflake 帳戶識別碼。若要尋找您的 Snowflake 帳戶識別碼,請參閱依雲端平台和區域區分的帳戶識別碼格式

使用此參數或 rac_hostnames,請勿同時使用兩者。

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 輸入應提及目標專用 Autonomous Database 的掃描名稱作為 'hostname' 參數。

rac_hostnames

指定目標 Oracle RAC 資料庫的主機名稱。此值是一個 JSON 陣列,可為目標 Oracle RAC 資料庫的節點指定一或多個個別的主機名稱。JSON 中可以傳送多個主機名稱,並以 "," 分隔。舉例而言:

'["sales1-svr1.domain", "sales1-svr2.domain",
      "sales1-svr3.domain"]'

當目標為 Oracle RAC 資料庫時,請使用 rac_hostnames 參數指定一或多個含有 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 的主機名稱。這可讓您利用 Oracle RAC 的高可用性功能。不支援使用 IP 位址、SCAN IP 或 rac_hostnames 值中的 SCAN 主機名稱。

當您在 rac_hostnames 參數中指定主機名稱清單時,CREATE_DATABASE_LINK 會使用所有指定的主機名稱作為連線字串中的位址。如果目標 Oracle RAC 資料庫上沒有其中一個指定的主機,Autonomous Database 會自動嘗試使用清單中的另一個主機名稱連線。

使用此參數或 hostname,請勿同時使用兩者。

不允許為 rac_hostname 值指定 localhost

port

指定目標資料庫連線的連接埠。

當您使用 gateway_params 參數指定與 Oracle 管理的異質連線的連線時,請根據 db_type 值設定連接埠:

  • awsredshift:使用連接埠 5439
  • azure:使用連接埠 1433
  • db2:Db2 版本 >= 11.5.6 使用連接埠 2500
  • db2:Db2 版本 <= 11.5.5 使用連接埠 5000
  • google_analytics:使用連接埠 443
  • google_bigquery:使用連接埠 443
  • hive:使用連接埠 433
  • mongodb:使用連接埠 27017
  • mysql:使用連接埠 3306
  • mysql_community:使用連接埠 3306
  • postgres:使用連接埠 5432
  • salesforce:使用連接埠 19937
  • servicenow:使用連接埠 443
  • snowflake:使用連接埠 443

service_name

要連結之資料庫的 service_name。針對目標 Autonomous Database ,使用下列其中一種方法尋找服務名稱:

  • 查看從 Autonomous Database 下載的 wallet.zip 中的 tnsnames.ora 檔案以進行連線。

  • 按一下 Oracle Cloud Infrastructure 主控台上的資料庫連線連線字串資料欄中所列的每個連線字串都包含一個 service_name 項目,以及對應服務的連線字串。請參閱檢視 Autonomous Database 的連線字串以瞭解詳細資訊。

  • 查詢 V$SERVICES 檢視。舉例而言:

    SELECT name FROM V$SERVICES;

當您使用 gateway_params 參數指定與 Oracle 管理的異質連線的連線時,service_name 是非 Oracle 資料庫的資料庫名稱。

ssl_server_cert_dn

在伺服器憑證中發現的 DN 值.

Oracle 管理的異質連線會預先設定一個包含大多數共同信任根憑證和中繼 SSL 憑證的公事包。當您提供 gateway_params 參數或不包含 ssl_server_cert_dn 參數時,ssl_server_cert_dn 必須是 NULL (預設值為 NULL)。

未使用公事包之 Autonomous Database 目標的公用端點連結:

在沒有公事包 (TLS) 的情況下連線至公用端點上的 Autonomous Database 目標:

  • directory_name 參數必須是 NULL
  • ssl_server_cert_dn 參數必須是 NULL 或不包含此參數 (預設值為 NULL)。

沒有公事包的專用端點連結:

在沒有公事包的專用端點上連線至 Oracle Database:

  • 目標資料庫必須位於專用端點上。
  • directory_name 參數必須是 NULL
  • ssl_server_cert_dn 參數必須是 NULL 或不包含此參數 (預設值為 NULL)。
  • private_target 參數必須是 TRUE
credential_name

使用 DBMS_CLOUD.CREATE_CREDENTIAL 建立的預存證明資料名稱。這是存取目標資料庫的證明資料。

directory_name

cwallet.sso 檔案的目錄。此參數的預設值是 'data_pump_dir'.

Oracle 管理的異質連線會預先設定一個包含大多數共同信任根憑證和中繼 SSL 憑證的公事包。提供 gateway_params 參數時,不需要 directory_name 參數。

未使用公事包之 Autonomous Database 目標的公用端點連結:

在沒有公事包 (TLS) 的情況下連線至公用端點上的 Autonomous Database

  • directory_name 參數必須是 NULL
  • ssl_server_cert_dn 參數必須是 NULL 或不包含此參數 (預設值為 NULL)。

此外,若要使用 TCP 連線至 Autonomous Databasessl_server_cert_dn 參數必須為 NULL 或不包含此參數 (預設值為 NULL)。

沒有公事包的專用端點連結:

連線至專用端點上沒有公事包的目標 Oracle Database:

  • 目標資料庫必須位於專用端點上。
  • directory_name 參數必須是 NULL
  • ssl_server_cert_dn 參數必須是 NULL 或不包含此參數 (預設值為 NULL)。
  • private_target 參數必須是 TRUE
gateway_link

指示是否將資料庫連結建立到其他 Oracle Database 或 Oracle Database Gateway。

如果 gateway_link 設為 FALSE,這會指定連至其他 Autonomous Database 或其他 Oracle Database 的資料庫連結。

如果 gateway_link 設為 TRUE,這會指定非 Oracle 系統的資料庫連結。這會在資料庫連結定義中建立指定 (HS=OK) 的連線描述區。

gateway_link 設為 TRUEgateway_paramsNULL 時,這會指定客戶管理之 Oracle 閘道的資料庫連結。

此參數的預設值為 FALSE

public_link

指示是否將資料庫連結建立為公用資料庫連結。

若要在此參數設為 TRUE 的情況下執行 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK ,呼叫程序的使用者必須具有與公用資料庫連結關聯之證明資料的 EXECUTE 權限,而且必須具有 CREATE PUBLIC DATABASE LINK 系統權限。ADMIN 使用者或證明資料擁有者可以授與證明資料的 EXECUTE 權限。

此參數的預設值為 FALSE

private_target

當資料庫連結存取需要在 VCN DNS 伺服器中解析的主機名稱時,請指定值為 TRUEprivate_target 參數。

private_target 若為 TRUEhostname 參數必須是單一主機名稱 (在專用端點上,不支援使用 IP 位址、SCAN IP 或 SCAN 主機名稱)。

此參數的預設值為 FALSE

gateway_params

db_type 此參數指定 Oracle 管理的異質連線目標資料庫類型,以連線至非 Oracle 資料庫。db_type 值為下列其中一項:

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * db_typegoogle_bigquery 時,請參閱「使用注意事項」以取得其他支援的 gateway_params

  • hive

    * db_typehive 時,請參閱「使用注意事項」以取得其他支援的 gateway_params

  • mongodb
  • mysql
  • postgres
  • salesforce

    * db_typesalesforce 時,請參閱「使用注意事項」以取得其他支援的 gateway_params

  • servicenow

    * db_typeservicenow 時,請參閱「使用注意事項」以取得其他支援的 gateway_params

  • snowflake

    * db_typesnowflake 時,請參閱「使用注意事項」以取得其他支援的 gateway_params

  • NULL

    gateway_paramsNULLgateway_link 設為 TRUE 時,這會指定客戶管理之 Oracle 閘道的資料庫連結。

使用 json_object 表單指定參數。

舉例而言:

gateway_params => json_object('db_type' value 'awsredshift')

gateway_paramsNULLprivate_targetTRUE 時,如果 directory_nameNULL,則會建立以 TCP 為基礎的資料庫連結。

gateway_paramsNULLprivate_targetTRUE 時,如果 directory_nameNULL,則會建立以 TCPS 為基礎的資料庫連結。

使用注意事項

  • 當您指定 gateway_params 參數時,部分 db_type 值支援額外的 gateway_params 參數:

    db_type 其他 gateway_params
    google_analytics

    db_typegoogle_analytics 時,您指定的證明資料必須是 Google OAuth 證明資料 (gcp_oauth2) 請參閱 CREATE_CREDENTIAL 程序瞭解詳細資訊。

    google_bigquery

    db_typegoogle_bigquery 時,您指定的證明資料必須是 Google OAuth 證明資料 (gcp_oauth2) 請參閱 CREATE_CREDENTIAL 程序瞭解詳細資訊。

    db_typegoogle_bigquery 時,參數 project 有效。此參數指定 google_bigquery 的專案名稱,而且是必要的。

    使用 SELECT 與 Google BigQuery 時所指定的表格名稱必須以引號括住。舉例而言:

    SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
    hive

    db_typehive 時,參數 http_path 有效。如果需要,此參數會指定 HttpPath 值來連線至 Hive 執行處理。

    salesforce

    db_typesalesforce 時,參數 security_token 有效。安全性權杖是區分大小寫的英數字元代碼。必須提供 security_token 值才能存取 Salesforce。舉例而言:

    gateway_params => JSON_OBJECT(
         'db_type' value 'salesforce',
         'security_token' value 'security_token_value' )

    請參閱重設您的安全記號瞭解詳細資訊。

    servicenow

    若要連線至 ServiceNow 並取得資料,您必須提供閘道參數 directory_namefile_name。這些參數指定將 JSON 回應對應至關聯式模型的模型檔案 (REST 組態檔)。模型檔案指定用於處理 JSON 回應的端點、表格對應以及 HTTP 回應代碼。如需詳細資訊,請參閱模型檔案語法範例模型檔案

    gateway_params 參數與 db_type servicenow 搭配使用時,有兩種支援的選項:

    • 基本認證:您必須提供值為 'servicenow'gateway_params 參數 db_type,並提供 directory_namefile_name 參數以及使用者名稱 / 密碼類型證明資料。

    • OAuth 2.0 認證:您必須提供 gateway_params 參數 db_type 與值 'servicenow',以及 directory_namefile_nametoken_uri 參數,以及 OAuth 類型證明資料。

    directory_name 參數指定具有 ServiceNow REST 組態檔的目錄。您可以使用下列方式建立此目錄:

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    取得 ServiceNow REST 組態檔並將其下載至指定的目錄。舉例而言:

    exec DBMS_CLOUD.get_object('servicenow_dir_cred',
         'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');

    file_name 值設為您下載的 REST 組態檔 "servicenow.rest" 名稱。

    接著,您可以使用具有基本認證或 OAuth2。0 的 ServiceNow REST 組態檔。

    snowflake

    db_typeSNOWFLAKE 時,選擇性參數:roleschemawarehouse 有效。這些值指定不同於預設值的綱要、角色或倉儲值。舉例而言:

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
  • 使用 private_target 參數時,請注意,資料庫會從 Autonomous Database 連結至專用端點上的資料庫服務,僅支援商業區域和美國政府區域。

    所有商業區域預設都會啟用此功能。

    美國政府區域預設會對新佈建的資料庫啟用此功能。

    針對專用端點上的現有美國政府資料庫,如果您想要建立從 Autonomous Database 到美國政府區域目標的資料庫連結,請至 Oracle Cloud 支援提出服務要求,並要求在政府區域資料庫連結功能中啟用專用端點。

    美國政府區域包括:

  • 連線至非 Oracle 資料庫時,只有透過公用 IP 或公用主機名稱存取目標資料庫時,才支援資料庫連結。
  • 若要以 ADMIN 以外的使用者執行 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK ,您必須將 EXECUTECREATE DATABASE LINK 權限授與該使用者。例如,以 ADMIN 身分執行下列命令,將權限授與 atpc_user

    GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO atpc_user;
    GRANT CREATE DATABASE LINK TO atpc_user;

    此外,當您在 ADMIN 綱要以外的綱要中建立「資料庫連結」(例如在名為 atpc_user 的綱要中) 時,atpc_user 綱要必須擁有您與 DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 搭配使用的證明資料。

  • 使用 directory_name 參數指定的每個目錄只能有一個有效的公事包檔案。您一次只能將一個 cwallet.sso 上傳至您為公事包檔案選擇的目錄。這表示在目錄中有 cwallet.sso,您只能建立資料庫連結到該目錄中公事包有效的資料庫。若要使用多個含有資料庫連結的 cwallet.sso 檔案,您必須建立其他目錄,並將每個 cwallet.sso 放在不同的目錄中。

    請參閱在 Autonomous Database 中建立目錄,瞭解建立目錄的相關資訊。

  • 若要建立連到 Autonomous Database 的資料庫連結,請將來源資料庫上的 GLOBAL_NAMES 設為 FALSE (非 Autonomous Database)。

    SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
     
    System altered.
    
    SQL> SHOW PARAMETER GLOBAL_NAMES
    NAME                     TYPE        VALUE
    ----------------------   ----------- -----------
    global_names             boolean     FALSE
    
  • private_target 參數為 TRUE 時,hostname 參數會指定 VCN 內部的專用主機。

範例

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
     credential_name => 'DB_LINK_CRED',
     username => 'adb_user',
     password => 'password');
  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');
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AWS_REDSHIFT_LINK_CRED',
    username => 'NICK',
    password => 'password'
  );
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'AWSREDSHIFT_LINK', 
          hostname => 'example.com', 
          port => '5439',
          service_name => 'example_service_name',
          ssl_server_cert_dn => NULL,
          credential_name => 'AWS_REDSHIFT_LINK_CRED',
          gateway_params => JSON_OBJECT('db_type'  value 'awsredshift'));
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'PRIVATE_ENDPOINT_CRED',
    username => 'db_user',
    password => 'password'
  );
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'PRIVATE_ENDPOINT_DB_LINK', 
          hostname => 'exampleHostname', 
          port => '1521',
          service_name => 'exampleServiceName',
          credential_name => 'PRIVATE_ENDPOINT_CRED',
          ssl_server_cert_dn => NULL,
          directory_name => NULL,
          private_target => TRUE);
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'GOOGLE_BIGQUERY_CRED',
    params => JSON_OBJECT( 'gcp_oauth2' value JSON_OBJECT(
          'client_id' value 'client_id',
          'client_secret' value 'client_secret', 
          'refresh_token' value 'refresh_token' )));

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'GOOGLE_BIGQUERY_LINK', 
          hostname => 'example.com', 
          port => '443',
          service_name => 'example_service_name',
          credential_name => 'GOOGLE_BIGQUERY_CRED',
          gateway_params => JSON_OBJECT(
                     'db_type' value 'google_bigquery',
                     'project' value 'project_name1' ));
END;
/

您在搭配 Google BigQuery 或 Google Analytics 使用 SELECT 時所指定的表格名稱必須以引號括住。舉例而言:

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

使用 rac_hostnames 參數搭配專用端點上的目標 Oracle RAC 資料庫。

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
     credential_name => 'DB_LINK_CRED1',
     username => 'adb_user',
     password => 'password');
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
     db_link_name => 'SALESLINK', 
     rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
                        "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                        "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
     port => '1522',
     service_name => 'example_high.adb.oraclecloud.com',
     ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
     credential_name => 'DB_LINK_CRED1',
     directory_name => 'EXAMPLE_WALLET_DIR',
     private_target => TRUE);
END;
/

DETACH_FILE_SYSTEM 程序

此程序會從資料庫切離檔案系統。

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序會從您的資料庫分離檔案系統。此外,DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序也會將檔案系統的相關資訊從 DBA_CLOUD_FILE_SYSTEMS 檢視中移除。

語法

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

參數

Parameter - 參數 描述

file_system_name

指定檔案系統的名稱。

此為必要參數。

範例:

BEGIN
   DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'FSS'                                       
  );                                                                          
END;                                                                          
/     

使用注意事項

  • 若要執行此程序,您必須以 ADMIN 使用者身分登入,或具備 DBMS_CLOUD_ADMINEXECUTE 權限。

  • 您必須具有資料庫中目錄物件的 WRITE 權限,才能使用 DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序從目錄分離檔案系統。

  • DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序只能在已啟用「專用端點」的資料庫中取消連附專用檔案儲存服務。

    請參閱 OCI File Storage Service設定開發系統以存取資料庫以瞭解詳細資訊。

  • DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM 程序會在客戶的虛擬雲端網路 (VCN) 上查詢網路檔案系統主機名稱。如果找不到位置中指定的主機名稱,就會傳回錯誤 "ORA-20000: Mounting NFS fails"

DISABLE_EXTERNAL_AUTHENTICATION 程序

停用對資料庫使用外部認證配置的使用者認證。

語法

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

異常狀況

例外 發生錯誤 描述
invalid_ext_auth ORA-20004

如需詳細說明,請參閱隨附的訊息。

範例

BEGIN 
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

PL/SQL procedure successfully completed.

DROP_DATABASE_LINK 程序

此程序會刪除資料庫連結。

語法

DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name      IN VARCHAR2,
        public_link       IN BOOLEAN DEFAULT);

參數

Parameter - 參數 描述

db_link_name

要刪除之資料庫連結的名稱。

public_link

若要將 public_link 設為 TRUE 來執行 DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK ,您必須具有 DROP PUBLIC DATABASE LINK 系統權限。

此參數的預設值為 FALSE

範例

BEGIN
    DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name => 'SALESLINK' );
END;
/

使用注意事項

完成使用資料庫連結並執行 DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK 之後,為了確保 Oracle 資料庫的安全性會移除所有儲存的公事包檔案。舉例而言:

  • 移除物件存放區中的公事包檔案。

  • 使用 DBMS_CLOUD.DELETE_FILEdata_pump_dir 目錄或從上傳公事包檔案的使用者定義目錄中移除公事包檔案。

ENABLE_EXTERNAL_AUTHENTICATION 程序

讓使用者能夠使用外部認證配置登入資料庫。

語法

DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
   type         IN VARCHAR2,
   force        IN BOOLEAN DEFAULT FALSE,
   params       IN CLOB DEFAULT NULL
);

Parameter - 參數

Parameter - 參數 描述

type

指定外部認證類型。有效值:或 。

  • 'OCI_IAM'
  • 'AZURE_AD'
  • 'CMU'
  • 'KERBEROS'

force

(選擇性) 覆寫目前啟用的外部認證配置。有效值為 TRUEFALSE

預設值是 FALSE

params

提供外部認證額外參數的 JSON 字串。

CMU 參數:

  • location_uri:指定儲存 CMU 所需檔案之儲存桶的雲端儲存 URI。

    如果您指定 location_uri,則會在路徑 'cmu_wallet' 的資料庫中建立固定名稱目錄物件 CMU_WALLET_DIR,以儲存 CMU 組態檔。在此情況下,您不需要提供 directory_name 參數。

  • credential_name:指定用來將 CMU 組態檔從「物件存放區」下載至目錄物件的證明資料。

    預設值為 NULL,可讓您為物件存放區儲存桶或子資料夾提供公用、預先認證或預先簽署的 URL。

  • directory_name:指定儲存 CMU 所需之組態檔的目錄名稱。如果提供 directory_name,則應將 CMU 組態檔 dsi.oracwallet.sso 複製到此目錄物件。

KERBEROS 參數:

  • location_uri:指定儲存 Kerberos 所需檔案之儲存桶的雲端儲存 URI。

    如果您指定 location_uri,則會在資料庫中建立固定的名稱目錄物件 KERBEROS_DIR,以儲存 Kerberos 組態檔。在此情況下,您不需要提供 directory_name 參數。

  • credential_name:指定用來將 Kerberos 組態檔從「物件存放區」位置下載至目錄物件的證明資料。

    預設值為 NULL,可讓您為物件存放區儲存桶或子資料夾提供公用、預先認證或預先簽署的 URL。

  • directory_name:指定儲存 Kerberos 所需檔案的目錄名稱。如果提供 directory_name,則應將 Kerberos 組態檔複製到此目錄物件。
  • kerberos_service_name:指定要作為 Kerberos 服務名稱的名稱。這是選擇性參數。

    預設值:未指定時,kerberos_service_name 值會設為 Autonomous Database 執行處理的 GUID。

AZURE_AD 參數:

  • tenant_id:Azure 帳戶的用戶 ID。租用戶 ID 指定 Autonomous Database 執行處理的 Azure AD 應用程式註冊。
  • application_id:在 Azure AD 中建立的 Azure 應用程式 ID,用於指派 Autonomous Database 執行處理中外部認證的角色 / 綱要對應。
  • application_id_uri:指派給 Azure 應用程式的唯一 URI。

    這是 Autonomous Database 執行處理的 ID。名稱必須是符合資格的網域 (這支援跨租用戶資源存取)。

    此參數的長度上限為 256 個字元。

異常狀況

例外 發生錯誤 描述
invalid_ext_auth ORA-20004

如需詳細說明,請參閱隨附的訊息。

使用注意事項

  • 使用 type OCI_IAM 時,如果 Autonomous Database 執行處理上未啟用資源主體,此常式會啟用具有 DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL 的資源主體。

  • 此程序會將系統參數 IDENTITY_PROVIDER_TYPEIDENTITY_PROVIDER_CONFIG 設為要求使用者以 Oracle Cloud Infrastructure Identity and Access Management 認證和授權存取執行處理。

範例

啟用 OCI_IAM 認證

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'OCI_IAM',
     force=> TRUE );
END;
/

PL/SQL procedure successfully completed.

啟用 Microsoft Active Directory 的 CMU 認證

您可以透過 params JSON 引數傳入包含 CMU 組態檔的目錄名稱。

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'CMU',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'CMU_DIR'); // CMU_DIR directory object already exists
END;
/

PL/SQL procedure successfully completed.

您可透過 params JSON 引數傳入位置 URI,指向包含 CMU 組態檔的物件儲存位置。

BEGIN
   DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
       type     => 'CMU',
       params   => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                               'credential_name' value 'my_credential_name')
   );
END;
/

PL/SQL procedure successfully completed.

啟用 Azure AD 認證

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'AZURE_AD',
     force => TRUE,
     params   => JSON_OBJECT( 'tenant_id' VALUE '....',
                              'application_id' VALUE '...',
                              'application_id_uri' VALUE '.....' ));
END;
/

PL/SQL procedure successfully completed.

啟用 Kerberos 認證

您透過 params JSON 引數傳入包含 Kerberos 組態檔的目錄名稱。

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR'); // KERBEROS_DIR directory object already exists
END;
/

PL/SQL procedure successfully completed.

您透過 params JSON 引數傳入指向包含 Kerberos 組態檔之物件儲存位置的 URI 位置:

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                           'credential_name' value 'my_credential_name');
END;
/

您在 params JSON 引數中以 kerberos_service_name 傳入服務名稱:

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR', // KERBEROS_DIR directory object already exists
                           'kerberos_service_name' value 'oracle' ));
END;
/

在您的 Autonomous Database 執行處理上啟用 Kerberos 之後,請使用下列查詢來檢視 Kerberos 服務名稱:

SELECT SYS_CONTEXT('USERENV','KERBEROS_SERVICE_NAME') FROM DUAL;

DBMS_CLOUD_ADMIN 例外

下表說明 DBMS_CLOUD_ADMIN 的例外。

例外 程式碼 描述
invalid_service 20001 指定的服務無效。
service_not_exist 20002 指定的服務不存在。
default_service 20003 無法修改指定的服務。
invalid_char_set 20029 遺漏先決條件或無效 (國家) 字元集。
invalid_enc_key_attr 20030 遺漏金鑰管理的引數或引數無效。
Already Using Oracle Managed Key 000000

此資料庫已經使用 Oracle 管理的金鑰。您嘗試在已經使用 Oracle 管理的金鑰時呼叫程序。

Argument Provided for the procedure ORA-0000

程序會提供引數。預期的錯誤訊息:此程序不需要任何引數。