Database
[MongoDB] Window11 환경에서 외부 접속 허용
춘햄
2024. 3. 12. 11:06
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를 지정하여 사용하는 것이 좋다.