#mongodb #authentication #roles
#mongodb #аутентификация #роли
Вопрос:
Мне нужно создать пользователя в MongoDB с ролью «root», но только для нескольких выбранных баз данных (database_one и database_two). Мои вопросы:
- В какой базе данных я должен создать пользователя?
- Нужно ли мне создавать пользовательские роли? С какими настройками?
- Какие роли я должен предоставить пользователю?
Мой план состоял в том, что я создаю пользователя в DB admin, устанавливаю роли DBAdmin, UserAdmin, ReadWrite с обеими базами данных (database_one и database_two). Но в этом случае я не могу подключиться как этот пользователь. Можете ли вы помочь мне, как настроить пользователя и его роли?
Ответ №1:
Предполагая, что вы выбрали текущую базу данных (с помощью этой команды use <databaseName>
), с которой вы уже работаете, вы можете попробовать приведенный ниже код, чтобы добавить пользователя и указать его / ее учетные данные и роли.
db.addUser({user: "root", pwd: "123456", roles: [ "userAdminAnyDatabase", "readWriteAnyDatabase", "dbAdminAnyDatabase", "clusterAdmin" ]}));
ИЛИ создать администратора пользователя для одной базы данных:
use <databaseName>
db.createUser(
{
user: "recordsUserAdmin",
pwd: "password",
roles: [ { role: "userAdmin", db: "records" } ]
}
)
Подробнее отсюда
Комментарии:
1. Когда я использую ваш пример # 1, созданный пользователь имеет доступ ко всем базам данных. Но пользователь должен иметь доступ только к 2 указанным базам данных. И когда я использую ваш второй пример, мне приходится дважды создавать одного и того же пользователя в обеих базах данных. Но это решение неэффективно для меня, потому что каждый раз, когда я хочу изменить пароль пользователя, мне приходится менять их в обеих базах данных.