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:

表 - 快速链接

     

入门

连接

IDE 和 SDK

Create Tables

放置和浏览数据

Manage Tables

管理安全性

监视服务

实用程序

SQL 参考

参考指南

设置服务

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

任务 引用 相关信息
订购 Oracle NoSQL Database Cloud Service 或注册参加 Oracle 免费试用 Oracle Cloud Infrastructure 文档中的 Signing Up for Oracle Cloud Infrastructure

要了解如何估计 Oracle NoSQL Database Cloud Service 订阅的每月成本,请参阅估计每月成本

要升级免费账户或更改付款方式,请参阅 Oracle Cloud Infrastructure 文档中的更改付款方式

激活您的 Oracle Cloud 账户并首次登录。 Oracle Cloud Infrastructure 文档中的登录到控制台

要熟悉 Oracle Cloud Infrastructure Console ,请参见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 文档中的设置租户管理区间

用于连接到 Oracle NoSQL Database 的验证

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

如果您还没有 Oracle Cloud 账户,您可以从 Oracle Cloud 开始。连接到 Oracle NoSQL Database 时,需要对自己进行身份验证。可以使用以下方式之一对您进行验证:

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

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

可以使用以下方式之一提供此验证方法的身份证明:
  • 该文件使用本地磁盘上的文件,包含用户 OCID、租户 OCID、区域、私钥路径和指纹等详细信息。如果您在安全网络上工作并且本地存储私钥和配置符合您的安全策略,则可以使用此方法。
  • 通过 API 提供身份证明。
  • 将身份证明存储在 Vault 中的某个位置。

身份证明包含的信息:

表 - 身份证明

这是什么? 在哪里可以找到它?
租户 ID 和用户 ID(均为 OCID) 请参阅 Oracle Cloud Infrastructure 文档中的 Where to Get the Tenancy's OCID and User's 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 资源的授权。有关更多详细信息,请参见 Setting Up Users,Groups,and Policies Using Identity and Access Management

验证方法 4:基于标记的验证:

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

创建会话标记:可以使用或不使用 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 Identity-based Authentication,OKE 工作负载基于身份的验证:

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

借助 Workload Identity,您不再需要将凭证作为密钥存储在 Kubernetes 集群中,也不再需要依靠 OCI 动态组来支持 worker 节点策略驱动的 OCI 资源访问,更具体地说是访问 NoSQL 表。当应用需要访问 OCI 资源时,Workload Identity 支持您将 OCI IAM 策略写入与应用云池关联的 Kubernetes 服务账户。此功能允许在这些云池中运行的应用程序根据策略提供的权限直接访问 OCI API。

要向工作负载中的所有云池授予对任何 OCI 资源的访问权限,请执行以下操作:
  • 为服务帐户创建名称空间。
  • 创建要使用的应用程序的服务帐户。
  • 定义 IAM 策略以授予工作负载资源对其他 OCI 资源的访问权限。
  • 下载并配置适合编写应用程序的语言的 SDK。
  • 编辑应用程序以指定:
    • 将使用 Kubernetes 引擎工作负载身份提供者对工作负载请求进行验证
    • 要访问的 OCI 资源
  • 更新应用程序的部署规范以指定工作负载中的每个 pod 都使用服务账户。
允许工作负载访问必要的 OCI 资源的授权:
  • 在 OCI 控制台中,打开导航菜单并单击身份和安全。在“身份”下,单击策略
  • 单击创建策略,并为该策略指定名称。
  • 输入策略语句以允许工作量访问必需的 OCI 资源,格式如下所示:
    Allow any-user to <verb> <resource> in <location> where all
    {
    request.principal.type = 'workload', 
    request.principal.namespace = '<namespace-name>', 
    request.principal.service_account = '<service-account-name>', 
    request.principal.cluster_id = '<cluster-ocid>'
    }
其中:
  • <namespace-name> 是以前创建的名称空间的名称。
  • <service-account-name> 是以前创建的服务账户的名称。
  • <cluster-OCID> 是您之前获取的群集 OCID。

单击创建可创建新策略。

将应用连接到 NDCS

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

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

您可以通过以下方式之一验证自己:
  • API 密钥
    • 从任何直接硬编码的 SDK(Java、Python、C#、GO、Node.js、Rust)程序
    • 具有缺省配置文件的配置文件
    • 具有非默认配置文件的配置文件
  • 具有验证令牌的实例主用户
  • 资源主体
  • 会话标记
  • OKE 工作量标识

有关验证选项的更多详细信息,请参阅用于连接到 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 construtor 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();
  • 使用 session-token 进行连接:

    使用 createWithSessionToken() 方法通过从令牌文件读取临时会话令牌来创建 SignatureProvider。令牌文件的路径是从配置文件中的缺省配置文件在缺省位置读取的。使用的配置文件是 ~/.oci/config
    SignatureProvider authProvider = 
    SignatureProvider.createWithSessionToken();
    您还可以在配置文件中的非默认配置文件中提供令牌文件的路径,如下所示。令牌文件的路径是从配置文件中的指定配置文件在默认位置读取的。
    SignatureProvider authProvider = 
    SignatureProvider.createWithSessionToken(<profile_name>);
  • 使用 OKE 工作负载标识进行连接:

    您可以在默认路径 /var/run/secrets/kubernetes.io/serviceaccount/token 中使用 Kubernetes 服务账户令牌创建具有容器引擎 for Kubernetes (OKE) 工作负载标识的 SignatureProvider。此提供程序只能在 Kubernetes pod 中使用。
    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()
  • 使用 session-token 进行连接:

    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 工作负载标识授予整个工作负载(在 Kubernetes 集群上运行的应用程序)对 NoSQL 表的访问权限的签署者。可通过 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)
  • 使用 session-token 进行连接:

    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 工作负载容器内运行程序。在创建 SignatureProvider 以与 NoSQL 一起使用的代码中,添加以下代码以使用 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 时,不能为表名加上区间名称或路径前缀。
  • 使用 session-token 进行连接:

    使用基于会话令牌的验证,可以创建包含用户 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 工作负载容器内运行程序。
    import { NoSQLClient, Region } from 'oracle-nosqldb';
    const client = new NoSQLClient({
        region: Region.<your-service-region>,
        compartment: 'ocid1.compartment.oc1...........................'
        ' auth: {
            iam: { useOKEWorkloadIdentity: true }
        }'
      }
    );
    此授权方案只能在 Kubernetes pods.Using 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 时,不能为表名加上区间名称或路径前缀。

  • 使用 session-token 进行连接:

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

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

    选项 1:这将使用基于会话令牌的验证(使用默认 OCI 配置文件和默认配置文件名称)创建新的 IAMAuthorizationProvider 实例。
    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 工作负载容器内运行程序。

    以下示例使用 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 目录中创建名为 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 应用程序的第一步是根据 HandleBuilder 结构中提供的配置创建用于向服务发送请求的句柄。句柄的实例对于并发使用是安全的,并打算在多线程或异步应用程序中共享。以下代码示例说明如何使用用户配置文件连接到云服务:
    let handle = Handle::builder()
    .cloud_auth_from_file("~/.oci/config")?
    .build().await?;
  • 使用实例主用户进行连接

    实例主用户是一项 IAM 服务功能,通过它,实例可以授权操作者(或主用户)对服务资源执行操作。每个计算实例都有自己的身份,并使用添加到该实例的证书进行验证。要在这种模式下配置 NoSQL,请使用以下代码:
    let handle = Handle::builder()
    .cloud_auth_from_instance()?
    .build().await?;
  • 使用资源主用户进行连接

    资源主用户是一项 IAM 服务功能,它允许资源成为授权操作者(或主用户)对服务资源执行操作。要在这种模式下配置 NoSQL,请使用以下代码:
    let handle = Handle::builder()
    .cloud_auth_from_resource()?
    .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 中开发

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

快速入门教程

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

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

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

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

  3. Oracle NoSQL Database Cloud Service 中创建表。