DBMS_CLOUD per gestione accessi
In questa sezione vengono descritti i sottoprogrammi DBMS_CLOUD utilizzati per la gestione degli accessi.
Prerequisiti
Come sviluppatore, puoi utilizzare le procedure DBMS_CLOUD con i database AI autonomi distribuiti su Oracle Public Cloud, Multicloud o Exadata Cloud@Customer.
A seconda della scelta di distribuzione, è necessario soddisfare i seguenti prerequisiti per utilizzare le procedure DBMS_CLOUD con i provider di servizi Amazon S3, Azure Blob Storage e Google Cloud Storage.
Una connettività in uscita deve essere stata configurata utilizzando un gateway NAT dall'amministratore della flotta, come descritto di seguito.
-
Creare un gateway NAT nella rete cloud virtuale (VCN) in cui risiedono le risorse di Autonomous AI Database seguendo le istruzioni in Crea un gateway NAT nella documentazione di Oracle Cloud Infrastructure.
-
Dopo aver creato il gateway NAT, aggiungere una regola di instradamento e una regola di sicurezza in uscita a ogni subnet (nella VCN) in cui risiedono le risorse di Autonomous AI Database in modo che queste risorse possano utilizzare il gateway per ottenere una chiave pubblica dall'istanza di Azure AD:
-
Andare alla pagina Dettagli subnet per la subnet.
-
Nella scheda Informazioni subnet fare clic sul nome della tabella di instradamento della subnet per visualizzare la relativa pagina Dettagli tabella di instradamento.
-
Nella tabella delle regole di instradamento esistenti, verificare se esiste già una regola con le seguenti caratteristiche:
-
Destinazione: 0.0.0.0/0
-
Tipo di destinazione: gateway NAT
-
Destinazione: il nome del gateway NAT appena creato nella VCN
Se tale regola non esiste, fare clic su Aggiungi regole di instradamento e aggiungere una regola di instradamento con queste caratteristiche.
-
-
Tornare alla pagina Dettagli subnet per la subnet.
-
Nella tabella Elenchi sicurezza della subnet fare clic sul nome della lista di sicurezza della subnet per visualizzare la relativa pagina Dettagli elenco di sicurezza.
-
Nel menu laterale, in Risorse, fare clic su Regole di uscita.
-
Nella tabella delle regole di uscita esistenti, verificare se esiste già una regola con le seguenti caratteristiche:
-
Tipo di destinazione:CIDR
-
Destinazione:0.0.0.0/0
-
Protocollo IP:TCP
-
Intervallo porte di origine:443
-
Intervallo porte di destinazione:Tutti
Se una regola di questo tipo non esiste, fare clic su Aggiungi regole di uscita e aggiungere una regola di uscita con queste caratteristiche.
-
-
Le impostazioni del proxy HTTP nell'ambiente devono consentire al database di accedere al provider di servizi cloud.
Queste impostazioni vengono definite dall'amministratore della flotta durante la creazione dell'infrastruttura Exadata Cloud@Customer, come descritto in Uso della console per eseguire il provisioning di Exadata Database Service su Cloud@Customer.
Nota: la configurazione di rete, incluso il proxy HTTP, può essere modificata solo fino a quando l'infrastruttura Exadata non è in stato Richiede attivazione. Una volta attivato, non è possibile modificare tali impostazioni.
L'impostazione di un proxy HTTP per un'infrastruttura Exadata già di cui è stato eseguito il provisioning richiede una richiesta di servizio (SR) in My Oracle Support. Per i dettagli, vedere Crea una richiesta di servizio in My Oracle Support.
Riepilogo dei sottoprogrammi DBMS_CLOUD per Access Management
Sottoprogrammi per la gestione delle credenziali all'interno del package DBMS_CLOUD, inclusa la creazione, l'eliminazione e l'aggiornamento delle credenziali.
| Sottoprogramma | Descrizione |
|---|---|
| Procedura CREATE_CREDENTIAL | Questa procedura memorizza le credenziali del servizio cloud in Autonomous AI Database. |
| Procedura DROP_CREDENTIAL | Questa procedura rimuove una credenziale esistente da Autonomous AI Database. |
| Procedura UPDATE_CREDENTIAL | Questa procedura aggiorna gli attributi delle credenziali del servizio cloud in Autonomous AI Database. |
Procedura CREATE_CREDENTIAL
Questa procedura memorizza le credenziali del servizio cloud in Autonomous AI Database.
Utilizzare le credenziali del servizio cloud memorizzate per accedere al servizio cloud per il caricamento dei dati, per eseguire query sui dati esterni residenti nel cloud o per altri casi quando si utilizzano procedure DBMS_CLOUD con un parametro credential_name.
Sintassi
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);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Il nome della credenziale da memorizzare. Il parametro credential_name deve essere conforme alle convenzioni di denominazione degli oggetti Oracle, che non consentono spazi o trattini. |
username |
Gli argomenti username e password insieme specificano le credenziali del servizio cloud. Vedere le note di utilizzo per informazioni su cosa specificare per username e password per i diversi servizi cloud. |
password |
Gli argomenti username e password insieme specificano le credenziali del servizio cloud. |
user_ocid |
Specifica l'OCID dell'utente. Vedere Dove ottenere l'OCID della tenancy e l'OCID dell'utente per informazioni dettagliate su come ottenere l'OCID dell'utente. |
tenancy_ocid |
Specifica l'OCID della tenancy. Vedere Dove ottenere l'OCID della tenancy e l'OCID dell'utente per informazioni dettagliate su come ottenere l'OCID della tenancy. |
private_key |
Specifica la chiave privata generata. Le chiavi private generate con una passphrase non sono supportate. È necessario generare la chiave privata senza una passphrase. Per informazioni dettagliate sulla generazione di una coppia di chiavi in formato PEM, vedere Come generare una chiave di firma API. |
fingerprint |
Specifica un'impronta digitale. Dopo che una chiave pubblica generata è stata caricata nell'account dell'utente, l'impronta digitale viene visualizzata nella console. Utilizzare l'impronta visualizzata per questo argomento. Per ulteriori dettagli, vedere Come ottenere l'impronta digitale della chiave e Come generare una chiave di firma API. |
Note sull'uso
-
Questa operazione memorizza le credenziali nel database in un formato cifrato.
-
È possibile visualizzare le credenziali nello schema eseguendo una query sulla tabella
user_credentials. -
L'utente
ADMINpuò visualizzare tutte le credenziali eseguendo una query sulla tabelladba_credentials. -
È necessario creare le credenziali solo una volta, a meno che le credenziali del servizio cloud non vengano modificate. Una volta memorizzate le credenziali, è possibile utilizzare lo stesso nome credenziale per le procedure
DBMS_CLOUDche richiedono un parametrocredential_name. -
Questa procedura è sovraccaricata. Se si fornisce uno degli attributi di autenticazione basati su chiave,
user_ocid,tenancy_ocid,private_keyofingerprint, la chiamata viene considerata una credenziale basata sulla chiave di firma di Oracle Cloud Infrastructure. -
È possibile elencare le credenziali dalla vista
ALL_CREDENTIALS. Ad esempio, eseguire il comando seguente per elencare le credenziali:SELECT credential_name, username, comments FROM all_credentials;
Credenziali di Oracle Cloud Infrastructure (token di autenticazione)
Per Oracle Cloud Infrastructure, username è il tuo nome utente Oracle Cloud Infrastructure. password è il token di autenticazione di Oracle Cloud Infrastructure. Vedere Utilizzo dei token di autenticazione.
Ad esempio:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
Utilizzare le credenziali basate su token di autenticazione durante l'autenticazione delle chiamate allo storage degli oggetti OCI. Per le chiamate a qualsiasi altro tipo di servizio cloud Oracle Cloud Infrastructure, utilizza le credenziali basate su chiave di firma di Oracle Cloud Infrastructure.
Credenziali basate su chiave di firma di Oracle Cloud Infrastructure
Utilizza i parametri correlati alle chiavi di firma di Oracle Cloud Infrastructure, tra cui: user_ocid, tenancy_ocid, private_key e fingerprint con l'autenticazione Oracle Cloud Infrastructure Signing Keys.
Ad esempio:
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;
/
Le chiavi private generate con una passphrase non sono supportate. È necessario generare la chiave privata senza una passphrase. Per ulteriori informazioni, vedere Come generare una chiave di firma API.
Credenziali Amazon Web Services (AWS)
Se i file di origine risiedono in Amazon S3 o si sta chiamando un'API AWS, username è l'ID della chiave di accesso AWS e password è la chiave di accesso segreta AWS. Vedere AWS Identity and Access Management.
Credenziali Microsoft Azure
Se i file di origine risiedono in Azure Blob Storage o si sta richiamando un'API di Azure, username è il nome dell'account di storage di Azure e password è una chiave di accesso dell'account di storage di Azure. Vedere Informazioni sugli account di storage di Azure.
Amazon S3-CompatibleCredentials
| Servizio | Informazioni sulle credenziale |
|---|---|
| Archiviazione Google Cloud | Se i file di origine risiedono in Google Cloud Storage o si stanno chiamando API di Google Cloud Storage, è necessario impostare un progetto Google predefinito e ottenere una chiave HMAC per creare credenziali per fornire URL compatibili con Google Cloud Storage S3. Utilizzare l'ID chiave HMAC come nome utente e il segreto HMAC come password. |
Gestire la credenziale DBMS_CLOUD per l'autenticazione nello storage degli oggetti C3
È possibile utilizzare la procedura DBMS_CLOUD.CREATE_CREDENTIAL per fornire ad Autonomous AI Database le informazioni di autenticazione necessarie per connettersi al bucket di storage degli oggetti C3. Utilizza i parametri correlati alla chiave di firma di Oracle Cloud Infrastructure, tra cui user_ocid, tenancy_ocid, private_key e fingerprint con l'autenticazione Oracle Cloud Infrastructure Signing Keys.
Di seguito sono riportati alcuni esempi.
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;
/
Procedura DROP_CREDENTIAL
Questa procedura rimuove una credenziale esistente da Autonomous AI Database.
Sintassi
DBMS_CLOUD.DROP_CREDENTIAL (
credential_name IN VARCHAR2);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Il nome della credenziale da rimuovere. |
Procedura UPDATE_CREDENTIAL
Questa procedura aggiorna un attributo con un nuovo valore per un valore credential_name specificato.
Utilizzare le credenziali memorizzate per il caricamento dei dati, per eseguire query sui dati esterni residenti nel cloud o ovunque si utilizzino le procedure DBMS_CLOUD con un parametro credential_name.
Sintassi
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
Parametri
| Parametro | Descrizione |
|---|---|
credential_name |
Nome della credenziale da aggiornare. |
attribute |
Nome dell'attributo da aggiornare. Per una credenziale di tipo nome utente/password, i valori Per ulteriori informazioni, vedere Procedura CREDENTIAL. |
value |
Il nuovo valore dell'attributo specificato. |
Note sull'uso
-
Il valore del nome utente fa distinzione tra maiuscole e minuscole. Non può contenere virgolette doppie o spazi.
-
L'utente
ADMINpuò visualizzare tutte le credenziali eseguendo una query sudba_credentials. -
È necessario creare le credenziali solo una volta, a meno che le credenziali del servizio cloud non vengano modificate. Una volta memorizzate le credenziali, è possibile utilizzare lo stesso nome credenziale per le procedure
DBMS_CLOUDche richiedono un parametrocredential_name. -
È possibile elencare le credenziali dalla vista
ALL_CREDENTIALS. Ad esempio, eseguire il comando seguente per elencare le credenziali:SELECT credential_name, username, comments FROM all_credentials;
Esempi
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;
/