Я создал пользователя в базе данных администратора, который имеет роль «userAdminAnyDatabase» в базе данных admin. Уровень доступа отлично работает при попытке перечислить базы данных (с помощью шоу базы данных команд), но выдает следующее сообщение об ошибке при запуске показать коллекциям команду на любую базу данных, кроме администратора. Здесь ошибкаПредоставление пользователю MongoDB доступа к дополнительным базам данных
Error: listCollections failed: { "ok" : 0, "errmsg" : "not authorized on xxxx to execute command { listCollections: 1.0, filter: {} }", "code" : 13, "codeName" : "Unauthorized"
Я пытался обновить пользователя для обеспечения доступа с помощью следующей команды:
db.updateUser("xyz",{pwd:"abcd",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"userAdminAnyDatabase",db:"employee"}]})
Я получаю следующее сообщение об ошибке:
Error: couldn't add user: No role named [email protected]
Должен ли я добавить роли конкретно в каждой базе данных для этого?
Я получил эту работу. Что я понимаю из вашего объяснения выше, и наше исправление заключается в том, что роль userAdminAnyDatabase присутствует только в базе данных администратора, но дает этому пользователю право управлять пользователями в любой базе данных. Нам все равно нужно создавать пользователей в базе данных, которую мы хотим читать/писать. Понятие о том, что все пользователи в центральной базе данных, которые получают чтение/запись в другие базы данных, похоже, не существует в Монго. – kl27driver