Documentdb 简明教程

DocumentDB - Connect Account

在你开始对 DocumentDB 编程时,第一步是连接。因此,要连接到你的 DocumentDB 帐户,你需要两样东西;

  1. Endpoint

  2. Authorization Key

Endpoint

端点是你的 DocumentDB 帐户的 URL,它是通过将你的 DocumentDB 帐户名与 .documents.azure.com 结合来构建的。我们进入仪表板。

endpoint

现在,单击创建的 DocumentDB 帐户。你将看到详细信息,如下所示。

click created documentdb

当你选择“密钥”选项时,它将显示更多信息,如下所示。你还会看到你的 DocumentDB 帐户的 URL,你可以用它作为你的端点。

keys

Authorization Key

授权密钥包含你的凭证,并且有两种类型的密钥。主密钥允许访问帐户内的所有资源,而资源令牌允许受限访问特定资源。

Master Keys

  1. 没有任何事情是主密钥不能做的。如果你想要,你可以使用主密钥摧毁你的整个数据库。

  2. 因此,你一定不想共享或将主密钥分配给客户端环境。作为额外的安全措施,最好经常对其进行更改。

  3. 实际上,每个数据库帐户都有两个主密钥,即主密钥和次密钥,如上图所示。

Resource Tokens

  1. 你还可以使用资源令牌,而不是使用主密钥。

  2. 基于资源令牌的连接只能访问令牌指定的资源,而不能访问其他资源。

  3. 资源令牌基于用户权限,因此首先创建一名或多名用户,并且这些用户在数据库级别进行定义。

  4. 你为每个用户创建一项或多项权限,这基于你希望允许每个用户访问的资源。

  5. 每个权限都会生成一个资源令牌,该令牌允许仅读或完全访问某个资源,而该资源可以是数据库中的任何用户资源。

让我们进入在第 3 章中创建的控制台应用程序。

Step 1 − 在 Program.cs 文件中添加以下引用。

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

Step 2 − 现在添加端点 URL 和授权密钥。在此示例中,我们将使用主密钥作为授权密钥。

请注意,在你的情况下,端点 URL 和授权密钥都应有所不同。

private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
private const string AuthorizationKey =
   "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";

Step 3 − 在称为 CreateDocumentClient 的异步任务中新建一个 DocumentClient 的实例,并实例化新的 DocumentClient。

Step 4 − 从你的 Main 方法调用异步任务。

以下是迄今为止完整的 Program.cs 文件。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo {

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";

      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";

      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }

         Console.ReadKey();
      }

      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey);
      }

   }
}

在本章中,我们学习了如何连接到 DocumentDB 帐户和新建一个 DocumentClient 类的实例。