gpt4 book ai didi

java - mongodb log4j2 身份验证失败

转载 作者:太空宇宙 更新时间:2023-11-04 14:00:05 26 4
gpt4 key购买 nike

我正在尝试设置 log4j 的 NoSQL 附加功能以与 MongoDB 一起使用,但我在使用新创建的帐户进行身份验证时遇到问题。

我创建了以下用户:

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

而且,我可以使用以下方式进行连接:

mongo - u loguser1 - p logpassword

但是,当 log4j2 尝试连接时,我在 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 loguser1@test 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:
NoSql:
name: Mongo
MongoDb:
databaseName: test
server: localhost
username: loguser1
password: logpassword

我一定是在做一些愚蠢的事情,我希望你们中的一个人能发现它。感谢您的浏览!

编辑:我花了更多时间敲击键盘,并尝试回滚到 MongoDb 2.6.9(我一直在尝试使用 3.0),并花时间配置管理员和用户帐户( http://docs.mongodb.org/v2.6/tutorial/add-user-administrator/ ),它似乎正在工作。我不是 100% 肯定,但我不确定 log4j2 是否能像上面所说的那样与 MongoDB 3.0 一起工作(或者,可能,我清理了我的用户帐户)。

最佳答案

2015-03-31T13:08:24.167-0500 I ACCESS [conn10] Failed to authenticate loguser1@test with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document

请注意,虽然用户凭据存储在 admin 数据库中,但您登录到 test 数据库(未指定时为默认数据库)。

您可以执行以下操作之一:

test数据库中创建具有相同角色的新用户:

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

并使用该用户名登录 (loguser2)

或者,您可以在 admin 数据库中授予用户 readWriteAnyDatabase 角色:

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

关于java - mongodb log4j2 身份验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29375654/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com