使用mongocxx驱动程序无法通过集群访问控制使用insert_many

问题描述

我有一个mongodb集群。我已经使用密钥文件设置了访问控制。我也按如下设置用户

mongos> db.system.users.find()
{ "_id" : "admin.root","user" : "root","db" : "admin","credentials" : ..,"roles" : [ { "role" : "root","db" : "admin" } ] }
{ "_id" : "mydb.dev","user" : "dev","db" : "mydb","credentials" : ...,"roles" : [ { "role" : "readWrite","db" : "mydb" },{ "role" : "clusteradmin","db" : "admin" } ]  }

当我使用root用户时,它运行良好。当我使用dev用户时,它将成功读取,并成功写入未分片的集合。但是,它在分片集合上无法执行以下操作。

    mongocxx::options::insert options;
    options.bypass_document_validation(true);
    options.ordered(false);

    try {
        col.insert_many(docs,options);

...
mongocxx::bulk_write_exception: { "nInserted" : 0,"nMatched" : 0,"nModified" : 0,"nRemoved" : 0,"nUpserted" : 0,"writeErrors" : [  ] }

任何想法都缺少开发者用户什么角色?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)