Info zu Compartments

Erfahren Sie, wie Sie das Compartment beim Erstellen von und Arbeiten mit Oracle NoSQL Database Cloud Service-Tabellen mit Oracle NoSQL Database-Treibern angeben.

Oracle NoSQL Database Cloud Service-Tabellen werden in einem Compartment erstellt und gelten für dieses Compartment. Wenn Sie als bestimmter Benutzer authentifiziert sind, werden Ihre Tabellen im Root Compartment Ihres Mandanten verwaltet, sofern nichts anderes angegeben ist. Das Organisieren von Tabellen in verschiedenen Compartments hilft bei der Organisation und Sicherheit.

Wenn Sie mit einem Instance Principal (indem Sie über eine OCI Compute-Instanz auf den Service zugreifen) authentifiziert wurden, müssen Sie ein Compartment mit der zugehörigen ID (OCID) angeben, da in diesem Fall kein Standardwert vorhanden ist. Siehe Service von einer Instanz aufrufen in der Oracle Cloud Infrastructure-Dokumentation.

Sie können ein Compartment in Ihrem Anwendungscode auf mehrere Arten angeben:
  1. Verwenden Sie ein Standard Compartment in NoSQLHandleConfig, damit es für alle Vorgänge mit dem Handle angewendet wird. Ein Beispiel finden Sie unter NoSQL-Handle abrufen.
  2. Verwenden Sie in jeder Anforderung den Namen des Compartments oder der ID (OCID) zusätzlich zum Namen der Tabelle. Dadurch wird ein Standard Compartment außer Kraft gesetzt.
    Beispiel:
    GetRequest getReq = new GetRequest().setTableName("mytable")
                                        .setCompartment("mycompartment");
  3. Verwenden Sie den Compartment-Namen als Präfix für den Namen der Tabelle. Dies setzt alle Standard-Compartments sowie ein Compartment außer Kraft, das mit der API angegeben wurde.
    Beispiel:
    GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");
Wenn Sie ein benanntes Compartment verwenden, kann der Name der einfache Name ein oberstes Compartment oder ein Pfad zu einem Nested Compartment sein. Im letzteren Fall ist der Pfad ein durch einen Punkt (.) getrennter Pfad.

Hinweis:

Wenn Sie den Pfad zu einem Nested Compartment angeben, verwenden Sie nicht den Namen des Top-Level-Compartments im Pfad, da dieser aus dem Mandanten abgeleitet wird.
Sie können ein Compartment in Ihrem Anwendungscode auf mehrere Arten angeben:
  • Es ist eine Methode vorhanden, mit der ein Standard-Compartment für Anforderungen in borneo.NoSQLHandleConfig.set_compartment() angegeben werden kann. Dadurch wird das Standard-Compartment des Benutzers überschrieben.
  • Außerdem kann in jeder Request-Instanz ein Compartment angegeben werden.
Die set_compartment-Methoden nehmen entweder eine ID (OCID) oder einen Compartment-Namen oder einen Pfad an. Wenn ein Compartment-Name verwendet wird, kann dies der Name eines Compartments der obersten Ebene sein.

Hinweis:

Wenn ein Compartment-Pfad zur Referenzierung eines verschachtelten Compartments verwendet wird, ist der Pfad ein durch Punkte getrennter Pfad, der das Compartment der obersten Ebene des Pfads ausschließt. Beispiel: compartmentA.compartmentB.
Anstatt ein Compartment in der Anforderung festzulegen, können Sie einen Compartment-Namen verwenden, um einem Tabellennamen in einer Anforderung, Abfrage oder DDL-Anweisung ein Präfix hinzuzufügen. Diese Verwendung setzt jede andere Einstellung des Compartments außer Kraft. Beispiel:
...
request = PutRequest().set_table_name('mycompartment:mytable')
...
create_statement = 'create table mycompartment:mytable(...)' 
...
request = GetRequest().set_table_name('compartmentA.compartmentB')
Sie können ein Compartment in Ihrem Anwendungscode auf mehrere Arten angeben:
  • Sie können einen gewünschten Compartment-Namen oder eine gewünschte ID festlegen.
  • Legen Sie eine leere Zeichenfolge fest, um das Standard-Compartment, das Root Compartment des Mandanten, zu verwenden.
  • Wenn Sie ein verschachteltes Compartment verwenden, geben Sie den vollständigen Compartment-Pfad relativ zum Root Compartment als compartmentID an. Beispiel: Wenn Sie rootCompartment.compartmentA.compartmentB verwenden, muss compartmentID auf compartmentA.compartmentB gesetzt werden.
  • Sie können die Compartment-OCID auch als Zeichenfolgenwert verwenden.
compartmentID:="<optional-compartment-name-or-ID>"
iam.NewRawSignatureProvider(tenancy, user, region, fingerprint, compartmentID,
        privateKey, &privateKeyPassphrase)
Sie können ein Standard-Compartment für alle Vorgänge angeben, die von einer NoSQLClient-Instanz ausgeführt werden, indem Sie die Compartment-Eigenschaft der Konfiguration festlegen, die an den NoSQLClient-Konstruktor übergeben wird:
import { NoSQLClient,Region } from 'oracle-nosqldb';
const client = new NoSQLClient({
    region: Region.US_ASHBURN_1,
    compartment: 'mycompartment'
});

Der Zeichenfolgenwert kann entweder eine Compartment-ID oder ein Compartment-Name oder ein Pfad sein. Wenn es sich um einen einfachen Namen handelt, muss ein Compartment der obersten Ebene angegeben werden. Wenn es sich um einen Pfad zu einem verschachtelten Compartment handelt, muss das Compartment der obersten Ebene ausgeschlossen werden, da es aus dem Mandanten inferenziert wird. Außerdem kann in jeder Anforderung im Optionsobjekt ein Compartment angegeben werden. Durch diesen Wert wird der anfängliche Konfigurationswert überschrieben.

Wenn Sie kein Compartment angeben, wird das Root Compartment des Mandanten als Standard verwendet. Dies gilt nur, wenn Sie mit der Identität eines bestimmten Benutzers autorisieren. Wenn Sie den Instanz-Principal oder Resource Principal zur Authentifizierung verwenden, müssen Sie die Compartment-ID angeben, da in diesen Fällen kein Standardwert vorhanden ist.

Wenn kein Compartment angegeben ist, wird die Mandanten-OCID als Standard verwendet. Beachten Sie, dass dies nur gilt, wenn Sie mit der Identität des Benutzers autorisieren. Wenn Sie den Instanz-Principal oder Resource Principal verwenden, muss die Compartment-ID angegeben werden.

Informationen zum Einrichten des Instanz-Principals finden Sie unter Services von einer Instanz aufrufen. Informationen zum Einrichten des Resource Principals finden Sie unter Auf andere Oracle Cloud Infrastructure-Ressourcen aus aktiven Funktionen zugreifen.

Das Standard-Compartment für Tabellen ist das Root Compartment des Mandanten des Benutzers. Sie können ein Standard-Compartment für alle Vorgänge angeben, indem Sie die Compartment-Eigenschaft NoSQLConfig festlegen. Beispiel:
var client = new NoSQLClient(
    new NoSQLConfig
    {
        Region=Region.US_ASHBURN_1,
        Compartment="<compartment_ocid_or_name>"
    });
Der Zeichenfolgenwert kann entweder eine Compartment-OCID oder ein Compartment-Name oder ein Pfad sein. Wenn es sich um einen einfachen Namen handelt, muss ein Compartment der obersten Ebene angegeben werden. Wenn es sich um einen Pfad zu einem verschachtelten Compartment handelt, muss das Compartment der obersten Ebene ausgeschlossen werden, da es aus dem Mandanten inferenziert wird.

Darüber hinaus haben alle Operationsoptionsklassen die Eigenschaft Compartment, wie TableDDLOptions.Compartment, GetOptions.Compartment, PutOptions.Compartment usw. Somit können Sie auch für jede Operation den Vergleich separat angeben. Wenn dieser Wert festgelegt ist, wird der Compartment-Wert in NoSQLConfig außer Kraft gesetzt, sofern vorhanden.

Wenn kein Compartment angegeben ist, wird die Mandanten-OCID als Standard verwendet. Beachten Sie, dass dies nur gilt, wenn Sie mit der Identität des Benutzers autorisieren. Wenn Sie den Instanz-Principal oder Resource Principal verwenden, muss die Compartment-ID angegeben werden.

Verwandte Themen