Задать вопрос

mongodb: проблема с аутентификацией

Есть монго на отдельном сервере. Создал пользователя:
db.addUser( { user: "<username>",
              pwd: "<password>",
              roles: [ "userAdminAnyDatabase" ] } )

Включил параметр auth = true в конфиге
Захожу в cli
mongo --host <host> --port <port> -u <username> -p <password> --authenticationDatabase admin <dbname>

Пытаюсь сделать запрос:
db.<collection>.find()
Получаю:
error: { "$err" : "not authorized for query on <dbname>.<collection>", "code" : 16550 }

Что делаю не так?
  • Вопрос задан
  • 2960 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 2
@xPutnikx
Буквально сегодня столкнулся с такой же проблемой. Использовал mongodb 2.6.1, ее отличие в том, что по сравнению с 2.4.х изменилась модель users в admin.system.users и соответственно система прав и ролей.
Для того чтобы юзер мог читать данные были добавлены следующие роли.
{
        "user" : "<username>", 
        "db" : "<db_name>", 
        "credentials" : { "MONGODB-CR" : "xxxxxxxx" },
        "roles" : [
            { "role" : "dbAdmin", "db" : "<db_name>" }, 
            { "role" : "readWrite", "db" : "<db_name>" }, 
            { "role" : "userAdminAnyDatabase", "db" : "admin" } 
        ] 
    }

Изменилось и Api создания пользователя. Вместо addUser теперь используется createUser из базы для которой этого юзера нужно добавить.
Ответ написан
Комментировать
@lega
Я раньше сначала входил в консоль, выбирал базу и после авторизовался db.auth().
Но лучше защиту делать средствами ОС (как и рекомендуют на оф. сайте)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы