Настройка проверки подлинности MongoDB: "db.createUser не является функцией" и "пароль не может быть пустым"
Я пытаюсь настроить аутентификацию на MongoDB. Я раскомментировал auth=true
в файле конфигурации и перезапустил сервер. Первое соединение с помощью mongo было отклонено. Второй (сразу после первого) прошел, и я получил это в журналах:
Sat Apr 12 14:56:46 [initandlisten] connection accepted from 127.0.0.1:44001 #1
Sat Apr 12 14:56:46 [conn1] note: no users configured in admin.system.users, allowing localhost access
В то время как в консоли я могу выполнять команды, однако, если я пытаюсь выполнить любое из числовых руководств (включая официальные), я получаю либо db.createUser is not a function
при выполнении db.createUser()
или password can't be empty
при выполнении db.addUser()
:
![Mongo output]()
Объект, который я передаю, следующий:
{
user: "username",
pwd: "passphrase",
roles: [
{
role: "userAdminAnyDatabase",
db: "admin"
}
]
}
Ответы
Ответ 1
Какую версию mongodb вы используете? db.createUser был представлен в версии 2.6
Устаревший с версии 2.6: используйте db.createUser() и db.updateUser() вместо db.addUser(), чтобы добавить пользователей к MongoDB.
В версии 2.6 MongoDB представила новую модель учетных данных и привилегий пользователя, как описано в разделе "Введение в безопасность". Чтобы использовать db.addUser() на MongoDB 2.4, см. Db.addUser() в версии 2.4 Руководства MongoDB.
http://docs.mongodb.org/manual/reference/method/db.addUser/