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".