2015-03-31 2 views
1

Я пытаюсь настроить NoSQL log4j, прилагаемый для работы с MongoDB, но у меня возникли проблемы с аутентификацией с моей вновь созданной учетной записью.Ошибка аутентификации mongodb log4j2

Я создал следующий пользователю:

use admin 
 
db.createUser({ 
 
    user: "loguser1", 
 
    pwd: "logpassword", 
 
    roles: ["readWrite", "dbAdmin"] 
 
})

И, я могу подключиться с помощью:

mongo - u loguser1 - p logpassword

Но, когда log4 j2 пытается соединиться, я получаю следующее сообщение об ошибке в mongod:

2015-03-31T13:08:24.137-0500 I NETWORK [initandlisten] connection accepted from 127.0.0.1:63098 #9 (2 connections now open) 
 
2015-03-31T13:08:24.161-0500 I NETWORK [initandlisten] connection accepted from 127.0.0.1:63099 #10 (3 connections now open) 
 
2015-03-31T13:08:24.166-0500 I ACCESS [conn10] authenticate db: test { authenticate: 1, user: "loguser1", nonce: "xxx", key: "xxx" } 
 
2015-03-31T13:08:24.167-0500 I ACCESS [conn10] Failed to authenticate [email protected] with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document 
 
2015-03-31T13:08:25.410-0500 I NETWORK [conn10] end connection 127.0.0.1:63099 (2 connections now open) 
 
2015-03-31T13:08:25.411-0500 I NETWORK [conn9] end connection 127.0.0.1:63098 (2 connections now open)

А вот мой (фрагмент правильно отформатированный) log4j2.yml:

Configuration: 
 
    status: info 
 
    
 
    Appenders: 
 
\t NoSql: 
 
     name: Mongo 
 
     MongoDb: 
 
     databaseName: test 
 
     server: localhost 
 
     username: loguser1 
 
     password: logpassword

Должно быть, я делаю что-то глупое, я надеюсь, что кто-то из вас сможет это увидеть. Спасибо, что посмотрели!

EDIT: Я потратил еще некоторое время, ударяя головой о клавиатуру, и попробовал вернуться к MongoDb 2.6.9 (я пытался использовать 3.0) и потратил свое время на настройку учетной записи администратора и пользователя (http://docs.mongodb.org/v2.6/tutorial/add-user-administrator/) и, похоже, он работает. Я не на 100% положителен, но я не уверен, работает ли log4j2, как указано выше, с MongoDB 3.0 (или, возможно, я закрыл свои учетные записи пользователей).

ответ

0

2015-03-31T13: 08: 24.167-0500 I ACCESS [conn10] Не удалось проверить подлинность loguser1 @ тест с механизмом MongoDB-CR: AuthenticationFailed MongoDB-CR учетные данные отсутствуют в документе пользователя

Обратите внимание, что хотя учетные данные пользователя хранятся в администратора базы данных, войдите в тест базы данных (базы данных по умолчанию, если не указано).

Вы можете сделать одно из следующих действий:

Создать нового пользователя с теми же ролями в тест базы данных:

use test 
db.createUser({ 
    user: "loguser2", 
    pwd: "logpassword", 
    roles: ["readWrite", "dbAdmin"] 
}) 

и логин с таким именем (loguser2)

В качестве альтернативы вы можете предоставить пользователю readWriteAnyDatabase роль в admin база данных:

use admin 
db.createUser({ 
    user: "loguser3", 
    pwd: "logpassword", 
    roles: ["readWriteAnyDatabase", "dbAdmin"] 
}) 

и указать authenticationDatabase при подключении (как loguser3)

mongo -u loguser3 -p logpassword --authenticationDatabase admin 
MongoDB shell version: 2.6.0 
connecting to: test 
+0

Глядя на ваш ответ, и что я сделал 2-й раз, когда я настроенную базу данных, я заверил что ты прав. Пользователь, которого я пытался аутентифицировать, не был в этой базе данных. Маркировка как решена, спасибо! – Andrew

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