Accesso a una cross-tenancy del database mediante un'integrazione IAM
Gli utenti e i gruppi di una tenancy possono accedere alle istanze di database DBaaS in un'altra tenancy se i criteri di entrambe le tenancy lo consentono.
- Informazioni sull'accesso cross-tenancy per gli utenti IAM alle istanze DBaaS
L'accesso cross-tenancy a un'istanza Oracle Cloud Infrastructure (OCI) DBaaS è simile a uno scenario a tenancy singolo, ad eccezione del fatto che le informazioni sulla tenancy sono necessarie per i mapping e le richieste di token e un criterio è necessario in entrambe le tenancy per consentire l'accesso a questa risorsa di database cross-tenancy. - Configurazione dei criteri
Per consentire l'accesso al database cross-tenancy, è necessario creare criteri sia nella tenancy utente che nella tenancy della risorsa di database. - Mapping di schemi e ruoli di database a utenti e gruppi in un'altra tenancy
Quando si esegue questo tipo di mapping, è necessario aggiungere l'OCID della tenancy alle informazioni di mapping in modo che il database sappia che si tratta di accesso cross-tenancy. - Configurazione dei client di database per l'accesso cross-tenancy
È possibile configurare direttamente alcuni client di database. - Richiesta di token cross-tenancy mediante l'interfaccia della riga di comando OCI
È necessario aggiungere il parametro--scope
al comando dell'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI) per ottenere un valoredb-token
per una richiesta cross-tenancy. Se il database a cui si sta accedendo si trova in un'area diversa dall'area di origine della tenancy dell'utente, è necessario aggiungere l'area anche al comando CLI OCI utilizzando il parametro --region.
Informazioni sull'accesso cross-tenancy per gli utenti IAM alle istanze DBaaS
L'accesso cross-tenancy a un'istanza DBaaS di Oracle Cloud Infrastructure (OCI) è simile a uno scenario a tenancy singolo, ad eccezione del fatto che le informazioni sulla tenancy sono necessarie per i mapping e le richieste di token e che un criterio è necessario in entrambe le tenancy per consentire l'accesso alle risorse del database tra tenancy.
La figura riportata di seguito illustra il processo per un accesso cross-tenancy a un'istanza DBaaS OCI.
Figura 3-1 Accesso cross-tenancy a un'istanza DBaaS OCI

Descrizione della "Figura 3-1 Accesso cross-tenancy a un'istanza DBaaS OCI"
Il processo cross-tenancy è il seguente:
- Il criterio è necessario in entrambe le tenancy per approvare e ammettere l'accesso tra tenancy.
- Il principal IAM (utente o applicazione) richiede un token DB per una risorsa cross-tenancy.
- Viene restituito il file
db-token
che viene utilizzato per accedere al database in una tenancy diversa - Il database eseguirà una query di gruppo cross-tenancy per i gruppi dell'utente e mapperà il principal allo schema globale e ai ruoli globali facoltativi.
È necessario eseguire la sottoscrizione della tenancy utente alle stesse aree in cui si trovano i database. Ad esempio, se i database nella tenancy del database si trovano nelle aree PHX
e IAD
, è necessario eseguire la sottoscrizione della tenancy utente a queste aree. Questa non è l'area di origine, ma solo le aree sottoscritte aggiuntive nella tenancy utente.
Configurazione dei criteri
È necessario creare criteri sia nella tenancy utente che nella tenancy delle risorse del database per consentire l'accesso al database cross-tenancy.
- Configurazione della tenancy utente di origine
Per consentire l'accesso cross-tenancy nella tenancy utente, sono necessari due criteri. - Configurazione della tenancy della risorsa di database di destinazione
La tenancy del database avrà bisogno di criteri corrispondenti per abilitare l'accesso agli utenti dalla tenancy dell'utente e consentire ai propri database di eseguire query sulle informazioni dei gruppi nella tenancy dell'utente - Esempi di criteri per l'accesso cross-tenancy
Gli esempi includono l'uso di una clausolaWHERE
per perfezionare la configurazione cross-tenancy e altri metodi per eseguire questo tipo di configurazione.
Configurazione della tenancy dell'utente di origine
Per consentire l'accesso cross-tenancy nella tenancy utente sono necessari due criteri.
Argomento padre: Configurazione dei criteri
Configurazione della tenancy delle risorse del database di destinazione
La tenancy del database avrà bisogno di criteri corrispondenti per abilitare l'accesso agli utenti dalla tenancy dell'utente e consentire ai propri database di eseguire query sulle informazioni sui gruppi nella tenancy dell'utente
any-user
semplifichi la comprensione dei criteri richiesti, Oracle consiglia di utilizzare vincoli più rigorosi oltre a o anziché utilizzare any-user
. L'opzione any-user
consente a qualsiasi principal o risorsa di eseguire query sui gruppi di utenti nel file user_tenancy
. Idealmente, dovresti limitarlo a consentire solo alle risorse del database (principali delle risorse) di eseguire query di gruppo. È possibile eseguire questa operazione aggiungendo una clausola WHERE
ai criteri o aggiungendo un gruppo dinamico che la limita ai membri del gruppo dinamico. La definizione di ogni possibile modo per specificare gruppi dinamici e criteri non rientra nell'ambito di questo argomento. È possibile trovare ulteriori informazioni da queste fonti:
Argomento padre: Configurazione dei criteri
Esempi di criteri per l'accesso cross-tenancy
Ad esempio, è possibile utilizzare una clausola WHERE
per perfezionare la configurazione cross-tenancy e altri metodi per eseguire questo tipo di configurazione.
È possibile aggiungere una clausola WHERE
per limitare le risorse di database consentite per eseguire la query del gruppo cross-tenancy:
ADMIT any-user of tenancy db_tenancy to {GROUP_MEMBERSHIP_INSPECT, AUTHENTICATION_INSPECT} in tenancy where request.principal.type = 'dbsystem'
Questo criterio di ammissione consente a qualsiasi servizio di Base Database (tipo di risorsa: dbsystem
) in db_tenancy
di eseguire query sulle informazioni di gruppo di un utente dalla tenancy utente. I nomi dei tipi di risorsa si trovano nella tabella riportata di seguito.
Un metodo simile può essere eseguito inserendo lo stesso tipo di risorsa in un gruppo dinamico:
dynamic group: db_principals
any {resource.type = 'dbsystem', resource.type = 'vmcluster', resource.type = 'cloudvmcluster'}
Il gruppo dinamico nell'esempio precedente include le istanze di database per Oracle Base Database Service (dbsystem
), Oracle Exadata Cloud@Customer (vmcluster
) e Oracle Exadata Database Service (cloudvmcluster
).
In questo esempio viene utilizzato un gruppo dinamico anziché any-user
:
ADMIT dynamic group db_principals of tenancy db_tenancy to {GROUP_MEMBERSHIP_INSPECT, AUTHENTICATION_INSPECT} in tenancy
È inoltre possibile aggiungere tutti i principal risorsa in un compartimento utilizzando resource.compartment.id
. Tuttavia, ciò potrebbe anche consentire ad altri principal di risorse non di database di eseguire la query del gruppo cross-tenancy. La tabella riportata di seguito fornisce un mapping dei vari tipi di risorsa con il nome della piattaforma DBaaS.
DBaaS Nome piattaforma | Nome tipo di risorsa |
---|---|
ADB-S |
|
ADB-D (OPC) |
|
DBS di base |
|
ExaCS |
|
ExaCC |
|
* Le istanze ADBD precedenti potrebbero ancora utilizzare il tipo di risorsa autonomousexainfrastructure
.
Argomento padre: Configurazione dei criteri
Mapping di schemi e ruoli del database a utenti e gruppi in un'altra tenancy
Quando si esegue questo tipo di mapping, è necessario aggiungere l'OCID della tenancy alle informazioni di mapping in modo che il database sappia che si tratta di accesso cross-tenancy.
CREATE USER
e CREATE ROLE
in SQL*Plus.
Configurazione dei client di database per l'accesso multi-tenancy
È possibile configurare direttamente alcuni client di database.
La tenancy del database deve essere identificata nella stringa di connessione o in sqlnet.ora
se il client è configurato per ottenere direttamente il token di accesso da IAM OCI. Consultare la documentazione specifica del client per i valori dei parametri specifici (JDBC-thin, ODP.NET-core, gestito).
Richiesta di token cross-tenancy mediante l'interfaccia della riga di comando OCI
È necessario aggiungere il parametro --scope
al comando dell'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI) per ottenere un valore db-token
per una richiesta cross-tenancy. Se il database a cui si sta accedendo si trova in un'area diversa dall'area di origine della tenancy dell'utente, è necessario aggiungere l'area anche al comando CLI OCI utilizzando il parametro --region.
Per ulteriori informazioni sull'utilizzo dei parametri opzionali del comando oci get
, vedere Parametri opzionali.
Puoi applicarlo all'intera tenancy o applicarlo a un compartimento o a un database nella tenancy. Quando si applica l'ambito per il compartimento o il database tra tenancy, non è necessario aggiungere anche le informazioni sulla tenancy perché gli OCID del compartimento e del database sono univoci in OCI.
Alcuni clienti possono richiedere i token direttamente da MSEI. Fare riferimento alla documentazione relativa all'impostazione dei parametri per ottenere i token di accesso MSEI OAuth2
.