Учебники

DocumentDB — подключить аккаунт

Когда вы начинаете программировать на DocumentDB, самый первый шаг — это подключение. Поэтому для подключения к вашей учетной записи DocumentDB вам понадобятся две вещи;

  • Конечная точка
  • Ключ авторизации

Конечная точка

Конечная точка — это URL-адрес вашей учетной записи DocumentDB, который создается путем объединения имени вашей учетной записи DocumentDB с .documents.azure.com. Давайте перейдем к панели инструментов.

Конечная точка

Теперь нажмите на созданную учетную запись DocumentDB. Вы увидите детали, как показано на следующем изображении.

нажмите на созданную DocumentDB

Когда вы выбираете опцию «Ключи», она отображает дополнительную информацию, как показано на следующем рисунке. Вы также увидите URL своей учетной записи DocumentDB, которую вы можете использовать в качестве конечной точки.

выбор ключей

Ключ авторизации

Ключ авторизации содержит ваши учетные данные и существует два типа ключей. Главный ключ обеспечивает полный доступ ко всем ресурсам в учетной записи, а маркеры ресурсов — к ограниченному доступу к конкретным ресурсам.

Мастер Ключи

  • Там нет ничего, что вы не можете сделать с мастер-ключом. Вы можете уничтожить всю свою базу данных, если хотите, используя мастер-ключ.

  • По этой причине вам определенно не нужно делиться главным ключом или распространять его в клиентских средах. В качестве дополнительной меры безопасности рекомендуется регулярно менять ее.

  • На самом деле для каждой учетной записи базы данных есть два главных ключа: основной и дополнительный, как показано на снимке экрана выше.

Там нет ничего, что вы не можете сделать с мастер-ключом. Вы можете уничтожить всю свою базу данных, если хотите, используя мастер-ключ.

По этой причине вам определенно не нужно делиться главным ключом или распространять его в клиентских средах. В качестве дополнительной меры безопасности рекомендуется регулярно менять ее.

На самом деле для каждой учетной записи базы данных есть два главных ключа: основной и дополнительный, как показано на снимке экрана выше.

Жетоны ресурса

  • Вы также можете использовать жетоны ресурсов вместо мастер-ключа.

  • Соединения, основанные на токенах ресурсов, могут получать доступ только к ресурсам, указанным токенами, но не к другим ресурсам.

  • Маркеры ресурсов основаны на разрешениях пользователей, поэтому сначала вы создаете одного или нескольких пользователей, и они определяются на уровне базы данных.

  • Вы создаете одно или несколько разрешений для каждого пользователя на основе ресурсов, которые вы хотите разрешить каждому пользователю.

  • Каждое разрешение генерирует маркер ресурса, который разрешает либо только чтение, либо полный доступ к данному ресурсу, и это может быть любой пользовательский ресурс в базе данных.

Вы также можете использовать жетоны ресурсов вместо мастер-ключа.

Соединения, основанные на токенах ресурсов, могут получать доступ только к ресурсам, указанным токенами, но не к другим ресурсам.

Маркеры ресурсов основаны на разрешениях пользователей, поэтому сначала вы создаете одного или нескольких пользователей, и они определяются на уровне базы данных.

Вы создаете одно или несколько разрешений для каждого пользователя на основе ресурсов, которые вы хотите разрешить каждому пользователю.

Каждое разрешение генерирует маркер ресурса, который разрешает либо только чтение, либо полный доступ к данному ресурсу, и это может быть любой пользовательский ресурс в базе данных.

Давайте перейдем к консольному приложению, созданному в главе 3.

Шаг 1 — Добавьте следующие ссылки в файл Program.cs.

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

Шаг 2 — Теперь добавьте URL-адрес конечной точки и ключ авторизации. В этом примере мы будем использовать первичный ключ в качестве ключа авторизации.

Обратите внимание, что в вашем случае URL-адрес конечной точки и ключ авторизации должны отличаться.

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

Шаг 3. Создайте новый экземпляр DocumentClient в асинхронной задаче с именем CreateDocumentClient и создайте экземпляр нового DocumentClient.

Шаг 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.