我无法将文档插入到远程数据库服务器中,并收到错误13(未经授权):“命令插入需要身份验证”

萨尔瓦特·侯赛因

根据日志,我可以使用以下代码连接到我的远程Mongo服务器:

String mongoUser = vars.get("mongouser");
String userDB = vars.get("userdb");
char[] password = vars.get("password").toCharArray();
MongoCredential credential = MongoCredential.createCredential(mongoUser, 
 userDB, password);
MongoClientSettings settings = MongoClientSettings.builder()
.applyToClusterSettings {builder -> 
builder.hosts(Collections.singletonList(new 
ServerAddress(vars.get("mongohost"), vars.get("mongoPort") as int)))}
.build();
MongoClient mongoClient = MongoClients.create(settings);

但是在Iam插入文档时,出现以下错误:

Response code: 500
Response message: Exception: com.mongodb.MongoCommandException: Command 
failed with error 13 (Unauthorized): 'command insert requires authentication' 
on server 10.80.47.101:27017. The full response is {"ok": 0.0, "errmsg": 
"command insert requires authentication", "code": 13, "codeName": 
"Unauthorized"}

请注意,我使用相同的身份验证凭据通过NOSQLbooster成功插入了文档。

德米特里

您正在创建MongoCredential的实例,但未MongoClientSettings中使用它们(至少我看不到它),需要将其传递给MongoClientSettings.Builder.credential函数。

使用JMeter进行MongoDB性能测试中,可以找到更简单的身份验证示例

MongoClient mongoClient = MongoClients.create("mongodb://user:password@mongohost/?authSource=userdb&ssl=true");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档