[英]MongoDB returns “I ACCESS [conn6] Unauthorized: not authorized on admin to execute command { find: ”user“, filter: { username: ”root“ } }”
我遵循了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”,“ user”:“ root”,“ db”:“ admin”,“ customData”:{“ user”:“ XXX”},“ roles”:[{“ role” :“” readWrite“,” db“:” admin“},{” role“:” userAdminAnyDatabase“,” db“:” admin“}]}
但是,当我运行此verticle时,它并没有显示以下内容:: ReadPreferenceServerSelector {readPreference = primary}没有从集群描述ClusterDescription {type = UNKNOWN,connectionMode = SINGLE,serverDescriptions = [ServerDescription {address = 127.0.0.1: 27017,类型=未知,状态= CONNECTING}]}。 等待30000毫秒,然后超时
MongoDB(最新版本)服务器的日志:
2017-04-13T15:30:45.373 + 0800 I访问[conn6]未经授权:未经管理员授权执行命令{查找:“用户”,过滤器:{用户名:“ root”}}}
我只是从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"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.