Pacote DBMS_DCAT
O pacote DBMS_DCAT fornece funções e procedimentos para ajudar os usuários do Autonomous AI Database a aproveitar o sistema de descoberta de dados e gerenciamento de metadados centralizado do OCI Data Catalog.
Observação: O suporte a DBMS_DCAT está disponível no Oracle AI Database 19c a partir da versão 19.30 e no Autonomous AI Database 26ai a partir da versão 23.26.1.
O serviço Data Catalog coleta metadados de ativos de armazenamento de objetos de um data lake. O processo de coleta cria entidades lógicas, que podem ser consideradas como tabelas com colunas e tipos de dados associados. Os procedimentos e funções do DBMS_DCAT conectam o Autonomous AI Database ao serviço Data Catalog e sincronizam os ativos com o banco de dados, criando esquemas protegidos e tabelas externas. Em seguida, você pode consultar o armazenamento de objetos usando essas tabelas externas, unindo facilmente dados externos aos dados armazenados no Autonomous AI Database. Isso simplifica drasticamente o processo de gerenciamento; há um único armazenamento de metadados gerenciado centralmente que é compartilhado em vários serviços da OCI (incluindo Autonomous AI Databases). Há também views de dicionário do Autonomous AI Database que permitem inspecionar o conteúdo do serviço Data Catalog usando SQL e mostrar como essas entidades do serviço Data Catalog são mapeadas para seus esquemas e tabelas do Autonomous AI Database.
Usuários e Atribuições do Serviço Data Catalog
O pacote DBMS_DCAT suporta usuários/esquemas sincronizados, usuários dcat_admin e usuários locais. Os usuários devem ter a atribuição dcat_sync para poder usar este pacote.
Usuários do Data Catalog
-
Usuários/esquemas sincronizados
As tabelas externas sincronizadas são organizadas em esquemas de banco de dados correspondentes às combinações de Ativo de Dados/Bucket ou de acordo com propriedades personalizadas definidas pelo usuário. Os esquemas sincronizados são criados/eliminados automaticamente durante a sincronização do serviço Data Catalog. Eles são criados como nenhum usuário de autenticação sem o privilégio
CREATE SESSION. Os esquemas sincronizados também são criados usando a cláusula protegida, de modo que não possam ser alterados por usuários locais (nem mesmo o administrador do PDB) e só possam ser modificados por meio da sincronização. -
Usuário
dcat_adminO usuário
dcat_adminé um usuário do banco de dados local que pode executar uma sincronização e conceder o privilégioREADem tabelas sincronizadas a outros usuários ou atribuições. O usuário é criado como um usuário sem autenticação sem o privilégioCREATE SESSION. -
Usuários Locais
Os usuários do banco de dados que consultam as tabelas externas devem receber explicitamente privilégios
READnas tabelas externas sincronizadas pelos usuáriosdcat_adminou ADMIN. Por padrão, após a conclusão da sincronização, somente os usuáriosdcat_admineADMINtêm acesso às tabelas externas sincronizadas.
Funções do Serviço Data Catalog
-
dcat_syncA atribuição
dcat_synctem todos os privilégios necessários para usar o pacoteDBMS_DCAT. Os usuários devem ter essa função para poder usar a API para navegar no serviço Data Catalog e executar a sincronização.
Credenciais e Políticas de IAM Obrigatórias
Este tópico descreve as credenciais de usuário e as políticas do Oracle Cloud Infrastructure Identity and Access Management (IAM) necessárias para conceder aos usuários do Autonomous AI Database permissão para gerenciar um catálogo de dados e ler no armazenamento de objetos.
Requisitos de Credencial e Política do OCI Data Catalog:
-
É necessário um objeto de credencial com permissão para gerenciar uma instância do serviço Data Catalog. Há suporte para objetos de credencial que contêm autenticação nativa do OCI. Não há suporte para objetos de credencial baseados em controladores de usuário de token de autenticação e credenciais de controladores de recursos.
Para obter informações sobre como gerenciar credenciais, consulte DBMS_CLOUD para Gerenciamento de Acesso.
Para obter exemplos de autenticação nativa do OCI, consulte Exemplo: Criando um Objeto de Credencial de Autenticação Nativa do OCI e o Autonomous AI Database Agora Suporta o Acesso ao Object Storage com Autenticação Nativa do OCI.
-
O privilégio gerenciar o serviço Data Catalog é necessário para que o Autonomous AI Database adicione propriedades personalizadas ao namespace do serviço Data Catalog. Esses privilégios permitem que você substitua nomes de esquemas, nomes de tabelas, nomes de colunas e muito mais.
Para obter mais informações sobre permissões do serviço Data Catalog, consulte Permissões Necessárias para Cada Operação de API.
-
O privilégio de leitura de armazenamento de objetos em buckets é necessário para que o Autonomous AI Database possa consultar arquivos de dados.
Para obter mais exemplos de políticas do Oracle Object Storage, consulte Exemplos da Política.
Credencial do catálogo de dados do AWS Glue e requisitos de política
As seguintes credenciais e políticas de usuário são necessárias para conceder aos usuários do Autonomous AI Database permissão para acessar Catálogos de Dados de Colagem do Amazon Web Services (AWS) e ler no armazenamento de objetos S3:
-
É necessário um objeto de credencial com permissão para acessar um Catálogo de Dados do AWS Glue. Para obter informações sobre como gerenciar credenciais, consulte DBMS_CLOUD para Gerenciamento de Acesso.
Para acessar um catálogo de dados do AWS Glue, os seguintes privilégios são necessários: cola:GetDatabases , cola:GetTables e cola:GetTable.
Além disso, o privilégio s3:GetBucketLocation é necessário durante a sincronização para gerar urls https resolvíveis que apontam para os objetos S3 subjacentes.
-
É necessário um objeto de credencial com permissão para acessar os arquivos armazenados no S3 para que o Autonomous AI Database possa consultar arquivos de dados.
-
As credenciais da AWS são suportadas. As credenciais do AWS Amazon Resource Names (ARN) não são suportadas.
Exemplo: Criando um Objeto de Credencial de Autenticação Nativa do OCI
Neste exemplo, criamos uma credencial de autenticação nativa do OCI que pode ser usada ao criar um catálogo de dados ou um objeto de credencial de armazenamento de objetos. Para obter mais detalhes, consulte DBMS_DCAT. SET_DATA_CATALOG_CREDENTIAL Procedimento e Procedimento DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL respectivamente.
Na autenticação nativa do OCI, o procedimento DBMS_CLOUD.CREATE_CREDENTIAL inclui estes parâmetros: credential_name, user_ocid, tenancy_ocid, private_key e fingerprint. Consulte Procedimento DBMS_CLOUD CREATE_CREDENTIAL para obter uma descrição completa desse procedimento.
O credential_name é o nome do objeto da credencial. Os parâmetros user_ocid e tenancy_ocid correspondem aos OCIDs do usuário e da tenancy, respectivamente.
O parâmetro private_key especifica a chave privada gerada no formato PEM. Não há suporte a chaves privadas criadas com uma frase-senha. Portanto, precisamos nos certificar de gerar uma chave sem frase-senha. Consulte Como Gerar uma Chave de Assinatura de API para obter mais detalhes sobre como criar uma chave privada sem frase-senha. Além disso, a chave privada que fornecemos para esse parâmetro só deve conter a chave em si sem qualquer cabeçalho ou rodapé (por exemplo, '—–BEGIN RSA PRIVATE KEY—–', '–END RSA PRIVATE KEY—–).
O parâmetro fingerprint especifica a impressão digital obtida após o upload da chave pública para a console ou usando os comandos OpenSSL. Consulte Como Fazer Upload da Chave Pública e Como Obter a Impressão Digital da Chave para obter mais detalhes sobre como obter a impressão digital.
Assim que todas as informações necessárias forem reunidas e a chave privada for gerada, estaremos prontos para executar o seguinte procedimento 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;
/
Depois de criar o objeto de credencial, ele é exibido na tabela dba_credentials:
SELECT owner, credential_name
FROM dba_credentials
WHERE credential_name LIKE '%NATIVE%';
OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED
Exemplo: Usando Principais do Usuário
Neste exemplo, user1 é membro do grupo adb-admins. Todos os membros desse grupo recebem permissão para gerenciar todos os catálogos de dados no mycompartment e para ler no armazenamento de objetos no mycompartment.
-
Permita que os usuários que são membros do
adb-adminsgerenciem todos os catálogos de dados nomycompartment.allow group adb-admins to manage data-catalog-family in compartment mycompartment -
Permita que os usuários que são membros do
adb-adminsleiam qualquer objeto em qualquer bucket dentro domycompartment.allow group adb-admins to read objects in compartment mycompartment