Привилегии чтения и записи с дополнительными пользователями в 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 для назначения ролей определенным базам данных или коллекциям пока не поддерживается.