[개발] MONGODB 사용자 추가 및 암호 설정 모드로 기동하기
개요
기본적으로 설치 과정은 생략한다. 어딘가 글 써놓긴 했는데 -_-;;
기본 설치 시 로컬에서만 로그인이 가능하기 때문에 설정을 통해 mogodb를 외부 접속이 가능한 암호 인증 방식으로 기동해보도록 한다.
- 테스트 환경 : ubuntu 18.04 / MongoDB shell version v4.2.6
암호 없이 몽고 DB 기동
$ sudo mongod --bind_ip_all --noauth --dbpath [DB저장 폴더경로] --directoryperdb &
- --bind_ip_all : 모든 IP 에서 접속 가능하도록 함 ( 미 설정 시 /etc/mongd.conf 기본값 127.0.0.1 )
- --noauth : 인증 절차를 거치지 않음
- --dbpath : DB 파일을 저장할 경로
- --directoryperdb : database 명 기준으로 폴더를 생성하여 관리
DATABASE 및 계정 생성 및 권한 부여
터미널에서 mongo 또는 MogoDB Compass Community 등을 활용하여 DB에 접속한다. (현재는 외부에서 접속 가능)
use steemit
- steemit 데이터베이스로 전환(또는 빈 깡통생성)
db.createUser(
{
user: "wonsama",
pwd: passwordPrompt(),
roles: [ { role: "readWrite", db: "steemit" } ]
}
)
- passwordPrompt() 입력시 암호를 입력받아 저장, 문자열로 지정 가능
- { role: "readWrite", db: "steemit" } : wonsama 라는 사용자에게 steemit Database 에 readWrite (읽기 쓰기 ) 권한을 부여
암호 설정 후 몽고 DB 기동
$ sudo mongod --bind_ip_all --auth --dbpath [DB저장 폴더경로] --directoryperdb &
// 로그인 by connection string
connection string 을 통해 로그인
mongodb compass community 를 통해 로그인 하는 경우
아래 에서 [ , ] 와 같은 중괄호는 입력하지 않아도 된다. 매칭되는 정보를 입력하면 됨
mongodb://[ID]:[PASSWORD]@[IP]:[PORT]/?authSource=[DB명]&readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=false
- [ID] : 사용자명
- [PASSWORD] : 암호
- [DB명] : authSource (인증정보) 가 담겨진 database (위 같은경우 use DB명에 해당하는 steemit 이 됨)
mongo 를 통해 로그인
[PORT] 는 생략 가능하며 기본값은 27017
mongo -u [ID] -p [PASSWORD] [IP]:[PORT] --authenticationDatabase [DB명]
맺음말
위와 같이 사용자 및 권한 생성 후 DB 를 관리하면 좀더 유연하게 사용자 및 데이터 관리를 할 수 있다 :)