일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MAC
- ubuntu java
- freetier
- ubuntu
- initandlisten
- MongoDB
- 27inch
- Media-type
- GCP
- instance
- npm update
- Android
- Spring
- navercloud
- mongod
- naver
- github
- errorstack
- cloud
- playgrounds
- remote
- 가상머신
- java
- for developer
- VM
- openjdk
- springboot
- Xcode
- 27017
- 몽고디비
- Today
- Total
김컴공랩
[스프링부트] Spring 으로 웹 서비스 만들기 - 몽고디비 접속 본문
헬로월드! 김컴공입니다.
지난 포스팅에 이어, 스프링과 몽고디비를 연동하는 것을 계속하겠습니다.
이전에 서버의 몽고디비 포트(27017)를 오픈했으니, 이제 MongoDB Compass 를 이용해 접속을 테스트하겠습니다.
mongodb://[계정명]:[비밀번호]@[주소]:27017/[데이터베이스명]
몽고디비에 접속하기 위해서는 가상머신의 IP주소와 포트번호, 접속할 데이터베이스 이름, 접속권한을 가진 계정이 필요합니다. 지금까지 가상머신의 주소, 포트, 데이터베이스 명을 해결했으니, 데이터베이스에 계정을 생성하고 접속권한을 설정하겠습니다.
몽고디비 계정 생성
다시 몽고디비 Shell 로 돌아가보겠습니다.
$ mongo
우선 기본적으로 몽고디비는 외부 접속 인증을 할 때 admin 데이터베이스에 존재하는 계정을 보고 인증을 진행합니다. 따라서 아래 명령어를 입력해 admin 데이터베이스로 이동합니다.
> use admin
먼저 관리자 계정을 생성합니다. 이는 차후에 몽고디비의 인증정보나 데이터베이스를 관리할 때 필요한 모든 권한을 가지고 있는 계정으로, 다음 명령어를 이용해 생성합니다.
> db.createUser({ user:'admin', pwd:'admin', roles: [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" } ] })
여기서 user 와 pwd 는 보안을 위해 여러분이 별도로 지정해도 좋습니다.
이제 실제로 외부 접속을 위한 계정을 생성할 것입니다. 이는 스프링에서 접속할 계정이기도 합니다.
우리는 test 데이터베이스를 사용할 것이고, 그렇기 때문에 test 데이터베이스에 대한 권한이 있는 계정을 생성할 것입니다.
db.createUser({ user:'[USERNAME]', pwd:'[PASSWORD]', roles: [{ "role" : "readWrite", "db" : "test" }]})
[USERNAME] 과 [PASSWORD] 에는 여러분이 직접 설정하면 됩니다. 그 이후에 나오는 매개변수들은 역할과 데이터베이스를 표시합니다. 정리하면, 위 명령어는 test 라는 데이터베이스에 [USERNAME], [PASSWORD] 의 인증정보로, readWrite 권한을 가진 계정을 생성한다는 의미입니다.
* 몽고 디비 공식 Docs (docs.mongodb.com/manual/reference/built-in-roles/#database-user-roles) 에 여러가지 권한이 있습니다.
몽고디비 설정파일 수정
이제 계정을 사용하기 전에, 가장 먼저 몽고디비의 외부 접근이 가능하도록 설정파일을 변경해야합니다.
가상머신 쉘에서 다음 명령어를 입력합니다.
$ sudo vi /etc/mongodb.conf
그럼 다음과 같이 몽고디비 설정파일이 vim 에디터로 열리게 됩니다. 이 중에서
bind_ip = 127.0.0.1 -> bind_ip = 0.0.0.0
#auth = true -> auth = true
로 변경합니다. 첫 번째의 경우 디비에 접근하는 주소를 localhost 로 한정하는 옵션을 해제하는 것이고, 두 번째는 주석을 해제해서 인증과정을 통해 접속하는 것을 허용하는 것입니다.
* vim 의 명령어로 [a], [i] 키는 입력모드 진입, [:][w][q] 는 저장 후 종료입니다.
$ service mongodb restart
위 명령을 실행하여 위 수정사항을 적용할 수 있도록 몽고디비 서버를 재실행합니다.
몽고디비 접속
그럼 이제 다시 몽고디비 콤파스로 돌아가서 접속 명령어를 입력해볼까요?
mongodb://[USERNAME]:[PASSWORD]@[IPADDRESS]:27017/test
여러분이 설정한 외부 접근 계정을 [USERNAME] 과 [PASSWORD] 에, 그리고 여러분의 가상머신 외부 IP 를 [IPADDRESS] 에 입력하고 접속합니다.
올바르게 입력했는지 정보들을 확인하고, "CONNECT" 버튼을 누르면,
다음과 같이 몽고디비 콤파스의 데이터베이스 관리창에 접속한 것을 확인할 수 있습니다. 이로써 접속한 계정을 스프링에도 적용해서 스프링과 몽고디비가 연동할 수 있게됩니다.
사전 준비가 완료됐습니다. 다음 포스팅부터, 본격적으로 스프링과 몽고디비가 연동하는 작업을 진행해보도록 하겠습니다.
이상입니다.
'스프링부트' 카테고리의 다른 글
[스프링부트] Spring 으로 웹 서비스 만들기 - 몽고디비 생성 (0) | 2021.01.19 |
---|---|
[스프링부트] Spring 으로 웹 서비스 만들기 - 타임리프 1 (0) | 2021.01.17 |
[스프링부트] Spring 으로 웹 서비스 만들기 - 컨트롤러 생성 2 (0) | 2021.01.11 |
[스프링부트] Spring 으로 웹 서비스 만들기 - 컨트롤러 생성 1 (0) | 2021.01.11 |
[스프링부트] Spring 으로 웹 서비스 만들기 - 프로젝트 생성 (0) | 2021.01.11 |