用于访问管理的 DBMS_CLOUD

本节介绍用于访问管理的 DBMS_CLOUD 子程序。

Prerequisites

作为开发人员,您可以将 DBMS_CLOUD 过程与部署在 Oracle Public Cloud、Multicloud 或 Exadata Cloud@Customer 上的自治 AI 数据库结合使用。

根据部署选择,必须满足以下先决条件,才能将 DBMS_CLOUD 过程与 Amazon S3、Azure Blob Storage 和 Google Cloud Storage 服务提供商结合使用。

用于访问管理的 DBMS_CLOUD 子程序概要

用于 DBMS_CLOUD 程序包中的身份证明管理的子程序,包括创建、删除和更新身份证明。

子程序 说明
CREATE_CREDENTIAL 过程 此过程将云服务身份证明存储在自治 AI 数据库中。
DROP_CREDENTIAL 过程 此过程将从自治 AI 数据库中删除现有身份证明。
UPDATE_CREDENTIAL 过程 此过程更新自治 AI 数据库中的云服务身份证明属性。

CREATE_CREDENTIAL 过程

此过程将云服务身份证明存储在自治 AI 数据库中。

使用存储的云服务凭证访问云服务以进行数据加载、查询云中的外部数据,或者在将 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 (参数) 说明
credential_name 要存储的凭证的名称。credential_name 参数必须符合 Oracle 对象命名约定,该约定不允许有空格或连字符。
username usernamepassword 参数一起指定您的云服务身份证明。请参阅使用说明,了解要为不同云服务的 usernamepassword 指定什么内容。
password usernamepassword 参数一起指定您的云服务身份证明。
user_ocid 指定用户的 OCID。有关获取用户 OCID 的详细信息,请参见 Where to Get the Tenancy’s OCID and User’s OCID
tenancy_ocid 指定租户的 OCID。有关获取租户 OCID 的详细信息,请参见 Where to Get the Tenancy’s OCID and User’s OCID
private_key 指定生成的私钥。不支持使用密码短语生成的私钥。您需要生成不带口令短语的私钥。有关以 PEM 格式生成密钥对的详细信息,请参见 How to Generate an API Signing Key
fingerprint 指定指纹。生成的公钥上载到用户帐户后,指纹将显示在控制台中。对此参数使用显示的指纹。有关更多详细信息,请参见 How to Get the Key’s FingerprintHow to Generate an API Signing Key

使用说明

Oracle Cloud Infrastructure 身份证明(Auth 令牌)

对于 Oracle Cloud Infrastructure,username 是您的 Oracle Cloud Infrastructure 用户名。password 是 Oracle Cloud Infrastructure 验证令牌。请参见 Working with Auth Tokens

例如:

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_ocidtenancy_ocidprivate_keyfingerprint 以及 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 兼容的身份证明

服务 凭据信息
Google Cloud 存储

如果源文件位于 Google Cloud Storage 中,或者您正在调用 Google Cloud Storage API,则需要设置默认 Google 项目并获取 HMAC 密钥来创建身份证明,以提供与 Google Cloud Storage S3 兼容的 URL。使用 HMAC 密钥 ID 作为用户名,使用 HMAC 密钥作为密码。

有关更多信息,请参见 ProjectsHMAC Keys

管理 DBMS_CLOUD 身份证明以向 C3 对象存储进行验证

您可以使用 DBMS_CLOUD.CREATE_CREDENTIAL 过程向自治 AI 数据库提供连接到 C3 对象存储存储桶所需的验证信息。使用 Oracle Cloud Infrastructure 签名密钥相关参数,包括 user_ocidtenancy_ocidprivate_keyfingerprint 以及 Oracle Cloud Infrastructure 签名密钥验证。

例如:

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 过程

此过程将从自治 AI 数据库中删除现有身份证明。

语法

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

参数

Parameter (参数) 说明
credential_name 要删除的身份证明的名称。

UPDATE_CREDENTIAL 过程

此过程使用指定 credential_name 的新值更新属性。

使用存储的身份证明进行数据加载,查询云中的外部数据,或者无论您在何处使用带有 credential_name 参数的 DBMS_CLOUD 过程。

语法

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

参数

Parameter (参数) 说明
credential_name 要更新的身份证明的名称。
attribute

要更新的属性的名称。

对于用户名/密码类型的身份证明,有效的 attribute 值为:USERNAMEPASSWORD

有关更多信息,请参见 CREATE_CREDENTIAL Procedure

value 指定属性的新值。

使用说明

示例

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

相关内容