gpt4 book ai didi

java - 未授权使用 eclipse 在 mongodb 上查询 databasename.collection

转载 作者:可可西里 更新时间:2023-11-01 10:31:30 25 4
gpt4 key购买 nike

我为 DB purp 赋予的角色是 UserAdmin,我使用 mongod --auth --dbpath c:\mongodb\data\db 运行服务器。首先我在eclipse中做了一个java文件来连接数据库,它工作正常。

在我创建并在 eclipse 中运行以下文件后:

try {

MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("purplista");
boolean auth =db.authenticate("purp","123".toCharArray());
System.out.println("Connect to database successfully");

DBCollection doc = db.getCollection("test");
System.out.println("Collection test selected successfully..");

DBCursor cursor = doc.find();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} catch (Exception e) {
e.printStackTrace();

出现这样的错误:

Connect to database successfully..

Collection test selected successfully..

com.mongodb.MongoException: not authorized for query on purplista.test at com.mongodb.QueryResultIterator.throwOnQueryFailure(QueryResultIterator.java:214) at com.mongodb.QueryResultIterator.init(QueryResultIterator.java:198) at com.mongodb.QueryResultIterator.initFromQueryResponse(QueryResultIterator.java:176) at com.mongodb.QueryResultIterator.(QueryResultIterator.java:64) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:80) at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:61) at com.mongodb.DBCursor._check(DBCursor.java:458) at com.mongodb.DBCursor._hasNext(DBCursor.java:546) at com.mongodb.DBCursor.hasNext(DBCursor.java:571) at purplista.FindDoc.main(FindDoc.java:34)

最佳答案

我看到的几个问题是:

  1. 您没有检查 db.authenticate() 的返回值,如果验证失败,它可能会返回 false。
  2. 即使通过身份验证,您也可能没有适当的权限在指定的数据库上执行预期的操作(在您的情况下为 read)。

需要检查的几件事:

  1. 这是一个有效的用户/密码吗 - 可以尝试使用 mongo shell相同的凭据
  2. 如果有效,它是否对您正在使用的数据库具有适当的权限?由于您可以在“管理”数据库中创建可用于身份验证的用户,但是这些用户可能没有设置您操作所需的额外访问权限。
  3. 如果您使用的是 MongoDB v2.6,则所有用户都必须在“admin”数据库中。
  4. 您可以检查感兴趣的数据库(测试)和管理数据库下的“system.users”集合,以检查用户的设置位置。

关于java - 未授权使用 eclipse 在 mongodb 上查询 databasename.collection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23386953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com