À propos des compartiments
Voyez comment spécifier le compartiment lors de la création et de l'utilisation de 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 sont adaptées à 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, sauf indication contraire. L'organisation des tables dans différents compartiments facilitera l'organisation et la sécurité.
Si vous avez été authentifié à l'aide d'un principal d'instance (en ayant accédé au 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 sur Oracle Cloud Infrastructure.
Il existe plusieurs façons de spécifier un compartiment dans le code de votre application :
-
Utilisez un compartiment par défaut dans
NoSQLHandleConfigpour qu'il s'applique à toutes les opérations qui utilisent l'indicateur. Voir Obtention d'un descripteur NoSQL pour obtenir un exemple. -
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"); -
Utilisez le nom du compartiment comme préfixe pour le nom de la table. Cette opération remplace tout compartiment par défaut ainsi qu'un compartiment spécifié à l'aide de l'API.
Par exemple :
GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");
Lorsqu'un compartiment nommé est utilisé, 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 chemin est séparé par un 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.
Il existe plusieurs façons de spécifier un compartiment dans le code de votre application :
-
Une méthode existe pour autoriser la spécification d'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 de spécifier un compartiment dans chaque instance
Request.
Les méthodes set_compartment prennent soit un ID (OCID), soit 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')
Il existe plusieurs façons de spécifier un compartiment dans le code de votre application :
-
Vous pouvez définir un nom ou un ID de 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 le chemin complet du compartiment par rapport au compartiment racine en tant qu'ID compartiment. Par exemple, si vous utilisez rootCompartment.compartmentA.compartmentB, l'ID compartiment 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 d'accès à 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 d'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 le principal 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 du principal 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 de fonctions en cours d'exécution.
Le compartiment par défaut pour les tables est le compartiment racine de la location de l'utilisateur. Un compartiment par défaut pour toutes les opérations peut être spécifié 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 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 d'accès à 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 distincte 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 du principal de ressource, l'ID compartiment doit être spécifié.