DBMS_CLOUD per la gestione degli accessi
In questa sezione vengono descritti i sottoprogrammi DBMS_CLOUD
utilizzati per la gestione dell'accesso.
Argomenti correlati
Prerequisiti
Come sviluppatore, puoi utilizzare le procedure DBMS_CLOUD con Autonomous Database distribuite 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.
- Crea un gateway NAT nella rete cloud virtuale (VCN) in cui risiedono le tue risorse di Autonomous Database seguendo le istruzioni riportate 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 di uscita a ogni subnet (nella VCN) in cui risiedono le risorse di Autonomous 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:
- Data: 0.0.0.0/0
- Tipo di destinazione: gateway NAT
- Destinazione: il nome del gateway NAT appena creato nella VCN
Se la 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 di sicurezza della subnet, fare clic sul nome della lista di sicurezza della subnet per visualizzare la relativa pagina Dettagli lista 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
- Data: 0.0.0.0/0
- Protocollo IP: TCP
- Intervallo porte di origine: 443
- Intervallo di porte di destinazione: tutte
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.
Nota
La configurazione di rete, incluso il proxy HTTP, può essere modificata solo fino a quando lo stato dell'infrastruttura Exadata non è Richiede attivazione. Una volta attivato, non è possibile modificare tali impostazioni.L'impostazione di un proxy HTTP per un'infrastruttura Exadata già fornita richiede una richiesta di servizio (SR) in My Oracle Support. Per informazioni dettagliate, vedere Create a Service Request in My Oracle Support.
DBMS_CLOUD Sottoprogrammi per la gestione degli accessi
I sottoprogrammi per la gestione delle credenziali all'interno del package DBMS_CLOUD, incluse le credenziali di creazione, eliminazione e aggiornamento.
Sottoprogramma | Descrizione |
---|---|
Questa procedura memorizza le credenziali del servizio cloud in Autonomous Database. | |
Questa procedura rimuove una credenziale esistente da Autonomous Database. | |
Questa procedura aggiorna gli attributi delle credenziali del servizio cloud in Autonomous Database. |
CREATE_CREDENTIAL Procedura
Questa procedura memorizza le credenziali del servizio cloud in Autonomous Database.
Utilizzare le credenziali del servizio cloud memorizzate per accedere al servizio cloud per il caricamento dei dati, per eseguire query sui dati esterni che risiedono nel cloud o per altri casi quando si utilizzano le 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 |
---|---|
|
Il nome della credenziale da memorizzare. Il parametro |
|
Gli argomenti |
|
Gli argomenti |
|
Specifica l'OCID dell'utente. Per informazioni dettagliate su come ottenere l'OCID dell'utente, vedere Where to Get the Tenancy's OCID and User's OCID. |
|
Specifica l'OCID della tenancy. Per informazioni dettagliate su come ottenere l'OCID della tenancy, vedere Where to Get the Tenancy's OCID and User's OCID. |
|
Specifica la chiave privata generata. Le chiavi private generate con una password 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. |
|
Specifica un'impronta digitale. Dopo aver caricato una chiave pubblica generata nell'account dell'utente, l'impronta viene visualizzata nella console. Utilizzare l'impronta digitale 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 formato cifrato.
-
È possibile visualizzare le credenziali nello schema eseguendo una query sulla tabella
user_credentials
. -
L'utente
ADMIN
può visualizzare tutte le credenziali eseguendo una query sulla tabelladba_credentials
. -
È necessario creare le credenziali una sola volta a meno che le credenziali del servizio cloud non vengano modificate. Dopo aver memorizzato le credenziali, è possibile utilizzare lo stesso nome di credenziale per le procedure
DBMS_CLOUD
che richiedono un parametrocredential_name
. -
Questa procedura è sovraccaricata. Se si fornisce uno degli attributi di autenticazione basati su chiave,
user_ocid
,tenancy_ocid
,private_key
ofingerprint
, si presume che la chiamata sia una credenziale basata su chiave di firma di Oracle Cloud Infrastructure. -
È possibile elencare le credenziali dalla vista
ALL_CREDENTIALS
. Ad esempio, eseguire il comando seguente per visualizzare le credenziali:SELECT credential_name, username, comments FROM all_credentials;
Credenziali Oracle Cloud Infrastructure (token di autorizzazione)
Per Oracle Cloud Infrastructure, username
è il nome utente di 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;
/
Usare le credenziali basate su token di autenticazione quando si autenticano le 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 Oracle Cloud Infrastructure
Utilizzare i parametri correlati alla chiave di firma di Oracle Cloud Infrastructure, tra cui user_ocid
, tenancy_ocid
, private_key
e fingerprint
con l'autenticazione delle chiavi di firma di Oracle Cloud Infrastructure.
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 password 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 chiamando un'API di Azure, username
è il nome dell'account di memorizzazione di Azure e password
è una chiave di accesso dell'account di memorizzazione di Azure. Vedere Informazioni sugli account di memorizzazione di Azure.
Credenziali Amazon S3 compatibili
Servizio | Informazioni credenziali |
---|---|
Google Cloud Storage |
Se i file di origine risiedono in Google Cloud Storage o si chiamano le API Google Cloud Storage, è necessario impostare un progetto Google predefinito e ottenere una chiave HMAC per creare le credenziali da fornire con gli URL compatibili con Google Cloud Storage S3. Utilizzare l'ID chiave HMAC come nome utente e il segreto HMAC come password. Per ulteriori informazioni, vedere Progetti e Chiavi HMAC. |
DROP_CREDENTIAL Procedura
Questa procedura rimuove una credenziale esistente da Autonomous Database.
Sintassi
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
Parametri
Parametro | Descrizione |
---|---|
|
Il nome della credenziale da rimuovere. |
UPDATE_CREDENTIAL Procedura
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 che risiedono 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 |
---|---|
|
Il nome della credenziale da aggiornare. |
|
Nome dell'attributo da aggiornare. Per una credenziale di tipo nome utente/password, i valori validi di Per ulteriori informazioni, vedere CREATE_CREDENTIAL Procedura. |
|
Nuovo valore per l'attributo specificato. |
Note sull'uso
-
Il valore del nome utente distingue tra casi. Non può contenere virgolette o spazi.
-
L'utente
ADMIN
può visualizzare tutte le credenziali eseguendo una query sudba_credentials
. -
È necessario creare le credenziali una sola volta a meno che le credenziali del servizio cloud non vengano modificate. Dopo aver memorizzato le credenziali, è possibile utilizzare lo stesso nome di credenziale per le procedure
DBMS_CLOUD
che richiedono un parametrocredential_name
. -
È possibile elencare le credenziali dalla vista
ALL_CREDENTIALS
. Ad esempio, eseguire il comando seguente per visualizzare 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;
/