티스토리 뷰

 MongoDB와 아침부터 조금씩 친해져보려고 하는데, 이 친구 외부 접속이 default로 막혀있는 거 같다.(그걸 30분 동안 삽질하고 나서 알아챈...)

 

그래서 좀 뒤져보니까 config 파일에서 외부 접속을 따로 설정해줘야 한다는 내용이 있길래 정리해보려고 한다.


우선 db와 해당 db에 접속 권한을 가진 계정을 생성해야 한다.

 

db는 기존에 있는 db를 사용한다고 치면,

 

use database_name;

db.createUser({
    user: "user",
    pwd: "password",
    roles: [{role: "dbOwner", db: "database_name"}] // 모든 권한, 최소 권한 원칙에 위배되나, 테스트용도이니 신경쓰지 않겠다.
});

 

이후에 MongoDB가 설치되어 있는 디렉터리의 bin 폴더(필자의 경우: C:\Program Files\MongoDB\Server\7.0\bin)안에 있는 mongod.cfg파일을 관리자 권한으로 열면

# network interfaces
net:
  port: 27017
  bindIp: 127.0.0.1

 

아래 networt interfaces 설정을 찾을 수 있는데, bindIp가 로컬호스트인 경우만 허용을 해주고 있는 설정이다.

 

따라서 아래와 같이 수정하거나,

# network interfaces
net:
  port: 27017
  #bindIp: 127.0.0.1
  bindIp: 0.0.0.0

 

혹은 원하는 아이피를 오른쪽에 컴마와 함께 기입하면 된다.(컴마 양쪽에는 공백x)

 

이다음에는 설정 파일의 맨 아래 부분에 id/pw 인증이 가능하게끔

security:
  authorization: 'enabled'

 

를 삽입해 주고 저장하면 된다.

 

이제 MongoDB 서비스를 한번 재시작하거나 컴퓨터를 재부팅하면...

외부에서도 접속에 성공하는 것을 확인할 수 있다!!

 

하지만 위 예시처럼 0.0.0.0으로 모든 호스트에서 접근을 허용해 버리면 보안상 취약점이 되므로 권장되지는 않으니, 접속할 IP를 지정하여 사용하는 것이 좋다.

Comments