
MongoDBDriverManager::executeReadCommand를 사용하여 데이터를 읽어오려고 하는데, Unauthorized 오류가 발생하는 경우가 있습니다.
이러한 오류는 MongoDB의 인증 문제로 인해 발생합니다. MongoDB에 대한 인증 정보가 없거나, 인증 정보가 잘못된 경우에 발생합니다.
해결 방법은 다음과 같습니다.
1. MongoDB에 대한 인증 정보를 설정합니다.
- MongoDB의 사용자 이름과 비밀번호를 설정하고, MongoDB에 인증 정보를 등록합니다.
- MongoDB의 인증 정보를 사용하여 MongoDBClient를 생성합니다.
2. MongoDBClient를 사용하여 MongoDB에 연결합니다.
- MongoDBClient를 사용하여 MongoDB에 연결하고, MongoDB에 대한 인증 정보를 전달합니다.
3. MongoDBTemplate을 사용하여 데이터를 읽어옵니다.
- MongoDBTemplate을 사용하여 데이터를 읽어오고, MongoDB의 인증 정보를 전달합니다.
예를 들어, 다음과 같이 MongoDB의 인증 정보를 설정하고, MongoDBClient를 생성하여 MongoDB에 연결할 수 있습니다.
#hostingforum.kr
java
// MongoDB의 인증 정보를 설정합니다.
MongoCredential credential = MongoCredential.createCredential("username", "databaseName", "password".toCharArray());
// MongoDBClient를 생성하여 MongoDB에 연결합니다.
MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017/?authSource=admin&readPreference=primary");
// MongoDBTemplate을 사용하여 데이터를 읽어옵니다.
MongoDatabaseFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, "mydatabase");
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);
String query = "{ "query" : { "name" : "John" } }";
String collectionName = "users";
DBObject command = new BasicDBObject("find", collectionName);
command.put("filter", query);
DBObject result = mongoTemplate.executeCommand(command);
위의 코드를 사용하여 MongoDB의 인증 정보를 설정하고, MongoDBClient를 생성하여 MongoDB에 연결할 수 있습니다.
2025-08-02 12:56