À propos des compartiments

Voyez comment spécifier le compartiment lors de la création et de l'utilisation des tables Oracle NoSQL Database Cloud Service à l'aide des 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 en tant qu'utilisateur spécifique, vos tables sont gérées dans le compartiment racine de votre location, à moins d'indication contraire. L'organisation de tables dans différents compartiments facilite l'organisation et améliore la sécurité.

Si vous avez été authentifié à l'aide d'un principal d'instance (en utilisant le service à partir d'une instance de calcul OCI), vous devez spécifier un compartiment en utilisant son ID (OCID) car dans cette situation, il n'y a pas de compartiment par défaut. Voir Appel d'un service à partir d'une instance dans la documentation d'Oracle Cloud Infrastructure.

Vous pouvez spécifier un compartiment de plusieurs façons :
  1. Utilisez un compartiment par défaut dans NoSQLHandleConfig pour qu'il s'applique à toutes les opérations qui utilisent le descripteur. Voir Obtention d'un descripteur NoSQL pour plus d'informations.
  2. Utilisez le nom ou l'ID (OCID) du compartiment dans chaque demande, en plus du nom de la table. Cette opération remplace tout compartiment par défaut.
    Par exemple :
    GetRequest getReq = new GetRequest().setTableName("mytable")
                                        .setCompartment("mycompartment");
  3. Utilisez le nom du compartiment comme préfixe pour le nom de la table. Cette opération remplace tous les compartiments par défaut et ceux spécifiés à l'aide de l'API.
    Par exemple :
    GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");
Lors de l'utilisation d'un compartiment nommé, ce nom peut être le nom simple d'un compartiment de niveau supérieur ou un chemin vers un compartiment imbriqué. Dans ce cas, le point ().

Note :

Lorsque vous spécifiez le chemin d'un compartiment imbriqué, n'y incluez pas le nom du compartiment de niveau supérieur, car il est déduit de la location.
Vous pouvez spécifier un compartiment de plusieurs façons :
  • Une méthode existe pour autoriser la spécification d'un compartiment par défaut pour les demandes dans borneo.NoSQLHandleConfig.set_compartment(). Cette opération remplace le compartiment par défaut de l'utilisateur.
  • En outre, il est possible de spécifier un compartiment dans chaque instance Request.
Les méthodes set_compartment prennent un ID (OCID) ou 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.

Note :

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, il est possible d'utiliser un nom de compartiment pour préfixer un nom de table dans une demande, une interrogation ou un énoncé LDD. Cette utilisation remplace tout autre paramètre du compartiment. Par exemple,
...
request = PutRequest().set_table_name('mycompartment:mytable')
...
create_statement = 'create table mycompartment:mytable(...)' 
...
request = GetRequest().set_table_name('compartmentA.compartmentB')
Vous pouvez spécifier un compartiment de plusieurs façons :
  • Vous pouvez définir le nom ou l'ID du compartiment souhaité.
  • Réglez à 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é, spécifiez compartmentID comme chemin d'accès complet au compartiment racine. Par exemple, si vous utilisez rootCompartment.compartmentA.compartmentB, compartmentID doit être réglé à compartmentA.compartmentB.
  • Vous pouvez également utiliser l'OCID du compartiment comme valeur de chaîne.
compartmentID:="<optional-compartment-name-or-ID>"
iam.NewRawSignatureProvider(tenancy, user, region, fingerprint, compartmentID,
        privateKey, &privateKeyPassphrase)
Vous pouvez spécifier 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 la chaîne peut être un ID compartiment ou un nom ou un chemin de compartiment. S'il s'agit d'un nom simple, il doit spécifier 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 déduit de la location. Un compartiment peut également être spécifié dans chaque demande de l'objet Options. Cette valeur remplace la valeur de configuration initiale.

Si vous ne spécifiez pas de compartiment, le compartiment racine de la location sera utilisé par défaut. Cela ne s'applique que 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 spécifier l'ID compartiment car il n'y a pas de valeur par défaut dans ces cas.

Si le compartiment n'est pas fourni, l'OCID de la location sera utilisé par défaut. Notez que cela ne s'applique que si vous autorisez avec l'identité de l'utilisateur. Lors de l'utilisation du principal d'instance ou de ressource, l'ID compartiment doit être spécifié.

Pour la procédure de configuration du principal d'instance, voir Appel de services à partir d'une instance. Pour la procédure de configuration du principal de ressource, voir Accès à d'autres ressources Oracle Cloud Infrastructure à partir des fonctions en cours d'exécution.

Le compartiment par défaut des tables est le compartiment racine de la location de l'utilisateur. Vous pouvez spécifier un compartiment par défaut pour toutes les opérations en définissant la propriété Compartiment de NoSQLConfig. Par exemple :
var client = new NoSQLClient(
    new NoSQLConfig
    {
        Region=Region.US_ASHBURN_1,
        Compartment="<compartment_ocid_or_name>"
    });
La valeur de la chaîne peut être un OCID de compartiment ou un nom ou chemin de compartiment. S'il s'agit d'un nom simple, il doit spécifier 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 déduit de la location.

En outre, toutes les classes d'options d'opération ont la propriété Compartment, par exemple TableDDLOptions.Compartment, GetOptions.Compartment, PutOptions.Compartment, etc. Ainsi, vous pouvez également spécifier une comparaison séparément pour toute opération. Cette valeur, si elle est définie, remplacera la valeur du compartiment dans NoSQLConfig, le cas échéant.

Si le compartiment n'est pas fourni, l'OCID de la location sera utilisé par défaut. Notez que cela ne s'applique que si vous autorisez avec l'identité de l'utilisateur. Lors de l'utilisation du principal d'instance ou de ressource, l'ID compartiment doit être spécifié.

Rubriques connexes