مشاركة عبر


صلاحيات القراءة والكتابة مع المستخدمين الأصليين الثانويين على Azure DocumentDB

يدعم Azure DocumentDB المستخدمين الأصليين الثانويين لديبوكت دي بي مع أدوار متخصصة للقراءة والكتابة والقراءة فقط، مما يمكن تفويض الوصول الآمن إلى البيانات. الحساب الإداري المدمج، الذي يتم إنشاؤه أثناء إعداد الكلاند، يتمتع بصلاحيات كاملة، بما في ذلك إدارة المستخدمين. يتم تكرار المستخدمين الثانويين تلقائيا إلى نسخ من العنقود، لكن يجب تنفيذ إدارة المستخدمين على العنقود الأساسي.

Prerequisites

  • اشتراك Azure

  • مجموعة Azure DocumentDB موجودة

الأدوار الأصلية

يدعم Azure DocumentDB التحكم في الوصول القائم على الأدوار للمستخدمين الثانويين الذين لديهم الأدوار التالية:

Description
readWriteAnyDatabase صلاحيات قراءة وكتابة كاملة، بما في ذلك إدارة قواعد البيانات
clusterAdmin صلاحيات قراءة وكتابة كاملة، بما في ذلك إدارة قواعد البيانات
readAnyDatabase صلاحيات القراءة فقط

إدارة المستخدمين والأدوار باستخدام برامج تشغيل MongoDB أو أدوات مثل MongoDB Shell (mongosh).

إشعار

يدعم فقط مستخدمو القراءة والكتابة الكاملة الذين لديهم صلاحيات إدارة قواعد البيانات والعمليات معا. لا يمكن تعيين الأدوار بشكل منفصل.

التحقق من صحة وتنفيذ العمليات عبر MongoDB Shell

قم بالتحقق باستخدام الحساب الإداري المدمج الذي تم إنشاؤه أثناء إعداد الكلاست. هذا الحساب يمتلك صلاحيات إدارة مستخدم حصرية (userAdmin) في العنقود.

  1. افتح طرفية على عميل مع تثبيت shell MongoDB.

  2. احصل على اسم مجموعة Azure DocumentDB الخاصة بك وبيانات اعتمادك الحالية.

    Tip

    يمكنك الحصول على سلسلة الاتصال الأصلية للعنقود في بوابة Azure باستخدام قسم سلاسل الاتصال .

  3. اربط باستخدام سلسلة الاتصال التالية:

    mongosh "mongodb+srv://<username>:<password>@<cluster-name>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    

إدارة المستخدمين

إنشاء مستخدم جديد على نظام المجموعة حيث تقوم بتشغيل الأمر. يقوم createUser الأمر بإرجاع خطأ مستخدم مكرر إذا كان المستخدم موجودا بالفعل.

  1. أنشئ مستخدم إداري لمستوى البيانات.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"clusterAdmin",db:"admin" },
          { role:"readWriteAnyDatabase", db:"admin" }
        ]
      }
    )
    
  2. أنشئ مستخدما للقراءة فقط.

    db.runCommand(
      {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
          { role:"readAnyDatabase",db:"admin" }
        ]
      }
    )
    
  3. قم بتحديث المستخدم في قاعدة البيانات عن طريق تشغيل updateUser الأمر.

    use admin
    
    db.runCommand(
      {
        updateUser:"<username>",
        pwd : "<new cleartext password>"
      }
    )
    

    إشعار

    يدعم الأمر تحديث كلمة المرور فقط.

  4. قم بإزالة مستخدم من العنقود.

    use admin
    
    db.runCommand(
      {
        dropUser:"<username>"
      }
    )
    
  5. استرجاع تفاصيل جميع المستخدمين الأصليين في المجموعة أو حدد مستخدما واحدا للحصول على معلومات عن أدوارهم وخصائصهم الأخرى.

    use admin
    
    db.runCommand(
      {
        usersInfo:1
      }
    )