Oracle NoSQL Database Cloud Service 入门

Oracle NoSQL Database Cloud Service 是一项完全托管的数据库云技术服务,专为需要对简单查询进行可预测的单个数毫秒延迟响应的数据库操作而设计。

NoSQL Database Cloud Service 支持开发人员专注于应用开发,而不是设置集群服务器,或者执行系统监视、优化、诊断和扩展。NoSQL Database Cloud Service 适用于 Internet of Things、用户体验个性化、即时欺诈检测和在线显示广告等应用。

在针对 Oracle Cloud 账户进行验证后,您可以创建 NoSQL 表,并为表指定吞吐量和存储要求。Oracle 会预留和管理资源以满足您的需求,并为您预配容量。使用读取和写入单位来指定容量,使用 GB 来指定存储单位。

本文包含以下主题:

快速连接

您可以通过下面的快速链接之一开始使用 Oracle NoSQL Database Service:

表 - 快速链接

     
入门

- 快速入门:入门
- 主要功能
- 云概念
- 定价
连接

- 获取您的身份证明
- 连接到 NDCS 的验证
- 将您的应用连接到 NDCS
- 数据区域和关联服务端点
IDE and SDKs

- Using IntelliJ Plugin for Development
- Using Visual Studio Code Extension for Development
- Oracle NoSQL Java SDK
- Oracle NoSQL Python SDK
- Oracle NoSQL GO SDK
- Oracle NoSQL Node.js SDK
- Oracle NoSQL Dotnet SDK
- Oracle NoSQL Rust SDK
创建表

- 设计表
- 使用控制台创建单例表
- 使用 API 创建单例表
- 全局活动表
- 使用控制台创建全局活动表
- 使用 API 创建全局活动表
- 使用 OCI cli 创建表
放置和浏览数据

- 使用控制台添加数据
- 使用 API 添加数据
- 使用控制台提取数据
- 使用获取 API 提取数据
- 使用查询 API 提取数据
- 查询父子表
管理表

- 使用 API 修改单例表
- 使用 API 修改全局活动表
- 删除表和索引
- 使用控制台管理表和索引
管理安全性

- 设置用户组和策略
- 授予其他用户管理 NoSQL 表的权限
- 策略参考
监视服务

- 服务事件
- 服务配额
- 度量
- 创建和管理预警
实用程序

- 下载 Oracle NoSQL Database Cloud Simulator
- 在 Oracle NoSQL Database Cloud Simulator 中开发
- 使用 Oracle NoSQL Database Migrator
- 使用 Oracle NoSQL Database Analytics Integrator
SQL 引用

- 在 SQL 中使用运算符
- 对数据分组和限制进行排序
- 在 SQL 中使用主表达式
- 在查询中使用时间戳函数
- 在查询中使用字符串函数
参考指南

- Analytics Integrator Reference
- NDCS 的示例用例
- 排除 GAT 问题
 

设置服务

如果您是第一次设置 Oracle NoSQL Database Cloud Service,请按照以下任务作为指南进行操作。

任务 引用 相关信息
提交 Oracle NoSQL Database Cloud Service 订单或注册 Oracle 免费试用 Oracle Cloud Infrastructure 文档中的注册 Oracle Cloud Infrastructure 要了解如何估计 Oracle NoSQL Database Cloud Service 订阅的每月成本,请参阅估计每月成本

要升级免费账户或更改付款方式,请参阅 Oracle Cloud Infrastructure 文档中的更改付款方式
激活您的 Oracle Cloud 账户并首次登录。 Oracle Cloud Infrastructure 文档中的登录控制台 要熟悉 Oracle Cloud Infrastructure 控制台,请参阅 Oracle Cloud Infrastructure 文档中的使用控制台
(建议)为您的服务创建区间。 创建区间的 如果您不熟悉区间,请参阅 Oracle Cloud Infrastructure 文档中的了解区间
管理服务的安全性。 关于 Oracle NoSQL Database Cloud Service 安全模型 要熟悉 NoSQL Database Cloud Service 安全模型,请参阅关于 Oracle NoSQL Database Cloud Service 安全模型

从基础结构控制台访问服务

了解如何从基础结构控制台访问 Oracle NoSQL Database Cloud Service 服务。

  1. 从欢迎电子邮件中找到服务 URL,然后登录到 Oracle NoSQL Database Cloud Service。

  2. 打开导航菜单,依次单击数据库NoSQL 数据库

  3. 选择服务管理员为您的表创建的区间。

要查看当前页面的帮助,请单击页面顶部的帮助图标 “帮助抽屉”图标

创建区间的

当您注册 Oracle Cloud Infrastructure 时,Oracle 会使用根区间创建您的租户,该区间包含您的所有云资源。然后,您可以在租户(根区间)中创建其他区间以及相应的策略来控制对每个区间中资源的访问。在创建 Oracle NoSQL Database Cloud Service 表之前,Oracle 建议您设置您希望表所属的区间。

可以在 Oracle Cloud Infrastructure Identity and Access Management (IAM) 中创建区间。请参阅 Oracle Cloud Infrastructure 文档中的 Setting Up Your TenancyManaging Compartments

用于连接到 Oracle NoSQL Database 的验证

您需要 Oracle Cloud 账户才能将应用连接到 Oracle NoSQL Database Cloud Service。

如果您尚未拥有 Oracle Cloud 账户,可以从 Oracle Cloud 开始。连接到 Oracle NoSQL Database 时,您需要验证自己的身份。您可以通过以下方式之一进行验证:

验证方法 #1:用户主用户

在此处,您可以使用 OCI 用户和 API 密钥进行身份验证。用于连接应用程序的身份证明与特定用户关联。如果要为应用程序创建用户,请参阅使用身份和访问管理设置用户、组和策略

您可以通过以下方式之一提供此验证方法的身份证明:

由证书组成的信息:

表 - 身份证明

是什么? 在何处查找?
租户 ID 和用户 ID(两者都是 OCID) 请参阅 Oracle Cloud Infrastructure 文档中的获取租户的 OCID 和用户的 OCID 的位置
API 签名键

对于应用程序用户,必须生成并上载 API 签名密钥。如果已执行此操作,则可以跳过此步骤。

要了解详细信息,请参阅 Oracle Cloud Infrastructure 文档中的以下资源:

签名密钥的指纹和签名密钥的(可选)密码短语 签名密钥的指纹和密码短语是在生成和上载 API 签名密钥时创建的。请参阅 Oracle Cloud Infrastructure 文档中的如何获取密钥的指纹

注:在生成和上载 API 签名密钥时记下私钥的位置、公共密钥的可选密码短语和指纹。

执行上述任务后,收集身份证明信息并将其提供给您的应用程序。

为应用程序提供身份证明:

使用 Oracle NoSQL Database SDK,您可以通过多种方式向应用提供身份证明。SDK 支持配置文件以及允许直接指定信息的一个或多个接口。请参阅用于了解特定凭证接口的编程语言驱动程序的文档。

如果要使用配置文件,则缺省位置为 ~/.oci/config。SDK 允许文件驻留在其他位置。内容类似于以下内容:

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaas...7ap
fingerprint=d1:b2:32:53:d3:5f:cf:68:2d:6f:8b:5f:77:8f:07:13
key_file=~/.oci/oci_api_key_private.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaap...keq
pass_phrase=mysecretphrase

[DEFAULT] 行指示后面的行指定 DEFAULT 配置文件。一个配置文件可以包括多个配置文件,前缀为 [PROFILE_NAME]。例如:

[DEFAULT]
user=ocid1.user.oc1..aaaaaaaas...7us
fingerprint=d1:b2:32:53:d3:5f:cf:68:2d:6f:8b:5f:77:8f:07:15
key_file=~/.oci/oci_api_key_private.pem
tenancy=ocid1.tenancy.oc1..aaaaabbap...keq
pass_phrase=mysecretphrase

[MYPROFILE]
user=ocid1.user.oc1..aaaaaaaas...7ap
fingerprint=d1:b2:32:53:d3:5f:cf:68:2d:6f:8b:5f:77:8f:07:13
key_file=~/.oci/oci_api_key_private.pem
tenancy=ocid1.tenancy.oc1..aaaaaaaap...keq
pass_phrase=mysecretphrase

验证方法 #2:实例主用户

实例主用户是 Oracle Cloud Infrastructure Identity and Access Management (IAM) 中的一项功能,允许您从实例进行服务调用。对于实例主体,您无需为在计算实例上运行的服务配置用户凭证,也无需轮换凭证。实例本身现在是 IAM 中的主体类型。每个计算实例都有自己的身份,并且使用添加到实例的证书进行验证。这些证书将自动创建、分配给实例并轮换。

使用实例主用户验证,您可以授权实例对 Oracle Cloud Infrastructure 服务进行 API 调用。设置所需的资源和策略后,在实例上运行的应用程序可以调用 Oracle Cloud Infrastructure 公共服务,从而无需配置用户身份证明或配置文件。可以从不想存储配置文件的实例使用实例主用户验证。

验证方法 #3:资源主用户

您可以使用资源主体来验证和访问 Oracle Cloud Infrastructure 资源。资源主体由临时会话令牌和安全凭证组成,使其他 Oracle Cloud 服务能够向 Oracle NoSQL Database 进行自我验证。资源主用户验证与实例主用户验证非常相似,但用于不是实例的资源,例如无服务器函数。

使用资源主用户,可以授权资源对 Oracle Cloud Infrastructure 服务执行操作。每个资源都有自己的身份,并且资源使用添加到它的证书进行验证。这些证书会自动创建、分配给资源并轮换,从而避免您创建和管理自己的凭证来访问资源。使用资源主体进行验证时,无需创建和管理身份证明即可访问 Oracle Cloud Infrastructure 资源。

验证后,您需要获得访问 Oracle Cloud Infrastructure 资源的授权。有关更多详细信息,请参阅使用身份和访问管理设置用户、组和策略

验证方法 #4:基于令牌的验证

通过基于令牌的身份验证,您可以创建和使用临时会话令牌来验证和访问 Oracle Cloud Infrastructure 资源。使用基于令牌的验证,可以创建包含信息(包括用户 OCID、租户 OCID、区域、私钥路径和临时会话令牌文件路径)的本地配置文件。此方法使用此信息以及临时会话令牌,该令牌将在一小时后(默认情况下)到期。需要快速临时验证时,可以使用基于会话令牌的验证。

创建会话标记:您可以使用 Web 浏览器或不使用 Web 浏览器生成会话标记。

使用浏览器:

要在具有 Web 浏览器的计算机上对 CLI 使用基于令牌的验证,请执行以下操作:

  1. 在终端中,运行以下命令:

    oci session authenticate
  2. 选择区域。

  3. 在浏览器中,输入您的用户凭据。

  4. 验证成功后,关闭浏览器并按照终端上的交互式提示操作。您需要提供要在配置文件中创建的配置文件的名称。新配置文件配置将写入 ~/.oci/config 文件。下面显示了更新新配置文件(例如 TEST)的配置文件示例。

    [TEST]
    user=<ocid1.user.oc1.........>
    fingerprint=<XX:XX:...........>
    key_file=<C:\Users\XXXXXX\.oci\oci_api_key_private.pem>
    tenancy=<ocid1.tenancy.oc1.....>
    region=us-ashburn-1
    security_token_file=<C:\Users\XXXXXX\.oci\sessions\TEST\token>

没有浏览器:

要在不使用 Web 浏览器的情况下对 CLI 使用基于令牌的验证,必须首先使用基于 API 密钥的验证进行验证。

oci setup config

此命令会提示您提供创建配置文件以及 API 公共密钥和私钥所需的信息。设置对话框使用此信息生成 API 密钥对并创建配置文件。要在没有 Web 浏览器的情况下对 CLI 使用基于令牌的验证,请运行以下命令:

oci session authenticate --no-browser

您需要提供要在配置文件中创建的配置文件的名称。新配置文件配置将写入 ~/.oci/config 文件。下面显示了更新新配置文件(例如 TEST)的配置文件示例。

[TEST]
user=<ocid1.user.oc1.........>
fingerprint=<XX:XX:...........>
key_file=<full_directory_path_oci_api_key_private.pem>
tenancy=<ocid1.tenancy.oc1.....>
region=us-ashburn-1
security_token_file=<full_directory_path_token>

验证方法 #5:OKE Workload 基于身份的验证

Oracle Container Engine for Kubernetes (OKE) Workload Identity 提供精细的身份和访问管理控制。工作负载是在 Kubernetes 上运行的应用程序。它可以由单个组件或多个组件组成,这些组件可以在一组 pod 中一起运行。工作量资源由群集、名称空间和服务帐户的唯一组合标识。此唯一组合称为工作量身份。OKE Workload Identity 允许您使用 OCI Identity and Access Management (IAM) 授予 K8 云池策略驱动的 Oracle Cloud Infrastructure (OCI) 资源访问权限。

使用 Workload Identity,您不再需要在 Kubernetes 集群中将身份证明存储为密钥,也无需依赖 OCI 动态组来对 OCI 资源进行 Worker 节点策略驱动的访问,更具体地说,就是对 NoSQL 表的访问。当应用需要访问 OCI 资源时,Workload Identity 支持您将限定为与应用云池关联的 Kubernetes 服务账户的 OCI IAM 策略写入。通过此功能,在这些云池中运行的应用可以根据策略提供的权限直接访问 OCI API。

要向工作负载中的所有云池授予对任何 OCI 资源的访问权限,请执行以下操作:

允许工作负载访问必要的 OCI 资源的授权:

单击创建可创建新策略。

将应用连接到 NDCS

了解如何将应用连接到 Oracle NoSQL Database Cloud Service。

在使用多种可用方法之一进行验证后,您的应用将连接到 Oracle NoSQL Database Cloud Service。

您可以使用以下方法之一对自己进行验证:

有关验证选项的更多详细信息,请参阅用于连接到 Oracle NoSQL Database 的验证

您可以使用以下方法之一连接到 NDCS:

  • 直接在代码中提供身份证明:

    /* Use the SignatureProvider to supply your credentials to NoSQL Database.
     * By default, the SignatureProvider will read your OCI configuration file
     * from the default location, ~/.oci/config. See SignatureProvider for
     * additional options for reading configurations in other ways.
     */
    
    SignatureProvider sp = new SignatureProvider(
     tenantId,     // a string, OCID
     userId,       // a string, OCID
     fingerprint , // a string
     privateKey,   // a string, content of private key
     passPhrase    // optional, char[]
    );
    //Create an handle to access the cloud service in your service region.
    NoSQLHandleConfig config = new NoSQLHandleConfig(Region.<your-service-region>);
    config.setAuthorizationProvider(sp);
    NoSQLHandle handle = NoSQLHandleFactory.createNoSQLHandle(config);
    
    //At this point, your handle is set up to perform data operations.
  • 使用默认配置文件与默认配置文件进行连接:

    /* Use the SignatureProvider to supply your credentials to NoSQL Database.
     * By default, the SignatureProvider will read your OCI configuration file
     * from the default location, ~/.oci/config. See SignatureProvider for
     * additional options for reading configurations in other ways.
     */
    
    SignatureProvider sp = new SignatureProvider();
  • 使用具有非默认配置文件的默认配置文件进行连接:

    /* Use the SignatureProvider to supply your credentials to NoSQL Database.
     * Specify the name of the non-default profile in the constructor for SignatureProvider. */
    
     final String profile_name = "<name_of_the_profile>";
     SignatureProvider sp = new  SignatureProvider(profile_name);
  • 使用指定的配置文件和配置文件进行连接:

    /* Use the SignatureProvider to supply your credentials to NoSQL Database.
     * You specify the full path of the non-default config file and also the name
     * of the profile
     */
    
    final String config_filepath = "<full_path_of_config_file>";
    final String profile_name = "<name_of_the_profile>";
    SignatureProvider sp = new SignatureProvider(config_filepath, profile_name);
  • 使用实例主用户连接:

    实例主用户是 IAM 服务功能,它允许实例成为授权操作者(或主用户)来对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到其中的证书进行验证。

    SignatureProvider authProvider = SignatureProvider.createWithInstancePrincipal();
  • 使用资源主体连接:

    资源主用户是 IAM 服务功能,它使资源成为授权操作者(或主用户)来对服务资源执行操作。

    SignatureProvider authProvider = SignatureProvider.createWithResourcePrincipal();
  • 使用会话令牌进行连接:

    可以使用从令牌文件读取的临时会话令牌来使用 createWithSessionToken() 方法创建 SignatureProvider。令牌文件的路径从缺省位置的配置文件中的缺省配置文件读取。使用的配置文件是 ~/.oci/config

    SignatureProvider authProvider =
    SignatureProvider.createWithSessionToken();

    您还可以在配置文件中的非默认配置文件中提供标记文件的路径,如下所示。在缺省位置从配置文件中的指定配置文件读取令牌文件的路径。

    SignatureProvider authProvider =
    SignatureProvider.createWithSessionToken(<profile_name>);
  • 使用 OKE 工作负载标识进行连接:

    您可以使用默认路径 /var/run/secrets/kubernetes.io/serviceaccount/token 中的 Kubernetes 服务账户令牌创建具有 Container Engine for Kubernetes (OKE) 工作负载身份的 SignatureProvider。此提供程序只能在 Kubernetes 云池内使用。

    SignatureProvider authProvider =
    SignatureProvider.createWithOkeWorkloadIdentity();

    您还可以指定要使用的特定 Kubernetes 服务帐户令牌,如下所示。

    SignatureProvider authProvider =
    SignatureProvider.createWithOkeWorkloadIdentity(<serviceAccountToken>);

    或者,您也可以指定要使用的特定 Kubernetes 服务帐户令牌的位置,如下所示。

    SignatureProvider authProvider =
    SignatureProvider.createWithOkeWorkloadIdentity(<serviceAccountToken_location>);

有关所用 Java 类的更多详细信息,请参见 SignatureProvider

您可以使用以下方法之一连接到 NDCS:

  • 直接在代码中提供身份证明:

    from borneo.iam import SignatureProvider
    #
    # Use SignatureProvider directly via API. Note that the
    # private_key argument can either point to a key file or be the
    # string content of the private key itself.
    #
    at_provider = SignatureProvider(tenant_id='ocid1.tenancy.oc1..tenancy',
                                    user_id='ocid1.user.oc1..user',
                                    private_key=key_file_or_key,
                                    fingerprint='fingerprint',
                                    pass_phrase='mypassphrase')
  • 使用默认配置文件与默认配置文件进行连接:

    from borneo.iam import SignatureProvider
    #
    # Use SignatureProvider with a default credentials file and
    # profile in $HOME/.oci/config
    #
    at_provider = SignatureProvider()
  • 使用指定的配置文件与非默认配置文件进行连接:

    from borneo.iam import SignatureProvider
    #
    # Use SignatureProvider with a non-default credentials file and profile
    #
    at_provider = SignatureProvider(config_file='myconfigfile',
                                    profile_name='myprofile')
  • 使用实例主用户进行连接:

    实例主用户是 IAM 服务功能,它允许实例成为授权操作者(或主用户)来对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到其中的证书进行验证。

    at_provider =
    SignatureProvider.create_with_instance_principal(region=my_region)
  • 使用资源主体连接:

    资源主用户是 IAM 服务功能,它使资源成为授权操作者(或主用户)来对服务资源执行操作。

    at_provider = SignatureProvider.create_with_resource_principal()
  • 使用会话令牌进行连接:

    Borneo 使用 OCI SDK 进行会话令牌验证。OCI 签名者将作为参数传递到 SignatureProvider 构造器,如下所示。

    from borneo.iam import SignatureProvider
    # Use SignatureProvider with a provider argument which is an instance of
    # oci.auth.signers.SecurityTokenSigner
    at_provider = SignatureProvider(<instance of oci.auth.signers.SecurityTokenSigner>)
  • 使用 OKE 工作负载标识进行连接:

    OKE 工作负载授权签署者是使用 OKE 工作负载标识向 NoSQL 表授予整个工作负载(在 Kubernetes 集群上运行的应用程序)访问权限的签署者。它可以由 oci.auth.signers.get_oke_workload_identity_resource_principal_signer 检索。然后,可以在初始化客户机时使用检索到的签名者。

    from borneo.iam import SignatureProvider
    oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer()

    如果您具有不同于默认路径的 Kubernetes 服务帐户令牌路径,则可以指定路径,如下所示:

    token_path = "path_to_your_token_file"
    oke_workload_signer  = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token_path=token_path)
    at_provider = SignatureProvider(oke_workload_signer)

    您还可以直接传递 Kubernetes 服务帐户令牌,如下所示:

    #token_string = "your_token_string"
    #oke_workload_signer = oci.auth.signers.get_oke_workload_identity_resource_principal_signer(service_account_token=token_string)
    at_provider = SignatureProvider(oke_workload_signer)

您可以使用以下任一方法将应用连接到 NDCS:

  • 直接在代码中提供身份证明:

    privateKeyFile := "/path/to/privateKeyFile"
    passphrase := "examplepassphrase"
    sp, err := iam.NewRawSignatureProvider("ocid1.tenancy.oc1..tenancy",
                                           "ocid1.user.oc1..user",
                                           "<your-service-region>",
                                           "fingerprint",
                                           "compartmentID",
                                           privateKeyFile ,
                                           &passphrase )
    if err != nil {
        return
    }
    cfg := nosqldb.Config{
        AuthorizationProvider: sp,
        // This is only required if the "region" property is not
        //specified in the config file.
        Region: "<your-service-region>",
    }
  • 使用默认配置文件与默认配置文件进行连接:

    cfg := nosqldb.Config{
    // This is only required if the "region" property is not
    //specified in ~/.oci/config.
    // This takes precedence over the "region" property when both are specified.
        Region: "<your-service-region>",
    }
    client, err := nosqldb.NewClient(cfg)
  • 使用指定的配置文件与非默认配置文件进行连接:

    sp, err := iam.NewSignatureProviderFromFile("your_config_file_path",
               "your_profile_name", "", "compartment_id")
    if err != nil {
        return
    }
    cfg := nosqldb.Config{
        AuthorizationProvider: sp,
        // This is only required if the "region" property is not specified in the config file.
        Region: "us-ashburn-1",
    }
    client, err := nosqldb.NewClient(cfg)
  • 使用实例主用户进行连接:

    实例主用户是 IAM 服务功能,它允许实例成为授权操作者(或主用户)来对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到其中的证书进行验证。

    sp, err := iam.NewSignatureProviderWithInstancePrincipal("compartment_id")
    if err != nil {
        return
    }
    cfg := nosqldb.Config{
        AuthorizationProvider: sp,
        Region: "<your-service-region>",
    }
    client, err := nosqldb.NewClient(cfg)
  • 使用资源主体连接:

    资源主用户是 IAM 服务功能,它使资源成为授权操作者(或主用户)来对服务资源执行操作。

    sp, err := iam.NewSignatureProviderWithResourcePrincipal("compartment_id")
    if err != nil {
        return
    }
    cfg := nosqldb.Config{
        AuthorizationProvider: sp,
        Region: "<your-service-region>",
    }
    client, err := nosqldb.NewClient(cfg)
  • 使用会话令牌进行连接:

    NewSessionTokenSignatureProvider 函数使用从令牌文件读取的临时会话令牌创建 SignatureProvider

    func NewSessionTokenSignatureProvider() (*SignatureProvider, error)

    使用的配置文件是 ~/.oci/config。使用 DEFAULT 配置文件。使用 security_token_file 字段的值从配置中读取令牌文件的路径。使用此构造器时,用户对所有表都有一个默认区间。它是用户租户的根区间。

    要使用非缺省配置文件(~/.oci/config 除外),可以使用函数 NewSessionTokenSignatureProviderFromFile

    func NewSessionTokenSignatureProviderFromFile(configFilePath,
    ociProfile, privateKeyPassphrase string) (*SignatureProvider, error)

    此函数使用从令牌文件读取的临时会话令牌(使用在 OCI 配置文件 configFilePath 中指定的 ociProfile)创建 SignatureProvider。使用 security_token_file 字段的值从配置中读取令牌文件的路径。仅当私钥使用密码短语且未在 OCI 配置文件的 pass_phrase 字段中指定该密码短语时,才需要字段 privateKeyPassphrase。使用此构造器时,用户对所有表都有一个默认区间。它是用户租户的根区间。

  • 使用 OKE 工作负载标识进行连接:

    Oracle NoSQL go SDK 支持在 OCI 中的 OKE Workload 容器内运行程序。在创建要与 NoSQL 一起使用的 SignatureProvider 的代码中,添加以下代码以使用 OKE 工作负载标识:

    conf, err := ociauth.OkeWorkloadIdentityConfigurationProvider()
    if err != nil {
       return nil, fmt.Errorf("cannot create an Oke Provider: %v", err)
    }
    myconf := &myConfigProvider{conf}
    sp, err := iam.NewSignatureProviderWithConfiguration(myconf, compartmentID)
    if err != nil {
      return nil, fmt.Errorf("cannot create a Signature Provider: %v", err)
    }

您可以使用以下方法之一连接到 NDCS:

  • 直接在代码中提供身份证明:

    可以在初始配置中直接将凭证指定为 auth.iam 属性的一部分。按如下方式创建 NoSQLClient 实例:

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    let client = new NoSQLClient({
        region: <your-service-region>
        auth: {
            iam: {
                tenantId: myTenancyOCID,
                userId: myUserOCID,
                fingerprint: myPublicKeyFingerprint,
                privateKeyFile: myPrivateKeyFile,
                passphrase: myPrivateKeyPassphrase
            }
        }
    });
  • 使用默认配置文件与默认配置文件进行连接:

    您可以将身份证明存储在 Oracle Cloud Infrastructure 配置文件中。配置文件的缺省路径为 ~/.oci/config,其中 ~ 代表用户的起始目录。在 Windows 上,~USERPROFILE 环境变量的值。该文件可能包含多个配置文件。默认情况下,SDK 使用名为 DEFAULT 的配置文件来存储身份证明。

    要使用这些默认值,请在 ~/.oci 目录中创建名为 config 的文件,其中包含以下内容:

    [DEFAULT]
    tenancy=<your-tenancy-ocid>
    user=<your-user-ocid>
    fingerprint=<fingerprint-of-your-public-key>
    key_file=<path-to-your-private-key-file>
    pass_phrase=<your-private-key-passphrase>
    region=<your-region-identifier>

    请注意,您还可以在 OCI 配置文件中同时指定区域标识符和身份证明。默认情况下,驱动程序将查看上述位置,如果将区域与凭证一起提供,则无需提供初始配置,并且可以使用无参数构造器:

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    let client = new NoSQLClient();

    或者,您可以选择在配置中指定区域:

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    let client = new NoSQLClient({ region: Region.<your-service-region> });
  • 使用指定的配置文件与非默认配置文件进行连接:

    您可以选择对 OCI 配置文件使用不同的路径以及配置文件中的不同配置文件。在这种情况下,请在初始配置的 auth.iam 属性中指定这些属性。例如,如果您的 OCI 配置文件路径为 ~/myapp/.oci/config,并且您将身份证明存储在配置文件 Jane 下:

    然后按如下方式创建 NoSQLClient 实例:

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    let client = new NoSQLClient({
        region: Region.<your-service-region>,
        auth: {
            iam: {
                configFile: '<your_config_file>',
                profileName: '<name_of_your_profile>'
            }
        }
    });
  • 使用实例主用户进行连接:

    实例主用户是 IAM 服务功能,它允许实例成为授权操作者(或主用户)来对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到其中的证书进行验证。

    设置后,按如下方式创建 NoSQLClient 实例:

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    const client = new NoSQLClient({
        region: Region.<your-service-region>,
        compartment: 'ocid1.compartment.oc1..............'
        auth: {
            iam: {
                useInstancePrincipal: true
            }
        }
    });

    您也可以使用与上述配置相同的 JSON 配置文件。请注意,使用实例主用户时,必须将区间 ID (OCID) 指定为区间属性。这是必需的,即使您希望使用默认区间也是如此。请注意,您必须使用区间 ID,而不是区间名称或路径。此外,在使用实例主用户时,在调用 NoSQLClient API 时,不能为表名加上区间名称或路径作为前缀。

  • 使用资源主体连接:

    资源主用户是 IAM 服务功能,它使资源成为授权操作者(或主用户)来对服务资源执行操作。

    设置后,按如下方式创建 NoSQLClient 实例:

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    const client = new NoSQLClient({
        region: Region.<your-service-region>,
        compartment: 'ocid1.compartment.oc1...........................'
        auth: {
            iam: {
                useResourcePrincipal: true
            }
        }
    });

    您也可以使用与上述配置相同的 JSON 配置文件。请注意,使用资源主用户时,必须将区间 ID (OCID) 指定为区间属性。这是必需的,即使您希望使用默认区间也是如此。请注意,您必须使用区间 ID,而不是区间名称或路径。此外,在使用资源主用户时,在调用 NoSQLClient API 时,您可能无法为表名添加区间名称或路径作为前缀。

  • 使用会话令牌进行连接:

    使用基于会话令牌的验证,可以创建包含信息(包括用户 OCID、租户 OCID、区域、私钥路径和临时会话令牌文件路径)的本地配置文件。

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    const client = new NoSQLClient({
        region: Region.<your-service-region>,
        compartment: 'ocid1.compartment.oc1..............
       ' auth: {
           iam: { useSessionToken: true }
      }
    });

    此方法使用从令牌文件读取的临时会话令牌。令牌文件的路径将从 OCI 配置文件中的默认配置文件读取为 security_token_file 字段的值。

    要使用非默认配置文件(~/.oci/config 除外),可以指定配置文件的路径和配置文件的名称,如下所示。

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    const client = new NoSQLClient({
      region: Region.<your-service-region>,
      compartment: 'ocid1.compartment.oc1..............
      ' auth: {
        iam: {  useSessionToken: true,
          "configFile": "<path_to_config_file>",
          "profileName": "<profile_name>"
        }
      }
    });
  • 使用 OKE 工作负载标识进行连接:

    Oracle NoSQL Node.js SDK 支持在 OCI 中的 OKE Workload 容器内运行程序。

    import { NoSQLClient, Region } from 'oracle-nosqldb';
    const client = new NoSQLClient({
        region: Region.<your-service-region>,
        compartment: 'ocid1.compartment.oc1...........................'
        ' auth: {
            iam: { useOKEWorkloadIdentity: true }
        }'
      }
    );

    此授权方案只能在 Kubernetes 云池内使用。使用 OKE 工作负载身份需要服务账户标记。默认情况下,提供者将从缺省文件路径 /var/run/secrets/kubernetes.io/serviceaccount/token 加载服务帐户标记。您可以通过指定以下 3 个属性之一来覆盖此标记并提供服务帐户标记:

    • serviceAccountToken,用于提供服务帐户令牌字符串。

    • serviceAccountTokenFile,用于提供服务帐户令牌文件的路径。

    • serviceAccountTokenProvider 提供用于加载服务帐户令牌的自定义提供程序。

有关文件内容和格式的详细信息,请参见 SDK Configuration File

您可以使用以下方法之一连接到 NDCS:

  • 直接在代码中提供身份证明:

    创建 IAMAuthorizationProvider 时,可以直接将身份证明指定为 IAMCredentials。按如下方式创建 NoSQLClient:

    var client = new NoSQLClient(
        new NoSQLConfig
        {
            Region=<your-service-region>,
            AuthorizationProvider = new IAMAuthorizationProvider(
                new IAMCredentials
                {
                    TenantId=myTenancyOCID,
                    UserId=myUserOCID,
                    Fingerprint=myPublicKeyFingerprint,
                    PrivateKeyFile=myPrivateKeyFile
                })
        });
  • 使用默认配置文件与默认配置文件进行连接:

    您可以将身份证明存储在 Oracle Cloud Infrastructure 配置文件中。配置文件的缺省路径为 ~/.oci/config,其中 ~ 代表用户的起始目录。在 Windows 上,~USERPROFILE 环境变量的值。该文件可能包含多个配置文件。默认情况下,SDK 使用名为 DEFAULT 的配置文件来存储身份证明

    要使用这些默认值,请在 ~/.oci directory 中使用以下内容创建名为 config 的文件:

    [DEFAULT]
    tenancy=<your-tenancy-ocid>
    user=<your-user-ocid>
    fingerprint=<fingerprint-of-your-public-key>
    key_file=<path-to-your-private-key-file>
    pass_phrase=<your-private-key-passphrase>
    region=<your-region-identifier>

    请注意,您还可以在 OCI 配置文件中同时指定区域标识符和身份证明。默认情况下,驱动程序将在 OCI 配置文件中的默认路径和默认配置文件中查找身份证明和区域。因此,如果同时提供区域以及如上所示的身份证明,则可以创建 NoSQLClient 实例,而无需传递任何配置:

    var client = new NoSQLClient();

    或者,您可以在 NoSQLConfig 中指定区域(以及其他属性):

    var client = new NoSQLClient(
        new NoSQLConfig(
        {
            Region = Region.<your-service-region>,
            Timeout = TimeSpan.FromSeconds(10),
        }));
  • 使用指定的配置文件与非默认配置文件进行连接:

    您可以选择对 OCI 配置文件使用不同的路径以及配置文件中的不同配置文件。在这种情况下,请在初始配置的 auth.iam 属性中指定这些属性。例如,如果您的 OCI 配置文件路径为 ~/myapp/.oci/config,并且您将身份证明存储在配置文件 Jane 下:

    然后按如下方式创建 NoSQLClient 实例:

    var client = new NoSQLClient(
        new NoSQLConfig
        {
            Region = Region.<your-service-region>,
            AuthorizationProvider = new IAMAuthorizationProvider(
                "<your_config_file>", "<your_profile_name>")
        });
  • 使用实例主用户进行连接:

    实例主用户是 IAM 服务功能,它允许实例成为授权操作者(或主用户)来对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到其中的证书进行验证。设置后,按如下方式创建 NoSQLClient 实例:

    var client = new NoSQLClient(
        new NoSQLConfig
        {
            Region=<your-service-region>,
            Compartment="ocid1.compartment.oc1.............................",
            AuthorizationProvider=IAMAuthorizationProvider.CreateWithInstancePrincipal()
        });

    您还可以在 JSON 中表示相同的配置,如下所示:

    {
        "Region": "<your-service-region>",
        "AuthorizationProvider":
        {
            "AuthorizationType": "IAM",
            "UseInstancePrincipal": true
        },
        "Compartment": "ocid1.compartment.oc1.............................",
    }

    请注意,使用实例主用户时,必须将区间 ID (OCID) 指定为 compartment 属性。这是必需的,即使您希望使用默认区间也是如此。请注意,您必须使用区间 ID,而不是区间名称或路径。此外,在使用实例主用户时,在调用 NoSQLClient API 时,不能为表名加上区间名称或路径作为前缀。

  • 使用资源主体连接:

    资源主用户是 IAM 服务功能,它使资源成为授权操作者(或主用户)来对服务资源执行操作。设置后,按如下方式创建 NoSQLClient 实例:

    var client = new NoSQLClient(
        new NoSQLConfig
        {
            Region = <your-service-region>,
            Compartment =
                "ocid1.compartment.oc1.............................",
            AuthorizationProvider =
                IAMAuthorizationProvider.CreateWithResourcePrincipal()
        });

    您还可以在 JSON 中表示相同的配置,如下所示:

    {
        "Region": "<your-service-region>",
        "AuthorizationProvider":
        {
            "AuthorizationType": "IAM",
            "UseResourcePrincipal": true
        },
        "Compartment": "ocid1.compartment.oc1.............................",
    }

    请注意,在使用资源主用户时,必须将区间 ID (OCID) 指定为 compartment 属性。这是必需的,即使您希望使用默认区间也是如此。请注意,您必须使用区间 ID,而不是区间名称或路径。此外,在使用资源主用户时,在调用 NoSQLClient API 时,您可能无法为表名添加区间名称或路径作为前缀。

  • 使用会话令牌进行连接:

    使用基于会话令牌的验证,可以创建包含信息(包括用户 OCID、租户 OCID、区域、私钥路径和临时会话令牌文件路径)的本地配置文件。

    可以使用三种方法之一(如下所示)使用基于会话令牌的验证。

    选项 1:这将使用基于会话令牌的验证创建 IAMAuthorizationProvider 的新实例,该实例具有默认 OCI 配置文件和默认配置文件名称。

    var client = new NoSQLClient(
    new NoSQLConfig {
       Region = <your-service-region>,
       Compartment = "ocid1.compartment.oc1.............................",
       AuthorizationProvider = IAMAuthorizationProvider.CreateWithSessionToken()
    });

    选项 2:这将使用基于会话令牌的验证以及默认 OCI 配置文件和指定的配置文件名称创建 IAMAuthorizationProvider 的新实例。

    var client = new NoSQLClient(
    new NoSQLConfig {
       Region = <your-service-region>,
       Compartment = "ocid1.compartment.oc1.............................",
       AuthorizationProvider = IAMAuthorizationProvider.CreateWithSessionToken(<profileName>)
    });

    选项 3:这将使用具有指定 OCI 配置文件和配置文件名称的基于会话令牌的验证创建 IAMAuthorizationProvider 的新实例。

    var client = new NoSQLClient(
    new NoSQLConfig {
       Region = <your-service-region>,
       Compartment = "ocid1.compartment.oc1.............................",
       AuthorizationProvider = IAMAuthorizationProvider.CreateWithSessionToken(<configFile>,<profileName>)
    });

    您还可以在 JSON 中表示相同的配置,如下所示:

    {
      "Region": "<your-service-region>",
      "AuthorizationProvider": {
        "AuthorizationType": "IAM",
        "UseSessionToken": true
      },
      "Compartment": "ocid1.compartment.oc1............................."
    }
  • 使用 OKE 工作负载标识进行连接:

    Oracle NoSQL Dotnet SDK 支持在 OCI 中的 OKE Workload 容器内运行程序。

    以下示例使用 OKE 工作量身份创建 IAMAuthorizationProvider 的新实例。此方法允许您指定可选的服务帐户令牌字符串。如果未指定,将从缺省文件路径 /var/run/secrets/kubernetes.io/serviceaccount/token 读取服务帐户令牌。

    var client = new NoSQLClient(
    new NoSQLConfig {
       Region = <your-service-region>,
       Compartment = "ocid1.compartment.oc1.............................",
       AuthorizationProvider = IAMAuthorizationProvider.CreateWithOKEWorkloadIdentity()
    });

    您还可以使用 OKE 工作量身份和指定的服务帐户令牌文件创建 IAMAuthorizationProvider 的新实例,如下所示。

    var client = new NoSQLClient(
    new NoSQLConfig {
       Region = <your-service-region>,
       Compartment = "ocid1.compartment.oc1.............................",
       AuthorizationProvider =
        IAMAuthorizationProvider.CreateWithOKEWorkloadIdentityAndTokenFile(<serviceAccountTokenFile>)
    });

    您还可以在 JSON 中表示相同的配置,如下所示:

    { "Region": "<your-service-region>",
     "AuthorizationProvider":  {
       "AuthorizationType": "IAM",
       "UseOKEWorkLoadIdentity": true
     },
     "Compartment": "ocid1.compartment.oc1.............................",
    }

您可以使用以下方法之一连接到 NDCS:

  • 使用默认配置文件与默认配置文件进行连接:

    您可以将身份证明存储在 Oracle Cloud Infrastructure 配置文件中。配置文件的缺省路径为 ~/.oci/config,其中 ~ 代表用户的起始目录。在 Windows 上,~USERPROFILE 环境变量的值。该文件可能包含多个配置文件。默认情况下,SDK 使用名为 DEFAULT 的配置文件来存储身份证明

    要使用这些默认值,请在 ~/.oci directory 中使用以下内容创建名为 config 的文件:

    [DEFAULT]
    tenancy=<your-tenancy-ocid>
    user=<your-user-ocid>
    fingerprint=<fingerprint-of-your-public-key>
    key_file=<path-to-your-private-key-file>
    pass_phrase=<your-private-key-passphrase>
    region=<your-region-identifier>

    请注意,您还可以在 OCI 配置文件中同时指定区域标识符和身份证明。默认情况下,驱动程序将在 OCI 配置文件中的默认路径和默认配置文件中查找身份证明和区域。仅当未使用 HandleBuilder::cloud_region() 时才需要区域。仅当 RSA 密钥文件需要一个时,才需要 pass_phrase

    任何 Oracle NoSQL Database Cloud Service Rust 应用程序的第一步都是创建一个 Handle,用于根据 HandleBuilder 结构中给定的配置向服务发送请求。Handle 的实例可以安全地同时使用,并打算在多线程或异步应用程序中共享。以下代码示例说明如何使用用户配置文件连接到云服务:

    let handle = Handle::builder()
    .cloud_auth_from_file("~/.oci/config")?
    .build().await?;
  • 使用实例主用户进行连接

    实例主用户是 IAM 服务功能,它允许实例成为授权操作者(或主用户)来对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到其中的证书进行验证。要在此模式下配置 NoSQL,请使用以下代码:

    let handle = Handle::builder()
    .cloud_auth_from_instance()?
    .compartment_id ("ocid1.compartment.oc1.............................")?
    .build().await?;

典型工作流

使用 Oracle NoSQL Database Cloud Service 的典型任务序列。

如果您是首次使用 Oracle NoSQL Database Cloud Service 开发应用,请按照以下任务作为指南进行操作。

任务 说明 更多信息
连接您的应用 连接应用以使用 Oracle NoSQL Database Cloud Service 表。 将应用连接到 NDCS
开发应用程序 连接到 Oracle NoSQL Database Cloud Service 表后,开发应用。 在 Oracle Cloud 中开发

在 Oracle NoSQL Database Cloud Simulator 中开发 </p>

如果您是第一次设置 Oracle NoSQL Database Cloud Service,请参阅设置服务

快速入门课程

访问快速入门教程,开始使用服务。

  1. 获取对服务的访问权限。

    注册云促销或购买 Oracle Cloud 订阅。激活您的订单,创建用户(可选)。请参阅设置服务

  2. 获取身份证明以连接应用程序。请参阅用于连接到 Oracle NoSQL Database 的验证

  3. 在 Oracle NoSQL Database Cloud Service 中创建表。要开始使用,请参阅Oracle NoSQL Database Cloud Service 中的表入门