Package DBMS_DCAT
Il pacchetto DBMS_DCAT fornisce funzioni e procedure per aiutare gli utenti di Autonomous AI Database a sfruttare il sistema di ricerca automatica dei dati e gestione centralizzata dei metadati di OCI Data Catalog.
Nota: il supporto per DBMS_DCAT è disponibile in Oracle AI Database 19c a partire dalla versione 19.30 e in Autonomous AI Database 26ai a partire dalla versione 23.26.1.
Data Catalog raccoglie i metadati dagli asset di storage degli oggetti di un data lake. Il processo di raccolta crea entità logiche, che possono essere considerate come tabelle con colonne e tipi di dati associati. Le procedure e le funzioni DBMS_DCAT connettono Autonomous AI Database a Data Catalog e quindi sincronizzano gli asset con il database, creando schemi protetti e tabelle esterne. Puoi quindi eseguire query sull'area di memorizzazione degli oggetti utilizzando tali tabelle esterne, unendo facilmente i dati esterni AI dati memorizzati in Autonomous AI Database. Ciò semplifica notevolmente il processo di gestione; esiste un'unica area di memorizzazione dei metadati gestita a livello centrale che viene condivisa tra più servizi OCI (inclusi i database AI autonomi). Esistono anche viste del dizionario di Autonomous AI Database che consentono di ispezionare il contenuto di Data Catalog utilizzando SQL e di mostrare come queste entità di Data Catalog vengono mappate agli schemi e alle tabelle di Autonomous AI Database.
Utenti e ruoli di Data Catalog
Il pacchetto DBMS_DCAT supporta utenti/schemi sincronizzati, utenti dcat_admin e utenti locali. Per poter utilizzare questo pacchetto, gli utenti devono disporre del ruolo dcat_sync.
Utenti Data Catalog
-
Utenti/schemi sincronizzati
Le tabelle esterne sincronizzate sono organizzate in schemi di database corrispondenti alle combinazioni di asset dati/bucket o in base alle proprietà personalizzate impostate dall'utente. Gli schemi sincronizzati vengono creati/eliminati automaticamente durante la sincronizzazione di Data Catalog. Vengono creati come utenti di autenticazione senza il privilegio
CREATE SESSION. Gli schemi sincronizzati vengono creati anche utilizzando la clausola protetta, in modo che non possano essere modificati dagli utenti locali (nemmeno dall'amministratore PDB) e possano essere modificati solo tramite la sincronizzazione. -
Utente
dcat_adminL'utente
dcat_adminè un utente di database locale in grado di eseguire una sincronizzazione e concedere il privilegioREADsulle tabelle sincronizzate ad altri utenti o ruoli. L'utente viene creato come utente senza autenticazione senza il privilegioCREATE SESSION. -
Utenti locali
Agli utenti del database che eseguono query sulle tabelle esterne devono essere concessi in modo esplicito privilegi
READsulle tabelle esterne sincronizzate dagli utentidcat_admino ADMIN. Per impostazione predefinita, una volta completata la sincronizzazione, solo gli utentidcat_admineADMINpossono accedere alle tabelle esterne sincronizzate.
Ruoli Data Catalog
-
dcat_syncIl ruolo
dcat_syncdispone di tutti i privilegi necessari per l'uso del pacchettoDBMS_DCAT. Gli utenti devono disporre di questo ruolo per poter utilizzare l'API per navigare nel Data Catalog ed eseguire la sincronizzazione.
Credenziali e criteri IAM necessari
Questo argomento descrive le credenziali utente e i criteri di Oracle Cloud Infrastructure Identity and Access Management (IAM) necessari per concedere agli utenti di Autonomous AI Database l'autorizzazione per gestire un Data Catalog e leggere dallo storage degli oggetti.
Requisiti delle credenziali e dei criteri di OCI Data Catalog:
-
È necessario un oggetto credenziale con autorizzazione per gestire un'istanza di Data Catalog. Sono supportati gli oggetti credenziali contenenti l'autenticazione nativa OCI. Gli oggetti credenziali basati sui principal utente del token di autenticazione e sulle credenziali dei principal risorsa non sono supportati.
Per informazioni sulla gestione delle credenziali, vedere DBMS_CLOUD for Access Management.
Per esempi di autenticazione nativa OCI, vedere Esempio: creazione di un oggetto credenziale di autenticazione nativa OCI e Autonomous AI Database Now supporta l'accesso allo storage degli oggetti con l'autenticazione nativa OCI.
-
Il privilegio Gestisci Data Catalog è necessario affinché Autonomous AI Database aggiunga proprietà personalizzate allo spazio di nomi Data Catalog. Questi privilegi consentono di sostituire nomi di schema, nomi di tabella, nomi di colonna e altro ancora.
Per ulteriori informazioni sulle autorizzazioni di Data Catalog, vedere Autorizzazioni richieste per ogni operazione API.
-
Il privilegio di lettura dello storage degli oggetti nei bucket è necessario in modo che Autonomous AI Database possa eseguire query sui file di dati.
Per ulteriori esempi di criteri di storage degli oggetti Oracle, vedere Esempi di criteri.
Requisiti delle credenziali e dei criteri di AWS Glue Data Catalog
Le credenziali utente e i criteri riportati di seguito sono necessari per concedere agli utenti di Autonomous AI Database l'autorizzazione ad accedere a Amazon Web Services (AWS) Glue Data Catalogs e a leggere dallo storage degli oggetti S3.
-
È necessario un oggetto credenziale con autorizzazione per accedere a un AWS Glue Data Catalog. Per informazioni sulla gestione delle credenziali, vedere DBMS_CLOUD for Access Management.
Per accedere a un AWS Glue Data Catalog sono necessari i seguenti privilegi: colla:GetDatabases , colla:GetTables e colla:GetTable.
Inoltre, il privilegio s3:GetBucketLocation è necessario durante la sincronizzazione per la generazione di URL https risolvibili che puntano agli oggetti S3 sottostanti.
-
È necessario un oggetto credenziale con autorizzazione per accedere AI file memorizzati in S3 in modo che Autonomous AI Database possa eseguire query sui file di dati.
-
Le credenziali AWS sono supportate. Le credenziali dei nomi delle risorse AWS Amazon (ARN) non sono supportate.
Esempio: creazione di un oggetto credenziale di autenticazione nativa OCI
In questo esempio, creiamo una credenziale di autenticazione nativa OCI che può essere utilizzata quando si crea un Data Catalog o un oggetto credenziale dell'area di memorizzazione degli oggetti. Per ulteriori dettagli, vedere DBMS_DCAT. Procedura SET_DATA_CATALOG_CREDENTIAL e procedura DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL rispettivamente.
Nella procedura di autenticazione nativa OCI, la procedura DBMS_CLOUD.CREATE_CREDENTIAL include i parametri seguenti: credential_name, user_ocid, tenancy_ocid, private_key e fingerprint. Per una descrizione completa di questa procedura, vedere Procedura DBMS_CLOUD CREATE_CREDENTIAL.
credential_name è il nome dell'oggetto credenziale. I parametri user_ocid e tenancy_ocid corrispondono rispettivamente agli OCID dell'utente e della tenancy.
Il parametro private_key specifica la chiave privata generata in formato PEM. Le chiavi private create con una passphrase non sono supportate. Pertanto, dobbiamo assicurarci di generare una chiave senza passphrase. Per ulteriori informazioni su come creare una chiave privata senza passphrase, vedere Come generare una chiave di firma API. Inoltre, la chiave privata che forniamo per questo parametro deve contenere solo la chiave stessa senza alcuna intestazione o piè di pagina (ad esempio '—–BEGIN RSA PRIVATE KEY—–', '—–END RSA PRIVATE KEY—–').
Il parametro fingerprint specifica l'impronta digitale ottenuta dopo aver caricato la chiave pubblica nella console o utilizzando i comandi OpenSSL. Per ulteriori dettagli su come ottenere l'impronta digitale, vedere Come caricare la chiave pubblica e Come ottenere l'impronta digitale della chiave.
Una volta raccolte tutte le informazioni necessarie e generata la chiave privata, siamo pronti per eseguire la seguente procedura 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;
/
Dopo aver creato l'oggetto credenziale, viene visualizzato nella tabella dba_credentials:
SELECT owner, credential_name
FROM dba_credentials
WHERE credential_name LIKE '%NATIVE%';
OWNER CREDENTIAL_NAME
----- ---------------
ADMIN OCI_NATIVE_CRED
Esempio: utilizzo dei principal utente
In questo esempio, user1 è membro del gruppo adb-admins. A tutti i membri di questo gruppo viene concessa l'autorizzazione per gestire tutti i data catalog in mycompartment e per la lettura dall'object store in mycompartment.
-
Consente agli utenti membri di
adb-adminsdi gestire tutti i Data Catalog all'interno dimycompartment.allow group adb-admins to manage data-catalog-family in compartment mycompartment -
Consente agli utenti membri di
adb-adminsdi leggere qualsiasi oggetto in qualsiasi bucket all'interno dimycompartment.allow group adb-admins to read objects in compartment mycompartment