여러이유가 있겠지만 MongoDB의 권한설정은 반드시 필요합니다. 대표적인 이유로 개발중에 remote ip가 필요한 경우가 Auth 설정은 필수적입니다.

RemoteIp를 열어둔 경우 ip주소와 port만 알면 누구나 접속할 수 있어 해킹의 위험이 발생합니다. 외부 접속이 반드시 필요하다면 Auth를 사용하기 위해서 User 및 Password를 설정해야합니다.




# MongoDB Auth 설정방법 알아보기
먼저 아래는 Auth 설정에 필요한 단계입니다. 순서대로 필요한 과정을 설정해야합니다.

  • 1. admin 데이터베이스 선택
  • 2. 사용할 User 및 Password 추가하기
  • 3. auth 권한설정으로 mongoDB 실행하기

위 과정은 몽고DB에서 권한 설정하여 사용하는 방법입니다. 자세하게 알아보겠습니다.


! admin 데이터베이스 선택 권한
AUTH 설정을 위해서 먼저 admin을 선택합니다. 맨 처음 show databases를 입력하면 admin부분이 없는 것으로 보입니다.
> show databases
admin  (empty)
local 0.078GB

> use admin


! 사용할 User 및 Password 추가하기
가장 중요한 부분으로 사용자 Account를 설정 및 추가해야합니다. 이름과 패스워드를 설정하세요.
db.createUser({user:"name", pwd:"password", roles:[]})

참고로 기존의 addUser()는 Deprecated 되었으니 createUser()를 사용하세요. 하지만 MongoDB의 버전에 따라 createUser() 명령어를 실행할 경우 not found function 에러가 발생할 수 있습니다. 이 경우에는 addUser()를 사용해야 할 것 입니다.




# auth 권한설정으로 mongoDB 실행하기이제 MongoDB에 접속할 사용자에게 반드시 인증을 거치도록 수정해야합니다. 그러기 위해서 먼저 mongodb.conf를 수정하여 인증 설정을 사용하도록 변경합니다. mongodb.conf 파일은 /etc/에 위치합니다. 파일에 보면 auth=true 값을 추가하거나 이미 있으나 주석처리된 경우 주석을 제거해줍니다.(주석 제거는 # 기호를 제거)
$ sudo vim /etc/mongodb.conf


// 아래값 추가하기
auth = true

이제 저장하고 나옵니다. 다시 mongodb에 접근하려면 Auth 인증정보를 요청하게 됩니다. 앞에 설정한 id, password를 입력 또는 설정 후 접근할 수 있게됩니다. 만약 인증없이 커맨드를 입력하는 경우 아래와 같이 에러가 나타납니다.
'not authorized on admin to execute command'

해킹의 위험은 언제 어디서 찾아올지 모릅니다. 혹시 모를 위험에 대비하여 꼭 사용자 설정을 해두시기 바랍니다. 백업도 주기적으로 하는 것이 중요합니다.

인증정보를 사용하여 MongoDB CLI를 사용하려면? 아래의 링크를 참고하세요.
https://webisfree.com/2017-08-10/mongodb-auth-설정-후-mongo-shell-접속하는-방법
code snippet widget