A propos des compartiments

Découvrez comment spécifier le compartiment lors de la création et de l'utilisation de tables Oracle NoSQL Database Cloud Service à l'aide de pilotes Oracle NoSQL Database.

Les tables Oracle NoSQL Database Cloud Service sont créées dans un compartiment et portent sur ce compartiment. Lors de l'authentification d'un utilisateur spécifique, les tables sont gérées dans le compartiment racine de la location, sauf indication contraire. L'organisation des tables dans différents compartiments aide à l'égard de l'organisation et de la sécurité.

Si vous avez été authentifié à l'aide d'un principal d'instance (en accès au service à partir d'une instance OCI Compute), vous devez indiquer un compartiment avec son ID (OCID) car il n'existe aucune valeur par défaut dans ce cas. Reportez-vous à Appel de service à partir d'une instance dans la documentation Oracle Cloud Infrastructure.

Vous pouvez indiquer un compartiment dans le code d'application de plusieurs façons :
  1. Utilisez un compartiment par défaut dans NoSQLHandleConfig de sorte à ce qu'il s'applique à toutes les opérations utilisant le descripteur. Reportez-vous à Obtention d'un descripteur NoSQL pour un exemple.
  2. Utilisez le nom ou l'ID (OCID) du compartiment dans chaque demande, en plus du nom de la table. Cela remplace tout compartiment par défaut.
    Exemple :
    GetRequest getReq = new GetRequest().setTableName("mytable")
                                        .setCompartment("mycompartment");
  3. Utilisez le nom de compartiment en tant que préfixe dans le nom de table. Cela remplace tous les compartiments par défaut, ainsi que tous les compartiments spécifiés à l'aide de l'API.
    Exemple :
    GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");
Lors de l'utilisation d'un compartiment nommé, le nom peut être le nom simple d'un compartiment de niveau supérieur ou le chemin d'un compartiment imbriqué. Dans ce dernier cas, le chemin est un chemin séparé par des points ".".

Remarques :

Lorsque vous indiquez le chemin vers un compartiment imbriqué, n'incluez pas le nom du compartiment de niveau supérieur dans le chemin car il est déduit à partir de la location.
Vous pouvez indiquer un compartiment dans le code d'application de plusieurs façons :
  • Une méthode permet de spécifier un compartiment par défaut pour les demandes dans borneo.NoSQLHandleConfig.set_compartment(). Cela remplace le compartiment par défaut de l'utilisateur.
  • En outre, il est possible d'indiquer un compartiment dans chaque instance Request.
Les méthodes set_compartment utilisent un ID (OCID), un nom de compartiment ou un chemin. Si un nom de compartiment est utilisé, il peut s'agir du nom d'un compartiment de niveau supérieur.

Remarques :

Si un chemin de compartiment est utilisé pour référencer un compartiment imbriqué, il s'agit d'un chemin séparé par des points qui exclut le compartiment de niveau supérieur du chemin, par exemple compartmentA.compartmentB.
Au lieu de définir un compartiment dans la demande, vous pouvez utiliser un nom de compartiment pour préfixer un nom de table dans une demande, une requête ou une instruction DDL. Cette utilisation remplace tout autre paramètre du compartiment. Exemple :
...
request = PutRequest().set_table_name('mycompartment:mytable')
...
create_statement = 'create table mycompartment:mytable(...)' 
...
request = GetRequest().set_table_name('compartmentA.compartmentB')
Vous pouvez indiquer un compartiment dans le code d'application de plusieurs façons :
  • Vous pouvez définir un nom ou un ID de compartiment souhaité.
  • Définissez une chaîne vide pour utiliser le compartiment par défaut, c'est-à-dire le compartiment racine de la location.
  • Si vous utilisez un compartiment imbriqué, indiquez le chemin complet du compartiment racine en tant que compartmentID. Par exemple, si vous utilisez rootCompartment.compartmentA.compartmentB, compartmentID doit être défini sur compartmentA.compartmentB.
  • Vous pouvez également utiliser l'OCID de compartiment comme valeur de chaîne.
compartmentID:="<optional-compartment-name-or-ID>"
iam.NewRawSignatureProvider(tenancy, user, region, fingerprint, compartmentID,
        privateKey, &privateKeyPassphrase)
Vous pouvez indiquer un compartiment par défaut pour toutes les opérations effectuées par une instance NoSQLClient en définissant la propriété de compartiment de la configuration transmise au constructeur NoSQLClient :
import { NoSQLClient,Region } from 'oracle-nosqldb';
const client = new NoSQLClient({
    region: Region.US_ASHBURN_1,
    compartment: 'mycompartment'
});

La valeur de chaîne peut être un ID de compartiment, un nom ou un chemin de compartiment. S'il s'agit d'un nom simple, il doit indiquer un compartiment de niveau supérieur. S'il s'agit d'un chemin vers un compartiment imbriqué, le compartiment de niveau supérieur doit être exclu car il est inféré de la location. Un compartiment peut également être indiqué dans chaque demande de l'objet Options. Cette valeur remplace la valeur de configuration initiale.

Si vous n'indiquez aucun compartiment, le compartiment racine de la location sera utilisé comme compartiment par défaut. Cela s'applique uniquement si vous autorisez avec l'identité d'un utilisateur spécifique. Si vous utilisez le principal d'instance ou de ressource pour l'authentification, vous devez indiquer l'ID de compartiment car il n'y a pas de valeur par défaut dans ces cas.

Si le compartiment n'est pas indiqué, l'OCID de location est utilisé par défaut. Notez que cela ne s'applique que si vous autorisez avec l'identité de l'utilisateur. Lorsque vous utilisez un principal d'instance ou de ressource, l'ID de compartiment doit être indiqué.

Pour connaître la procédure de configuration du principal d'instance, reportez-vous à Appel de services à partir d'une instance. Pour connaître la procédure de configuration du principal de ressource, reportez-vous à Accessing Other Oracle Cloud Infrastructure Resources from Running Functions.

Le compartiment par défaut des tables est le compartiment racine de la location de l'utilisateur. Vous pouvez indiquer un compartiment par défaut pour toutes les opérations en définissant la propriété de compartiment NoSQLConfig. Exemple :
var client = new NoSQLClient(
    new NoSQLConfig
    {
        Region=Region.US_ASHBURN_1,
        Compartment="<compartment_ocid_or_name>"
    });
La valeur de chaîne peut être un OCID de compartiment, un nom ou un chemin de compartiment. S'il s'agit d'un nom simple, il doit indiquer un compartiment de niveau supérieur. S'il s'agit d'un chemin vers un compartiment imbriqué, le compartiment de niveau supérieur doit être exclu car il est inféré de la location.

En outre, toutes les classes d'options d'opération disposent de la propriété Compartment, telle que TableDDLOptions.Compartment, GetOptions.Compartment, PutOptions.Compartment, etc. Ainsi, vous pouvez également spécifier la comparaison séparément pour toute opération. Si cette valeur est définie, elle remplacera la valeur de compartiment dans NoSQLConfig, le cas échéant.

Si le compartiment n'est pas indiqué, l'OCID de location est utilisé par défaut. Notez que cela ne s'applique que si vous autorisez avec l'identité de l'utilisateur. Lorsque vous utilisez un principal d'instance ou de ressource, l'ID de compartiment doit être indiqué.

Rubriques connexes