A propos des compartiments
Découvrez comment spécifier le compartiment lors de l'utilisation de tables Oracle NoSQL Database Cloud Service à l'aide des pilotes Oracle NoSQL Database et de leur création.
Les tables Oracle NoSQL Database Cloud Service sont créées dans un compartiment et portent sur ce compartiment. Lorsque vous êtes authentifié en tant qu'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 facilite l'organisation et la sécurité.
Si vous avez été authentifié à l'aide d'un principal d'instance (en accédant 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 services à partir d'une instance dans la documentation Oracle Cloud Infrastructure.
Il existe plusieurs façons d'indiquer un compartiment dans le code d'application :
-
Utilisez un compartiment par défaut dans
NoSQLHandleConfigde sorte qu'il s'applique à toutes les opérations utilisant le descripteur. Pour obtenir un exemple, reportez-vous à l'Obtention d'un descripteur NoSQL. -
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"); -
Utilisez le nom de compartiment en tant que préfixe dans le nom de table. Cela remplace tout compartiment par défaut, ainsi que tout compartiment spécifié à l'aide de l'API.
Exemple :
GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");
Lorsque vous utilisez 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 ".".
Remarque : 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.
Il existe plusieurs façons d'indiquer un compartiment dans le code d'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 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.
Remarque : si un chemin de compartiment est utilisé pour référencer un compartiment imbriqué, le chemin est 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 requête ou une instruction LDD. 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')
Il existe plusieurs façons d'indiquer un compartiment dans le code d'application :
-
Vous pouvez définir un ID ou un nom de compartiment souhaité.
-
Définissez une chaîne vide pour utiliser le compartiment par défaut, à savoir le compartiment racine de la location.
-
Si vous utilisez un compartiment imbriqué, indiquez le chemin complet du compartiment par rapport au compartiment racine en tant qu'ID de compartiment. Par exemple, si vous utilisez rootCompartment.compartmentA.compartmentB, l'ID de compartiment 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 d'options. Cette valeur remplace la valeur de configuration initiale.
Si vous n'indiquez aucun 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 indiquer l'ID de compartiment car il n'existe aucune valeur par défaut dans ces cas.
Si le compartiment n'est pas fourni, l'OCID de location sera utilisé par défaut. Notez que cela s'applique uniquement 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 à Accès à d'autres ressources Oracle Cloud Infrastructure à partir de 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 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 ont la propriété Compartment, telle que TableDDLOptions.Compartment, GetOptions.Compartment, PutOptions.Compartment, etc. Ainsi, vous pouvez également spécifier un comparatif séparément pour toute opération. Cette valeur, si elle est définie, remplacera la valeur de compartiment dans NoSQLConfig, le cas échéant.
Si le compartiment n'est pas fourni, l'OCID de location sera utilisé par défaut. Notez que cela s'applique uniquement 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é.