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

Я хотел бы преобразовать автономный набор в набор реплик. На первом этапе процедуры упоминается завершение автономного экземпляра mongod. На самом деле команда db.shutdownServer() выдает следующую ошибку: shutdownServer failed: администратор не авторизован для выполнения команды. Встроенная роль 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. Я действительно не понимаю, как просто закрыть.


person Senju    schedule 06.08.2015    source источник


Ответы (2)


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

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

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

person TharunRaja    schedule 11.09.2015

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

db.updateUser("root",{роли:[{"роль" : "userAdminAnyDatabase","db" : "admin"},{"роль" : "dbOwner","db" : "admin"},{" роль" : "clusterAdmin", "db": "admin"}]})

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

person archerLj    schedule 22.06.2017