DBMS_CLOUD_ADMIN 套裝程式

本節涵蓋 Autonomous AI Database 提供的 DBMS_CLOUD_ADMIN 子程式。

子程式 描述
ATTACH_FILE_SYSTEM 程序 此程序會將檔案系統附加到資料庫的目錄中。
CREATE_DATABASE_LINK 程序 此程序會建立與目標資料庫的資料庫連結。您可以選擇建立連至另一個自治式 AI 資料庫執行處理的資料庫連結、非自治式 AI 資料庫的 Oracle Database,或使用 Oracle 管理的異質連線建立連至非 Oracle Database。
DETACH_FILE_SYSTEM 程序 此程序會從資料庫的目錄中分離檔案系統。
DISABLE_EXTERNAL_AUTHENTICATION 程序 此程序會停用自治式 AI 資料庫執行處理的外部認證。
DROP_DATABASE_LINK 程序 此程序會刪除資料庫連結。
ENABLE_EXTERNAL_AUTHENTICATION 程序 此程序可讓使用者使用指定的外部認證配置登入「自治式 AI 資料庫」。

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 或 IP 位址。

舉例而言:

  • 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;
/

使用注意事項

CREATE_DATABASE_LINK 程序

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

超載表單支援下列項目:

語法

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

目標資料庫的主機名稱。

不允許指定 hostnamelocalhost

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

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

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

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

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK 輸入應將目標專用自治式 AI 資料庫的掃描名稱提及為 '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 的高可用性功能。不支援在 rac_hostnames 值中使用 IP 位址、SCAN IP 或 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 版本使用連接埠 2500 >= 11.5.6
  • db2:對於 Db2 版本 <= 11.5.5< li> 使用連接埠 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。針對目標自治式 AI 資料庫,請使用下列其中一種方法尋找服務名稱:

  • 請查看您從自治式 AI 資料庫下載以進行連線的 wallet.zip 中的 tnsnames.ora 檔案。

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

  • 查詢 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)。

沒有公事包的自治式 AI 資料庫目標公用端點連結:

在沒有公事包 (TLS) 的公用端點上連線至「自治式 AI 資料庫」目標:

  • 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 參數。

沒有公事包的自治式 AI 資料庫目標公用端點連結:

在沒有公事包 (TLS) 的公用端點上連線至「自治式 AI 資料庫」:

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

此外,若要使用 TCP 連線自治式 AI 資料庫,ssl_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,則指定另一個「自治式 AI 資料庫」或另一個 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 系統權限。證明資料上的 EXECUTE 權限可由 ADMIN 使用者或證明資料擁有者授予。

此參數的預設值為 FALSE

private_target

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

private_targetTRUE 時,hostname 參數必須是單一主機名稱 (在專用端點上,不支援使用 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 為基礎的資料庫連結。

使用注意事項

範例

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_i*',
          '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;
/

使用注意事項

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

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

此參數的預設值為 FALSE

範例

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

使用注意事項

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

ENABLE_EXTERNAL_AUTHENTICATION 程序

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

語法

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

參數

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 值設為自治式 AI 資料庫執行處理的 GUID。

AZURE_AD 參數:

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

    這是自治式 AI 資料庫執行處理的 ID。名稱必須是符合網域資格的網域 (這支援跨租用戶資源存取)。

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

異常狀況

例外 發生錯誤 描述
invalid_ext_auth ORA-20004 如需詳細說明,請參閱隨附訊息。

使用注意事項

範例

範例:啟用 OCI_IAM 認證

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

範例:啟用 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;
/

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

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;
/

範例:啟用 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;
/

範例:啟用 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;
/

您透過 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;
/

您的自治式 AI 資料庫執行處理啟用 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 系統會提供程序的引數。預期的錯誤訊息:此程序不需要引數。

相關內容