【发布时间】:2021-12-17 21:07:59
【问题描述】:
我有以下代码可以保存到本地运行的 mongo 实例:
MongoCredential credential = MongoCredential.createCredential("myuser", "mydatabase", "mypassword".toCharArray());
MongoClient mongo = MongoClients.create(MongoClientSettings.builder()
.applyToClusterSettings(builder -> builder.hosts(Arrays.asList(new
ServerAddress("localhost", 27017))))
.credential(credential)
.build());
MongoDatabase database = mongo.getDatabase("mydatabase");
MongoCollection<Document> collection = database.getCollection("mycollection");
collection.insertOne(document);
我已经使用 mongo.exe shell 中的 db.createUser() 命令为上面代码中使用的用户名/密码创建了一个用户,这些是我在安装 mongodb 时提供的相同凭据。
db.createUser(
{ user: "myuser",
pwd: "mypassword",
roles:[{role: "userAdminAnyDatabase" , db:"admin"}]})
但代码失败:
Exception in thread "main" com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='myuser', source='mydatabase', password=<hidden>, mechanismProperties={}}
我在这里错过了什么?
【问题讨论】:
-
您是否在启动服务时启用了身份验证,分别。在配置文件中设置?
标签: mongodb