Paquete DBMS_DCAT
El paquete DBMS_DCAT proporciona funciones y procedimientos para ayudar a los usuarios de la base de datos de IA autónoma a aprovechar la detección de datos y el sistema centralizado de gestión de metadatos de OCI Data Catalog.
Nota: El soporte para DBMS_DCAT está disponible en Oracle AI Database 19c a partir de la versión 19.30 y en Autonomous AI Database 26ai a partir de la versión 23.26.1.
Data Catalog recopila metadatos de los activos de almacenamiento de objetos de un lago de datos. El proceso de recogida crea entidades lógicas, que se pueden considerar tablas con columnas y tipos de dato asociados. Los procedimientos y las funciones de DBMS_DCAT conectan la base de datos de IA autónoma al catálogo de datos y, a continuación, sincronizan los activos con la base de datos, creando esquemas protegidos y tablas externas. A continuación, puede consultar el almacén de objetos mediante esas tablas externas, uniendo fácilmente los datos externos con los datos almacenados en la base de datos de IA autónoma. Esto simplifica drásticamente el proceso de gestión; hay un único almacén de metadatos gestionado centralmente que se comparte entre varios servicios de OCI (incluidas las bases de datos de IA autónomas). También hay vistas de diccionario de base de datos de IA autónoma que le permiten inspeccionar el contenido de Data Catalog mediante SQL y mostrar cómo estas entidades de Data Catalog se asignan a sus esquemas y tablas de base de datos de IA autónoma.
Usuarios y roles de Data Catalog
El paquete DBMS_DCAT soporta usuarios/esquemas sincronizados, usuarios dcat_admin y usuarios locales. Los usuarios deben tener el rol dcat_sync para poder utilizar este paquete.
Usuarios de Data Catalog
-
Usuarios/esquemas sincronizados
Las tablas externas sincronizadas se organizan en esquemas de base de datos correspondientes a combinaciones de activo/bloque de datos o según las propiedades personalizadas definidas por el usuario. Los esquemas sincronizados se crean/suprimen automáticamente durante la sincronización de Data Catalog. Se crean como usuarios de autenticación sin el privilegio
CREATE SESSION. Los esquemas sincronizados también se crean mediante la cláusula protegida, de modo que los usuarios locales no pueden modificarlos (ni siquiera el administrador de PDB) y solo se pueden modificar mediante la sincronización. -
Usuario
dcat_adminEl usuario
dcat_admines un usuario de base de datos local que puede ejecutar una sincronización y otorgar el privilegioREADen las tablas sincronizadas a otros usuarios o roles. El usuario se crea como un usuario sin autenticación sin el privilegioCREATE SESSION. -
usuarios locales
Los usuarios de la base de datos que consultan las tablas externas deben otorgar explícitamente privilegios
READen las tablas externas sincronizadas por los usuariosdcat_admino ADMIN. Por defecto, una vez finalizada la sincronización, solo los usuariosdcat_adminyADMINtienen acceso a las tablas externas sincronizadas.
Roles de Data Catalog
-
dcat_syncEl rol
dcat_synctiene todos los privilegios necesarios para utilizar el paqueteDBMS_DCAT. Los usuarios deben tener este rol para poder utilizar la API para navegar por Data Catalog y ejecutar la sincronización.
Credenciales y políticas de IAM necesarias
En este tema se describen las credenciales de usuario y las políticas de Oracle Cloud Infrastructure Identity and Access Management (IAM) necesarias para otorgar a los usuarios de la base de datos de IA autónoma permiso para gestionar un catálogo de datos y leer desde el almacenamiento de objetos.
Requisitos de políticas y credenciales de OCI Data Catalog:
-
Se necesita un objeto de credencial con permiso para gestionar una instancia de Data Catalog. Están soportados los objetos de credenciales que contienen autenticación nativa de OCI. No se admiten objetos de credenciales basados en principales de usuario de token de autenticación y credenciales de principales de recurso.
Para obtener información sobre la gestión de credenciales, consulte DBMS_CLOUD for Access Management.
Para ver ejemplos de autenticación nativa de OCI, consulte Ejemplo: creación de un objeto de credencial de autenticación nativa de OCI y Autonomous AI Database Now Supports Accessing the Object Storage with OCI Native Authentication.
-
El privilegio Gestionar catálogo de datos es necesario para que la base de datos de IA autónoma agregue propiedades personalizadas al espacio de nombres de Data Catalog. Estos privilegios le permiten sustituir nombres de esquema, nombres de tabla, nombres de columna, etc.
Para obtener más información sobre los permisos de Data Catalog, consulte Permisos necesarios para cada operación de API.
-
Se necesita el privilegio de lectura de almacenamiento de objetos en cubos para que la base de datos de IA autónoma pueda consultar los archivos de datos.
Para obtener más información sobre los ejemplos de políticas de almacenamiento de objetos de Oracle, consulte Ejemplos de políticas.
Requisitos de políticas y credenciales del catálogo de datos de AWS Glue
Las siguientes credenciales y políticas de usuario son necesarias para otorgar a los usuarios de la base de datos de IA autónoma permiso para acceder a los catálogos de datos de pegamento de Amazon Web Services (AWS) y leer desde el almacenamiento de objetos de S3:
-
Se requiere un objeto de credencial con permiso para acceder a un catálogo de datos de AWS Glue. Para obtener información sobre la gestión de credenciales, consulte DBMS_CLOUD for Access Management.
Para acceder a un catálogo de datos de AWS Glue se requieren los siguientes privilegios: pegue:GetDatabases , pegue:GetTables y pegue:GetTable.
Además, se necesita el privilegio s3:GetBucketLocation durante la sincronización para generar URL https que se puedan resolver y que apunten a los objetos S3 subyacentes.
-
Se necesita un objeto de credencial con permiso para acceder a los archivos almacenados en S3 para que Autonomous AI Database pueda consultar los archivos de datos.
-
Se admiten credenciales de AWS. No se admiten las credenciales de AWS Amazon Resource Names (ARN).
Ejemplo: creación de un objeto de credencial de autenticación nativa de OCI
En este ejemplo, creamos una credencial de autenticación nativa de OCI que se puede utilizar al crear un catálogo de datos o un objeto de credencial de almacén de objetos. Para obtener más información, consulte DBMS_DCAT. Procedimiento SET_DATA_CATALOG_CREDENTIAL y procedimiento DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL, respectivamente.
En la autenticación nativa de OCI, el procedimiento DBMS_CLOUD.CREATE_CREDENTIAL incluye los siguientes parámetros: credential_name, user_ocid, tenancy_ocid, private_key y fingerprint. Consulte Procedimiento CREATE_CREDENTIAL de DBMS_CLOUD para obtener una descripción completa de este procedimiento.
credential_name es el nombre del objeto de credencial. Los parámetros user_ocid y tenancy_ocid corresponden a los OCID del usuario y del arrendamiento, respectivamente.
El parámetro private_key especifica la clave privada generada en formato PEM. Las claves privadas creadas con una frase de contraseñas no están soportadas. Por lo tanto, debemos asegurarnos de generar una clave sin frase de contraseña. Consulte Cómo generar una clave de firma de API para obtener más detalles sobre cómo crear una clave privada sin frase de contraseña. Además, la clave privada que proporcionamos para este parámetro solo debe contener la clave en sí sin ningún encabezado o pie de página (por ejemplo, '—–BEGIN RSA PRIVATE KEY—–', '—END RSA PRIVATE KEY—–').
El parámetro fingerprint especifica la huella que se obtiene después de cargar la clave pública en la consola o mediante los comandos de OpenSSL. Consulte How to Upload the Public Key y How to Get the Key's Fingerprint para obtener más información sobre la obtención de la huella.
Una vez que se recopile toda la información necesaria y se genere la clave privada, estamos listos para ejecutar el siguiente procedimiento 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;
/
Después de crear el objeto de credencial, se muestra en la tabla dba_credentials:
SELECT owner, credential_name
FROM dba_credentials
WHERE credential_name LIKE '%NATIVE%';
OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED
Ejemplo: uso de principales de usuario
En este ejemplo, user1 es un miembro del grupo adb-admins. Todos los miembros de este grupo tienen permiso para gestionar todos los catálogos de datos en mycompartment y para leer desde el almacén de objetos en mycompartment.
-
Permite a los usuarios que son miembros de
adb-adminsgestionar todos los catálogos de datos enmycompartment.allow group adb-admins to manage data-catalog-family in compartment mycompartment -
Permitir a los usuarios que sean miembros de
adb-adminsleer cualquier objeto de cualquier cubo demycompartment.allow group adb-admins to read objects in compartment mycompartment