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 Instanz-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.
Es gibt mehrere Möglichkeiten, ein Compartment in Ihrem Anwendungscode anzugeben:
-
Verwenden Sie ein Standard-Compartment in
NoSQLHandleConfig, damit es für alle Vorgänge mit dem Handle angewendet werden. Ein Beispiel finden Sie unter NoSQL-Handle erhalten. -
Verwenden Sie in jeder Anforderung den Compartment-Namen oder die ID (OCID) zusätzlich zum Tabellennamen. Dadurch wird ein Standard-Compartment außer Kraft gesetzt.
Beispiel:
GetRequest getReq = new GetRequest().setTableName("mytable") .setCompartment("mycompartment"); -
Verwenden Sie den Compartment-Namen als Präfix für den Tabellennamen. Dadurch werden alle Standard-Compartments sowie ein Compartment außer Kraft gesetzt, 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 eines übergeordneten Compartments oder ein Pfad zu einem verschachtelten Compartment sein. Im letzteren Fall ist der Pfad ein von einem Punkt (.) getrennter Pfad.
Hinweis: Wenn Sie den Pfad zu einem verschachtelten Compartment angeben, nehmen Sie nicht den Namen des übergeordneten Compartments im Pfad auf, da dieser aus dem Mandanten abgeleitet wird.
Es gibt mehrere Möglichkeiten, ein Compartment in Ihrem Anwendungscode anzugeben:
-
Es ist eine Methode vorhanden, mit der die Angabe eines Standard-Compartments für Anforderungen in
borneo.NoSQLHandleConfig.set_compartment()zulässig ist. Dadurch wird das Standard-Compartment des Benutzers außer Kraft gesetzt. -
Außerdem kann in jeder
Request-Instanz ein Compartment angegeben werden.
Die set_compartment-Methoden übernehmen entweder eine ID (OCID), einen Compartment-Namen oder einen Pfad. Wenn ein Compartment-Name verwendet wird, kann dies der Name eines Compartments der obersten Ebene sein.
Hinweis: Wenn ein Compartment-Pfad zum Referenzieren eines verschachtelten Compartments verwendet wird, ist der Pfad ein punktgetrennter Pfad, der das Compartment der obersten Ebene des Pfads ausschließt, z.B. compartmentA.compartmentB.
Anstatt ein Compartment in der Anforderung festzulegen, können Sie einen Compartment-Namen als Präfix für einen Tabellennamen in einer Anforderung, Abfrage oder DDL-Anweisung verwenden. Diese Verwendung überschreibt jede andere Einstellung des Compartments. Beispiel:
...
request = PutRequest().set_table_name('mycompartment:mytable')
...
create_statement = 'create table mycompartment:mytable(...)'
...
request = GetRequest().set_table_name('compartmentA.compartmentB')
Es gibt mehrere Möglichkeiten, ein Compartment in Ihrem Anwendungscode anzugeben:
-
Sie können einen gewünschten Compartment-Namen oder eine gewünschte Compartment-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 die compartmentID auf
compartmentA.compartmentBgesetzt 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 Konstruktor NoSQLClient ü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, 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. In jeder Anforderung im Optionsobjekt kann auch ein Compartment angegeben werden. Dieser Wert überschreibt den anfänglichen Konfigurationswert.
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 Instanz-Principal oder Resource Principal zur Authentifizierung verwenden, müssen Sie die Compartment-ID angeben, da in diesen Fällen kein Standard vorhanden ist.
Wenn kein Compartment angegeben wird, wird die Mandanten-OCID als Standard verwendet. Beachten Sie, dass dies nur gilt, wenn Sie mit der Identität des Benutzers autorisieren. Wenn Sie 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 über ausgeführte Funktionen zugreifen.
Das Standard-Compartment für Tabellen ist das Root Compartment des Mandanten des Benutzers. Ein Standard-Compartment für alle Vorgänge kann angegeben werden, indem die Compartment-Eigenschaft NoSQLConfig festgelegt wird. 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 -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 verfügen alle Vorgangsoptionsklassen über die Eigenschaft Compartment, wie TableDDLOptions.Compartment, GetOptions.Compartment, PutOptions.Compartment usw. So können Sie für jede Operation auch einen Vergleich separat angeben. Dieser Wert setzt den Compartment-Wert in NoSQLConfig außer Kraft (sofern vorhanden).
Wenn kein Compartment angegeben wird, wird die Mandanten-OCID als Standard verwendet. Beachten Sie, dass dies nur gilt, wenn Sie mit der Identität des Benutzers autorisieren. Wenn Sie Instanz-Principal oder Resource Principal verwenden, muss die Compartment-ID angegeben werden.