У меня есть некоторые проблемы с правами в mongoDB, я создал администратора БД, используя метод аутентификации, и это сработало.
Я могу подключиться с удаленного сервера к моей БД без предупреждения, используя учетную запись администратора, которую я создал с ролью «userAdminAnyDatabase». Но когда я использую другую БД (использую myDB), я не могу запустить db.runCommand.
Вот что я получаю:
> db.runCommand({createIndexes: "C_Cache", indexes: [{key: {tags: 1}, name: "tags_1"}]})
{
"ok" : 0,
"errmsg" : "not authorized on myDB to execute command { createIndexes: \"C_Cache\", indexes: [ { key: { tags: 1.0 }, name: \"tags_1\" } ] }",
"code" : 13
}
Когда я комментирую «auth» в файле конфигурации, все работает отлично. Но это не то, чего я хочу. Мне нужен этот метод аутентификации.
РЕДАКТИРОВАТЬ:
Я просто неправильно понял значение «userAdminAnyDatabase», это не дает вам прав на изменение других БД. Для этого, похоже, нужна роль «root», чтобы соответствовать ролям суперпользователя.