Поделиться через


Права на чтение и чтение/запись для вторичных родных пользователей в Azure DocumentDB

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

Предпосылки

  • Существующий кластер Azure DocumentDB

Собственные роли

Azure DocumentDB поддерживает собственный контроль доступа на основе ролей для вторичных пользователей со следующими ролями:

Description
readWriteAnyDatabase Полные разрешения на чтение и запись, включая управление базами данных
clusterAdmin Полные разрешения на чтение и запись, включая управление базами данных
readAnyDatabase Разрешения только для чтения

Управление пользователями и ролями с помощью драйверов и инструментов MongoDB, таких как Оболочка MongoDB (mongosh).

Замечание

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

Проверка подлинности и выполнение операций с помощью оболочки MongoDB

Проверка подлинности с помощью встроенной учетной записи администратора, созданной во время подготовки кластера. Эта учетная запись имеет эксклюзивные права управления пользователями (userAdmin) в кластере.

  1. Откройте терминал на клиенте с установленной оболочкой MongoDB.

  2. Получите имя кластера Azure DocumentDB и ваши текущие учетные данные.

    Подсказка

    Вы можете получить собственную строку подключения для кластера на портале 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
      }
    )