DBMS_DCAT 程序包

DBMS_DCAT 程序包提供了功能和过程,可帮助自治 AI 数据库用户利用 OCI Data Catalog 的数据发现和集中元数据管理系统。

注:从版本 19.30 开始,Oracle AI Database 19c 以及从版本 23.26.1 开始的 Autonomous AI Database 26ai 支持 DBMS_DCAT

数据目录从数据湖的对象存储资产中获取元数据。收集过程创建逻辑实体,可以将其视为包含列和关联数据类型的表。DBMS_DCAT 过程和函数将自治 AI 数据库连接到数据目录,然后将资产与数据库同步,从而创建受保护方案和外部表。然后,您可以使用这些外部表查询对象存储,从而轻松地将外部数据与存储在自治 AI 数据库中的数据联接起来。这极大地简化了管理流程;在多个 OCI 服务(包括自治 AI 数据库)之间共享一个集中管理的元数据存储。此外,还提供了自治 AI 数据库字典视图,可用于使用 SQL 检查数据目录的内容,并向您展示这些数据目录实体如何映射到自治 AI 数据库方案和表。

数据目录用户和角色

DBMS_DCAT 软件包支持同步的用户/方案、dcat_admin 用户和本地用户。用户必须具有 dcat_sync 角色才能使用此程序包。

数据目录用户

数据目录角色

所需的身份证明和 IAM 策略

本主题介绍向 Autonomous AI Database 用户授予管理数据目录和从对象存储读取的权限所需的 Oracle Cloud Infrastructure Identity and Access Management (IAM) 用户身份证明和策略。

OCI 数据目录身份证明和策略要求:

AWS Glue 数据目录身份证明和策略要求

为自治 AI 数据库用户授予访问 Amazon Web Services (AWS) Glue Data Catalogs 和从 S3 对象存储读取的权限时,需要以下用户身份证明和策略:

示例:创建 OCI 本机验证身份证明对象

在此示例中,创建可在创建数据目录或对象存储身份证明对象时使用的 OCI 本机验证身份证明。有关更多详细信息,请参见 DBMS_DCAT。SET_DATA_CATALOG_CREDENTIAL 过程和 DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL 过程分别。

在 OCI 本机验证中,DBMS_CLOUD.CREATE_CREDENTIAL 过程包括以下参数:credential_nameuser_ocidtenancy_ocidprivate_keyfingerprint。有关此过程的完整说明,请参见 DBMS_CLOUD CREATE_CREDENTIAL Procedure

credential_name 是身份证明对象的名称。user_ocidtenancy_ocid 参数分别对应于用户的 OCID 和租户的 OCID。

private_key 参数以 PEM 格式指定生成的私钥。不支持使用口令短语创建的私钥。因此,我们需要确保生成一个没有口令短语的密钥。有关如何创建不带口令短语的私钥的更多详细信息,请参见 How to Generate an API Signing Key 。此外,我们为此参数提供的私钥只能包含密钥本身,而不能包含任何页眉或页脚(例如‘—– BEGIN RSA PRIVATE KEY ——’,‘—– END RSA PRIVATE KEY —–’)。

fingerprint 参数指定在将公钥上载到控制台或使用 OpenSSL 命令后获取的指纹。有关获取指纹的更多详细信息,请参见 How to Upload the Public KeyHow to Get the Key’s Fingerprint

收集所有必要的信息并生成私钥后,我们就可以运行以下 CREATE_CREDENTIAL 过程:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL (
    credential_name => 'OCI_NATIVE_CRED',
    user_ocid              => 'ocid1.user.oc1..aaaaaaaatfn77fe3fxux3o5lego7glqjejrzjsqsrs64f4jsjrhbsk5qzndq',
    tenancy_ocid           => 'ocid1.tenancy.oc1..aaaaaaaapwkfqz3upqklvmelbm3j77nn3y7uqmlsod75rea5zmtmbl574ve6a',
    private_key            => 'MIIEogIBAAKCAQEA...t9SH7Zx7a5iV7QZJS5WeFLMUEv+YbYAjnXK+dOnPQtkhOblQwCEY3Hsblj7Xz7o=',
    fingerprint            => '4f:0c:d6:b7:f2:43:3c:08:df:62:e3:b2:27:2e:3c:7a');
END;
/

创建身份证明对象后,它将显示在 dba_credentials 表中:

SELECT owner, credential_name
FROM dba_credentials
WHERE credential_name LIKE '%NATIVE%';
OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED

示例:使用用户主体

在此示例中,user1 是组 adb-admins 的成员。向该组的所有成员授予了管理 mycompartment 中的所有数据目录以及从 mycompartment 中的对象存储读取的权限。

  1. 允许属于 adb-admins 的用户管理 mycompartment 中的所有数据目录。

     allow group adb-admins to manage data-catalog-family in compartment mycompartment
    
  2. 允许作为 adb-admins 成员的用户读取 mycompartment 内任何存储桶中的任何对象。

     allow group adb-admins to read objects in compartment mycompartment