DocumentDB - เชื่อมต่อบัญชี

เมื่อคุณเริ่มเขียนโปรแกรมกับ DocumentDB ขั้นตอนแรกคือการเชื่อมต่อ ดังนั้นในการเชื่อมต่อกับบัญชี DocumentDB ของคุณคุณจะต้องมีสองสิ่ง

  • Endpoint
  • รหัสการอนุญาต

จุดสิ้นสุด

Endpoint คือ URL ไปยังบัญชี DocumentDB ของคุณและสร้างขึ้นโดยการรวมชื่อบัญชี DocumentDB ของคุณเข้ากับ. documents.azure.com ไปที่แดชบอร์ดกันเถอะ

ตอนนี้คลิกที่บัญชี DocumentDB ที่สร้างขึ้น คุณจะเห็นรายละเอียดดังที่แสดงในภาพต่อไปนี้

เมื่อคุณเลือกตัวเลือก 'คีย์' จะแสดงข้อมูลเพิ่มเติมดังที่แสดงในภาพต่อไปนี้ คุณจะเห็น URL ไปยังบัญชี DocumentDB ของคุณซึ่งคุณสามารถใช้เป็นปลายทางของคุณได้

รหัสการอนุญาต

คีย์การให้สิทธิ์ประกอบด้วยข้อมูลประจำตัวของคุณและคีย์มีสองประเภท คีย์หลักช่วยให้สามารถเข้าถึงทรัพยากรทั้งหมดภายในบัญชีได้อย่างเต็มที่ในขณะที่โทเค็นทรัพยากรอนุญาตการเข้าถึงทรัพยากรที่ จำกัด

มาสเตอร์คีย์

  • ไม่มีอะไรที่คุณไม่สามารถทำได้ด้วยมาสเตอร์คีย์ คุณสามารถลบฐานข้อมูลทั้งหมดของคุณได้หากต้องการโดยใช้คีย์หลัก

  • ด้วยเหตุนี้คุณจึงไม่ต้องการแชร์คีย์หลักหรือแจกจ่ายไปยังสภาพแวดล้อมไคลเอนต์ เพื่อเป็นการเพิ่มมาตรการรักษาความปลอดภัยจึงควรเปลี่ยนบ่อยๆ

  • มีคีย์หลักสองคีย์สำหรับแต่ละบัญชีฐานข้อมูลหลักและรองตามที่ไฮไลต์ในภาพหน้าจอด้านบน

โทเค็นทรัพยากร

  • คุณยังสามารถใช้โทเค็นทรัพยากรแทนมาสเตอร์คีย์ได้อีกด้วย

  • การเชื่อมต่อตามโทเค็นทรัพยากรสามารถเข้าถึงทรัพยากรที่ระบุโดยโทเค็นเท่านั้นและไม่มีทรัพยากรอื่น ๆ

  • โทเค็นทรัพยากรจะขึ้นอยู่กับสิทธิ์ของผู้ใช้ดังนั้นก่อนอื่นคุณต้องสร้างผู้ใช้ตั้งแต่หนึ่งรายขึ้นไปและสิ่งเหล่านี้ถูกกำหนดที่ระดับฐานข้อมูล

  • คุณสร้างสิทธิ์อย่างน้อยหนึ่งรายการสำหรับผู้ใช้แต่ละรายโดยขึ้นอยู่กับทรัพยากรที่คุณต้องการอนุญาตให้ผู้ใช้แต่ละรายเข้าถึง

  • สิทธิ์แต่ละรายการจะสร้างโทเค็นทรัพยากรที่อนุญาตให้เข้าถึงทรัพยากรที่กำหนดแบบอ่านอย่างเดียวหรือแบบเต็มและอาจเป็นทรัพยากรของผู้ใช้ใดก็ได้ภายในฐานข้อมูล

ไปที่แอปพลิเคชันคอนโซลที่สร้างในบทที่ 3

Step 1 - เพิ่มการอ้างอิงต่อไปนี้ในไฟล์ Program.cs

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

Step 2- ตอนนี้เพิ่ม Endpoint URL และรหัสการอนุญาต ในตัวอย่างนี้เราจะใช้คีย์หลักเป็นคีย์การอนุญาต

โปรดทราบว่าในกรณีของคุณทั้ง Endpoint URL และรหัสการให้สิทธิ์ควรแตกต่างกัน

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

Step 3 - สร้างอินสแตนซ์ใหม่ของ DocumentClient ในงานแบบอะซิงโครนัสที่เรียกว่า CreateDocumentClient และสร้างอินสแตนซ์ DocumentClient ใหม่

Step 4 - เรียกงานแบบอะซิงโครนัสจากวิธีการหลักของคุณ

ต่อไปนี้เป็นไฟล์ 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