2015-03-23 3 views
0

Я пытаюсь реализовать безопасность в MongoDb. При добавлении пользователя с:Безопасность MongoDB с использованием createUser

> db.addUser('admin','mypassword') 

приводит:

WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead 

Из документации Я попытался с помощью функции CreateUser вместо:

use admin 
db.createUser(
    { 
     user: "superuser", 
     pwd: "12345678", 
     roles: [ "root" ] 
    } 
) 

Перезапустите БД с --dbauth , Теперь, когда я пытаюсь подключиться и аутентификации с указанным пользователем, возвращается ошибка:

MongoDB shell version: 2.6.4 
connecting to: test 
> db.auth('superuser','12345678') 
Error: 18 { ok: 0.0, errmsg: "auth failed", code: 18 } 

С другой стороны, это работает, но это не очень хорошая идея, чтобы показать пользователю/пароль в список процедур:

mongo -u superuser -p 12345678 --authenticationDatabase admin 

Любая помощь ???

ответ

3

Аутентификация внутри оболочки выполняется против тестовой базы данных, тогда как пользователь был создан в базе данных администратора. Он должен работать, если вы добавите заявление использования перед тем, как db.auth

> use admin 
> db.auth('superuser','12345689'); 
+0

Спасибо за ответ. Поэтому, если я правильно понимаю, я должен начать всю свою деятельность оболочки mongo с помощью вышеуказанных двух утверждений. Тогда я могу использовать свои базы данных, не так ли? – user2824073

+0

Да, это правильно, хотя вы можете настроить ограниченного пользователя с ролью readwrite для использования в производстве. – Jaco

Смежные вопросы