Informazioni sui compartimenti
Informazioni su come specificare il compartimento durante la creazione e l'utilizzo delle tabelle di Oracle NoSQL Database Cloud Service mediante i driver Oracle NoSQL Database.
Le tabelle di Oracle NoSQL Database Cloud Service vengono create in un compartimento e vengono definite in tale compartimento. Quando vengono autenticate come utente specifico, le tabelle vengono gestite nel compartimento radice della tenancy, a meno che non sia specificato diversamente. L'organizzazione delle tabelle in diversi compartimenti contribuirà all'organizzazione e alla sicurezza.
Se sei stato autenticato utilizzando un principal dell'istanza (accedendo al servizio da un'istanza di computazione OCI), devi specificare un compartimento utilizzando il relativo ID (OCID), poiché in questo caso non esiste un'impostazione predefinita. Vedere Chiamata del servizio da un'istanza in Documentazione di Oracle Cloud Infrastructure.
Esistono diversi modi per specificare un compartimento nel codice dell'applicazione:
-
Utilizzare un compartimento predefinito in
NoSQLHandleConfigin modo che venga applicato a tutte le operazioni che utilizzano l'handle. Per un esempio, vedere Come ottenere una gestione NoSQL. -
Utilizzare il nome del compartimento o l'ID (OCID) in ogni richiesta oltre al nome della tabella. In questo modo viene eseguito l'override di qualsiasi compartimento predefinito.
Ad esempio:
GetRequest getReq = new GetRequest().setTableName("mytable") .setCompartment("mycompartment"); -
Utilizzare il nome del compartimento come prefisso nel nome della tabella. In questo modo viene eseguito l'override di qualsiasi compartimento predefinito e di qualsiasi compartimento specificato utilizzando l'API.
Ad esempio:
GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");
Quando si utilizza un compartimento denominato, il nome può essere il nome semplice di un compartimento di livello superiore o un percorso di un compartimento nidificato. In quest'ultimo caso, il percorso è un "." (punto) percorso separato.
Nota: quando si specifica il percorso di un compartimento nidificato, non includere il nome del compartimento di livello superiore nel percorso come derivato dalla tenancy.
Esistono diversi modi per specificare un compartimento nel codice dell'applicazione:
-
Esiste un metodo per consentire la specifica di un compartimento predefinito per le richieste in
borneo.NoSQLHandleConfig.set_compartment(). In questo modo si esegue l'override del compartimento predefinito dell'utente. -
Inoltre, è possibile specificare un compartimento in ogni istanza
Request.
I metodi set_compartment utilizzano un ID (OCID), un nome di compartimento o un percorso. Se si utilizza un nome di compartimento, può essere il nome di un compartimento di livello superiore.
Nota: se si utilizza un percorso di compartimento per fare riferimento a un compartimento nidificato, il percorso è un percorso separato da punti che esclude il compartimento di livello superiore del percorso, ad esempio compartmentA.compartmentB.
Anziché impostare un compartimento nella richiesta, è possibile utilizzare un nome di compartimento per anteporre un nome di tabella a una richiesta, una query o un'istruzione DDL. Questo uso sostituisce qualsiasi altra impostazione del compartimento. Di seguito sono riportati alcuni esempi.
...
request = PutRequest().set_table_name('mycompartment:mytable')
...
create_statement = 'create table mycompartment:mytable(...)'
...
request = GetRequest().set_table_name('compartmentA.compartmentB')
Esistono diversi modi per specificare un compartimento nel codice dell'applicazione:
-
È possibile impostare un nome o un ID compartimento desiderato.
-
Impostare su una stringa vuota per utilizzare il compartimento predefinito, ovvero il compartimento radice della tenancy.
-
Se si utilizza un compartimento nidificato, specificare il percorso completo del compartimento relativo al compartimento radice come compartmentID. Ad esempio, se si utilizza rootCompartment.compartmentA.compartmentB, l'ID compartimento deve essere impostato su
compartmentA.compartmentB. -
È anche possibile utilizzare l'OCID compartimento come valore stringa.
compartmentID:="<optional-compartment-name-or-ID>"
iam.NewRawSignatureProvider(tenancy, user, region, fingerprint, compartmentID,
privateKey, &privateKeyPassphrase)
È possibile specificare un compartimento predefinito per tutte le operazioni eseguite da un'istanza NoSQLClient impostando la proprietà del compartimento della configurazione passata al costruttore NoSQLClient:
import { NoSQLClient,Region } from 'oracle-nosqldb';
const client = new NoSQLClient({
region: Region.US_ASHBURN_1,
compartment: 'mycompartment'
});
Il valore stringa può essere un ID compartimento o un nome o un percorso di compartimento. Se si tratta di un nome semplice, è necessario specificare un compartimento di livello superiore. Se si tratta di un percorso a un compartimento nidificato, è necessario escludere il compartimento di livello superiore poiché viene derivato dalla tenancy. È inoltre possibile specificare un compartimento in ogni richiesta nell'oggetto opzioni. Questo valore consente di eseguire l'override sul valore di configurazione iniziale.
Se non si specifica un compartimento, il compartimento radice della tenancy verrà utilizzato come predefinito. Questo vale solo se si sta autorizzando con l'identità di un utente specifico. Se si utilizza il principal istanza o il principal risorsa per l'autenticazione, è necessario specificare l'ID compartimento poiché in questi casi non esiste alcuna impostazione predefinita.
Se il compartimento non viene fornito, l'OCID tenancy verrà utilizzato come predefinito. Tenere presente che ciò si applica solo se si sta autorizzando l'identità dell'utente. Quando si utilizza il principal istanza o il principal risorsa, è necessario specificare l'ID compartimento.
Per la procedura di impostazione del principal dell'istanza, vedere Chiamata di servizi da un'istanza. Per la procedura di impostazione del principal risorsa, vedere Accesso ad altre risorse Oracle Cloud Infrastructure dalle funzioni in esecuzione.
Il compartimento predefinito per le tabelle è il compartimento radice della tenancy dell'utente. È possibile specificare un compartimento predefinito per tutte le operazioni impostando la proprietà Compartimento su NoSQLConfig. Ad esempio:
var client = new NoSQLClient(
new NoSQLConfig
{
Region=Region.US_ASHBURN_1,
Compartment="<compartment_ocid_or_name>"
});
Il valore stringa può essere un OCID compartimento o un nome o un percorso di compartimento. Se si tratta di un nome semplice, è necessario specificare un compartimento di livello superiore. Se si tratta di un percorso a un compartimento nidificato, è necessario escludere il compartimento di livello superiore poiché viene derivato dalla tenancy.
Inoltre, tutte le classi di opzioni delle operazioni dispongono della proprietà Compartment, ad esempio TableDDLOptions.Compartment, GetOptions.Compartment, PutOptions.Compartment e così via. Pertanto, è anche possibile specificare il confronto separatamente per qualsiasi operazione. Questo valore, se impostato, sostituirà il valore del compartimento in NoSQLConfig, se presente.
Se il compartimento non viene fornito, l'OCID tenancy verrà utilizzato come predefinito. Tenere presente che ciò si applica solo se si sta autorizzando l'identità dell'utente. Quando si utilizza il principal istanza o il principal risorsa, è necessario specificare l'ID compartimento.