關於區間

瞭解如何使用 Oracle NoSQL Database 驅動程式建立及使用 Oracle NoSQL Database Cloud Service 表格時,如何指定區間。

Oracle NoSQL Database Cloud Service 表格是建立在區間中,且範圍涵蓋在該區間中。以特定使用者身分認證時,除非另有指定,否則系統會在您租用戶的根區間中管理您的表格。將表格組織成不同的區間將有助於組織和安全性。

如果您已使用執行處理主體認證 (從 OCI 運算執行處理存取服務),則必須使用區間的 ID (OCID) 指定區間,因為在此情況下沒有預設值。請參閱 Oracle Cloud Infrastructure 文件中的從執行處理呼叫服務

您可以透過多種方式,在應用程式程式碼中指定區間:

  1. 使用 NoSQLHandleConfig 中的預設區間,讓它適用於使用控點的所有作業。如需範例,請參閱取得 NoSQL 處理作業

  2. 除了表格名稱之外,請在每個要求中使用區間名稱或 ID (OCID)。這會覆寫所有預設區間。

    舉例而言:

    GetRequest getReq = new GetRequest().setTableName("mytable")
                                        .setCompartment("mycompartment");
  3. 使用區間名稱作為表格名稱的前置碼。這會覆寫所有預設區間以及使用 API 指定的區間。

    舉例而言:

    GetRequest getReq = new GetRequest().setTableName("mycompartment:mytable");

使用指定的區間時,該名稱可以是最上層區間的簡單名稱,也可以是巢狀區間的路徑。在後面的案例中,路徑是 "." (點) 分隔的路徑。

注意:指定巢狀區間的路徑時,請勿在從租用戶推斷的路徑中包含最上層區間的名稱。

您可以透過多種方式,在應用程式程式碼中指定區間:

  • borneo.NoSQLHandleConfig.set_compartment() 中有允許指定預設區間的方法。這會覆寫使用者的預設區間。

  • 此外,您還可以在每個 Request 執行處理中指定區間。

set_compartment 方法接受 ID (OCID)、區間名稱或路徑。如果使用區間名稱,則可能是最上層區間的名稱。

注意:如果使用區間路徑來參照巢狀區間,則該路徑為排除路徑最上層區間的點分隔路徑,例如 compartmentA.compartmentB

您可以在請求、查詢或 DDL 陳述式中使用區間名稱作為表格名稱前綴,而不是在請求中設定區間。此用量會覆寫區間的任何其他設定。範例:

...
request = PutRequest().set_table_name('mycompartment:mytable')
...
create_statement = 'create table mycompartment:mytable(...)'
...
request = GetRequest().set_table_name('compartmentA.compartmentB')

您可以透過多種方式,在應用程式程式碼中指定區間:

  • 您可以設定想要的區間名稱或 ID。

  • 若設為空白字串,即可使用預設區間 (租用戶的根區間)。

  • 如果使用巢狀區間,請以 compartmentID 指定根區間的相對完整區間路徑。例如,如果使用 rootCompartment.compartmentA.compartmentB,compartmentID 必須設為 compartmentA.compartmentB

  • 您也可以使用區間 OCID 作為字串值。

compartmentID:="<optional-compartment-name-or-ID>"
iam.NewRawSignatureProvider(tenancy, user, region, fingerprint, compartmentID,
        privateKey, &privateKeyPassphrase)

您可以設定傳送至 NoSQLClient 建構子之組態的區間特性,為 NoSQLClient 執行處理執行的所有作業指定預設區間:

import { NoSQLClient,Region } from 'oracle-nosqldb';
const client = new NoSQLClient({
    region: Region.US_ASHBURN_1,
    compartment: 'mycompartment'
});

字串值可以是區間 ID、區間名稱或路徑。如果是簡單名稱,就必須指定最上層區間。如果它是巢狀區間的路徑,則自租用戶推斷時,必須排除最上層區間。您也可以在選項物件的每個要求中指定區間。這個值會覆寫初始組態值。

如果您未指定區間,則會使用租用戶的根區間作為預設值。這只有在您授權特定使用者的身分時才適用。如果您使用執行處理委派人或資源委派人進行認證,則必須指定區間 ID,因為在這些情況下沒有預設值。

若未提供區間,將會使用租用戶 OCID 作為預設值。請注意,這只有在您授權使用者的身分時才適用。使用執行處理主體或資源主體時,必須指定區間 ID。

如需設定例項主體的程序,請參閱從例項呼叫服務。如需設定資源主要項目的程序,請參閱從執行函數存取其他 Oracle Cloud Infrastructure 資源

表格的預設區間是使用者租用戶的根區間。設定 NoSQLConfig 的「區間」特性,即可指定所有作業的預設區間。舉例而言:

var client = new NoSQLClient(
    new NoSQLConfig
    {
        Region=Region.US_ASHBURN_1,
        Compartment="<compartment_ocid_or_name>"
    });

字串值可以是區間 OCID、區間名稱或路徑。如果是簡單名稱,就必須指定最上層區間。如果它是巢狀區間的路徑,則自租用戶推斷時,必須排除最上層區間。

此外,所有作業選項類別都有 Compartment 特性,例如 TableDDLOptions.CompartmentGetOptions.CompartmentPutOptions.Compartment 等。因此,您也可以針對任何作業個別指定比較。如果設定此值,將會覆寫 NoSQLConfig 中的區間值 (如果有的話)。

若未提供區間,將會使用租用戶 OCID 作為預設值。請注意,這只有在您授權使用者的身分時才適用。使用執行處理主體或資源主體時,必須指定區間 ID。