繁体   English   中英

MongoDB返回“ I ACCESS [conn6]未经授权:未经管理员授权执行命令{查找:“用户”,过滤器:{用户名:“ root”}}””

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM