MongoDB: ошибка shutdownServer: у администратора нет прав на выполнение команды db.grantRolesToUser db.createUser

Я хотел бы преобразовать автономный набор реплик. Первый шаг процедуры упоминает о закрытии автономного экземпляра Mongod. На самом деле db.shutdownServer() команда выдает следующую ошибку: shutdownServer не удалось: не авторизован администратором для выполнения команды. Встроенная роль hostManager должна авторизовать эту команду. Итак, я попробовал:db.grantRolesToUser("lala", [{role: "hostManager", db: "myDB"}]) в результате чего выдается ошибка: у администратора нет прав на выполнение команды. Я использую версию оболочки MongoDB: 3.0.5 с пользователем, который имеет роли: dbOwner, userAdmin, readWrite. Другой подход заключался в использовании: db.createUser({user: "hello", pwd: "world", roles: [{role: "hostManager", db: "myDB"}]}) который выдает ошибку: не может добавить пользователя: нет роли с именем hostManager@myDB. Я действительно не понимаю, как просто отключиться.

2 ответа

Когда экземпляр Mongod открывается с параметром --auth, это означает, что ваша база данных аутентифицирована. Однако соединение с БД устанавливается без какой-либо аутентификации, но вы не можете выполнить какую-либо операцию, так как она выдает ошибку в вашем описании, поскольку вы не аутентифицированы. Теперь переключитесь на аутентифицированную базу данных и затем выполните аутентификацию, используя

db.auth (имя пользователя, пароль)

Теперь вы можете авторизоваться для выполнения авторизованных операций на сервере выключения db.Try.

Попробуй это:

db.updateUser ("root", {role:[{"role": "userAdminAnyDatabase","db": "admin"},{"role": "dbOwner","db": "admin"},{"role": "clusterAdmin", "db": "admin"}]})

просто используйте свое имя пользователя вместо "root".

Другие вопросы по тегам