MongoDB返回"I ACCESS [conn6] Unauthorized: not authorized on admin to execute command { find: "用户", fi



我按照 vertx 的 mongo auth 的插图做了这样:

MongoClient client = MongoClient.createShared(vertx, new JsonObject().put("connection_string", "mongodb://127.0.0.1:27017/admin"), "My Pool");
JsonObject authProperties = new JsonObject()
.put("username", "root")
.put("password", "root");
MongoAuth authProvider = MongoAuth.create(client, authProperties);

我已经在我的本地MongoDB服务器上创建了一个名为"root"的用户:

db.getUser("root");

{ "_id" : "admin.root", "用户" : "根", "db" : "admin", "自定义数据" : { "用户" : "XXX" }, "角色" : [ { "角色" : "读写", "数据库" : "管理员" }, { "角色" : "userAdminAnyDatabase", "数据库" : "管理员" } ] }

但是当我运行这个眩晕时,它确实注意到但打印以下内容::ReadPreferenceServerSelector{readPreference=primary} 从群集描述中没有选择的服务器 群集描述{类型=未知, 连接模式=单, 服务器描述=[服务器描述{地址=127.0.0.1:27017, 类型=未知, 状态=连接}]}。等待 30000 毫秒后超时

MongoDB(最新版本)服务器的日志:

2017-04-13T15:30:45.373+0800 I ACCESS [conn6] 未经授权:管理员无权执行命令 { 查找:"用户",过滤器:{ 用户名:"根" } }

我只是从 json 配置文件加载连接配置。

JsonObject mongoConfig = Config.getObject("mongo_config");
MongoClient mongo = MongoClient.createShared(vertx, mongoConfig);

配置文件:

{
"mongo_config":{
"db_name":"somedb",
"connection_string":"mongodb://username:password@127.0.0.1:27017"
}
}

最新更新