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


Привилегии чтения и записи с дополнительными пользователями в Azure Cosmos DB для виртуальных ядер MongoDB (предварительная версия)

Azure Cosmos DB для виртуальных ядер MongoDB теперь поддерживает дополнительных пользователей с специализированными ролями чтения и записи. Эта функция позволяет вторичным пользователям получать доступ к данным и изменять их, что упрощает делегирование обязанностей при повышении безопасности данных. Благодаря детальному контролю доступа команды могут уверенно расширить доступ к данным различным заинтересованным лицам, таким как разработчики и аналитики, без ущерба для целостности системы.

Настройка дополнительных пользователей

Примечание.

Эту функцию можно включить или отключить с помощью шаблона ARM или Azure CLI на этапе предварительной версии.

Использование Azure CLI

    az resource patch --ids "/subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroup}/providers/Microsoft.DocumentDB/mongoClusters/{ClusterName}" --api-version 2024-10-01-preview --properties "{\"previewFeatures\": [\"GeoReplicas\", \"EnableReadOnlyUser\"]}"

Использование шаблона ARM

"previewFeatures": {
            "value": [
                "EnableReadOnlyUser"
            ]
        }

Поддерживаемые команды и примеры

Теперь виртуальный ядро MongoDB поддерживает контроль доступа на основе ролей (RBAC) для вторичных пользователей с правами на чтение и запись. Это позволяет администраторам назначать роли, предоставляющие доступ к базам данных-получателям для основных операций чтения при защите целостности первичных данных.

Примечание.

Для выполнения этих операций можно использовать любой из драйверов MongoDB или mongotools, таких как mongosh.

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

mongosh mongodb+srv://<YOUR_USERNAME>:<YOUR_PASSWORD>@>YOUR_HOST>?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000

Примечание.

Убедитесь, что вы разрешаете список IP-адресов клиента в параметрах сети в портал Azure.

CreateUser

Создает нового пользователя в базе данных, в которой выполняется команда. Команда createUser возвращает повторяющееся сообщение об ошибке пользователя, если пользователь существует.

Роль администратора данных

use admin
db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"clusterAdmin",db:"admin" },
            { role:"readWriteAnyDatabase", db:"admin" }
        ]
    }
)

Роль ReadOnly

use admin
db.runCommand(
    {
        createUser:"yourUserName",
        pwd : "yourPassword",
        roles : [
            { role:"readAnyDatabase",db:"admin" }
        ]
    }
)

Обновление пользователя

Обновляет пользователя в базе данных, в которой выполняется команда. Эта updateUser команда поддерживает только обновление пароля.

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

Удаление пользователя

Удаляет пользователя из базы данных, в которой выполняется команда.

use admin
db.runCommand(
    {
        dropUser:"<username>"
    }
)

Список пользователей

Возвращает сведения об одном или нескольких пользователях. Он также поддерживает передачу одного пользователя в usersInfo. В этом случае он возвращает сведения о пользователе, его роли и т. д.

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

Ограничения

  • Вы можете создавать до 10 пользователей и ролей на кластер. Если у вас есть требование добавить дополнительных пользователей, откройте запрос в службу поддержки.
  • Теперь Updateuser команда поддерживает только обновления паролей и не может изменять другие поля объектов.
  • Команда Roleinfo не поддерживается в предварительной версии. Кроме того, можно использовать usersInfo.
  • Поддержка RBAC для назначения ролей определенным базам данных или коллекциям пока не поддерживается.