DBMS_CLOUD_ADMIN 程序包

本节介绍自治 AI 数据库随附的 DBMS_CLOUD_ADMIN 子程序。

子程序 说明
ATTACH_FILE_SYSTEM 过程 此过程将文件系统附加到数据库上的目录中。
CREATE_DATABASE_LINK 过程 此过程将创建指向目标数据库的数据库链接。您可以选择创建数据库链接,以连接到另一个 Autonomous AI Database 实例、不是 Autonomous AI Database 的 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 提供的值由全限定域名 (Fully Qualified Domain Name,FQDN) 和文件路径组成,格式为:FQDN:file_path。

注:您可以使用 FQDN 或 IP 地址。

例如:

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

    对于 Oracle Cloud Infrastructure File Storage,请在创建文件系统时在“Show Advanced Options(显示高级选项)”中设置 FQDN。有关更多信息,请参见 Creating File Systems

  • 文件路径:/results

此参数是必需的。

directory_name

指定附加文件系统的目录名称。该目录必须存在。

此参数是必需的。

description (可选)提供任务的说明。
params

为文件系统提供附加参数的 JSON 字符串。

nfs_version:指定附加 NFS(NFSv3 或 NFSv4)时要使用的 NFS 版本。有效值: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

目标数据库的主机名。

不允许为 hostname 指定 localhost

通过提供 gateway_params 参数指定与 Oracle 管理的异构连接的连接时,请注意以下事项:

  • 如果 db_type 值为 google_bigquery,则不使用 hostname,并且可以提供 example.com 等值。

  • db_type 值为 snowflake 时,hostname 是 Snowflake 帐户标识符。要查找 Snowflake 帐户标识符,请参见 Account Identifier Formats by Cloud Platform and Region

请使用此参数或 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 的高可用性功能。不支持使用 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:对 >= 11.5.6 的 Db2 版本使用端口 2500
  • db2:将端口 5000 用于 Db2 版本 <= 11.5.5< li>
  • 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 数据库,通过以下方法之一查找服务名称:

  • wallet.zip 中查看从自治 AI 数据库为连接下载的 tnsnames.ora 文件。

  • 单击 Oracle Cloud Infrastructure 控制台上的数据库连接。"Connection string"(连接字符串)列中列出的每个连接字符串都包含一个 service_name 条目以及对应服务的连接字符串。有关详细信息,请参阅查看自治 AI 数据库的连接字符串

  • 查询 V$SERVICES 视图。例如:

    SELECT name FROM V$SERVICES;

使用 gateway_params 参数指定与 Oracle 管理的异构连接的连接时,service_name 是非 Oracle 数据库的数据库名称。

ssl_server_cert_dn

在服务器证书中发现 DN 值。

Oracle 托管的异构连接预配置有一个 wallet,其中包含大多数通用的可信根和中间 SSL 证书。提供 gateway_params 参数或不包含 ssl_server_cert_dn 参数时,ssl_server_cert_dn 必须为 NULL(默认值为 NULL)。

无 Wallet 的自治 AI 数据库目标的公共端点链接:

要在没有 Wallet (TLS) 的公共端点上连接到自治 AI 数据库目标,请执行以下操作:

  • directory_name 参数必须为 NULL
  • ssl_server_cert_dn 参数必须为 NULL 或不包括此参数(默认值为 NULL)。

没有 Wallet 的专用端点链接:

要在没有 wallet 的专用端点上连接到 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 托管的异构连接预配置有一个 wallet,其中包含大多数通用的可信根和中间 SSL 证书。提供 gateway_params 参数时,不需要 directory_name 参数。

无 Wallet 的自治 AI 数据库目标的公共端点链接:

要在没有 Wallet (TLS) 的公共端点上连接到自治 AI 数据库,请执行以下操作:

  • directory_name 参数必须为 NULL
  • ssl_server_cert_dn 参数必须为 NULL 或不包括此参数(默认值为 NULL)。

此外,要使用 TCP 连接到自治 AI 数据库,ssl_server_cert_dn 参数必须为 NULL,或者不包含此参数(默认值为 NULL)。

没有 Wallet 的专用端点链接:

要在没有 wallet 的专用端点上连接到目标 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 系统权限。可以由 ADMIN 用户或凭证所有者授予对凭证的 EXECUTE 特权。

此参数的默认值为 FALSE

private_target

当数据库链接访问需要在 VCN DNS 服务器中解析的主机名时,请指定值为 TRUEprivate_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;
/

SELECT 与 Google BigQuery 或 Google Analytics 配合使用时指定的表名必须用引号引起来。例如:

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

要在 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 数据库的安全性删除存储的 wallet 文件。例如:

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_DIR,该对象位于路径 'cmu_wallet' 以保存 CMU 配置文件。在这种情况下,无需提供 directory_name 参数。

  • credential_name:指定用于将 CMU 配置文件从对象存储下载到目录对象的凭证。

    默认值为 NULL,允许您为对象存储存储桶或子文件夹提供公共 URL、预验证 URL 或预签名 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,用于在自治 AI 数据库实例中为外部验证分配角色/方案映射。
  • application_id_uri:分配给 Azure 应用程序的唯一 URI。

    这是自治 AI 数据库实例的标识符。名称必须是域限定名称(这支持跨租户资源访问)。

    此参数的最大长度为 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 为过程提供了一个参数。预期错误消息:此过程不需要参数。

相关内容