MongoServerError: Authentication failed.
또는
MongoServerError: not authorized on admin to execute command
MongoServerError: Authentication failed. 에러 내용
mongosh로 유저 생성 등의 초기화 과정을 수행하기 위해 db.auth()를 진행했지만 위와 같은 오류를 만났습니다.
MongoServerError: Authentication failed. 에러 원인
놀랍게도
MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=passwd
등으로 root의 username과 password를 설정해도
해당 username과 password로 바로 로그인할 수 없습니다.
이는 생성한 root 유저 정보가 admin 데이터 베이스에 있기 때문입니다.
인증 과정은 user 데이터 베이스 정보에 있는 유저정보를 기반으로 하기 때문에,
같은 이름으로 root 유저를 생성하기 전에는 할 수가 없습니다.
MongoServerError: Authentication failed. 해결 방법
다음과 같이 createUser로 한번더 user를 만들어줘야 로그인이 가능합니다.
mongosh
use admin
db.createUser(
{
user: "root",
pwd: "passwd",
roles: [ { role: "root", db: "admin" } ]
}
)
이후 root로 로그인하고 사용할 유저를 생성하면 됩니다.
db.auth("root","passwd")
db.createUser({user:"myUser",pwd:"myPasswd",roles:[{role:"readWrite",db:"myDB"}]})
다음과 같이 OK가 나오면 성공입니다.
참고 자료
댓글