MongoDB는 기본적으로 무인증 모드로 서비스를 실행하기 때문에 어드민 계정을 생성한 이후에 인증 모드로 설정을 변경하고 재시작해야 함
use admin
db.createUser({user:"어드민계정", pwd:"어드민패스워드", roles:[{"role" : "userAdminAnyDatabase", "db" : "admin"}]})
sudo service mongodb stop
vi /etc/mongodb.conf
# Turn on/off security. Off is currently the default
#noauth = true
auth = true
sudo service mongodb start
ID/패스워드없이 mongo 클라이언트를 실행한 다음에, db.auth() 함수를 호출하여 인증을 거치는 방법
use admin
db.auth("어드민계정", "어드민패스워드")
mongo 클라이언트의 command-line argument로 지정하여 인증을 거치는 방법
mongo -u 어드민계정 -p 어드민패스워드 admin
db.getUsers()
인증에 실패하면 다음과 같은 에러메시지가 발생함
2020-04-20T12:59:13.872+0900 Error: not authorized on admin to execute command { usersInfo: 1.0 } at src/mongo/shell/db.js:1358
use admin
db.createUser({user:"사용자계정", pwd:"사용자패스워드", roles:[{"role" : "readWrite", "db" : "사용자데이터베이스"}]})
readWrite 역할 대신에 dbOwner 역할을 부여하기도 함
https://docs.mongodb.com/manual/tutorial/enable-authentication/