1. openssl 설치

2. openssl req -new -x509 -days 1000 -out mongodb-server.crt -keyout mongodb-server.key


[설정 내용 출력 crt,key 생성] - Key 생성

=================server===================

Country Name (2 letter code) [AU]:??

State or Province Name (full name) [Some-State]:????

Locality Name (eg, city) []:????

Organization Name (eg, company) [Internet Widgits Pty Ltd]:????

Organizational Unit Name (eg, section) []:IT

Common Name (e.g. server FQDN or YOUR name) []: 192.168.??.??

Email Address []:


3. openssl req -new -x509 -days 1000 -out mongodb-client.crt -keyout mongodb-client.key


[설정 내용 출력 crt,key 생성] - 사설 CA(Certificate Authority) 인증서 생성

=================client===================

Country Name (2 letter code) [AU]:??

State or Province Name (full name) [Some-State]:????

Locality Name (eg, city) []:????

Organization Name (eg, company) [Internet Widgits Pty Ltd]:IT

Organizational Unit Name (eg, section) []:192.168.????

Common Name (e.g. server FQDN or YOUR name) []:192.168.?????

Email Address []:



[CA.pem]

4. bash -c 'cat mongodb-client.crt mongodb-client.key' > mongodb-client.pem

[Key.pem]

4-1. bash -c 'cat mongodb-server.crt mongodb-server.key' > mongodb-server.pem

[CA인증서]

5. sudo mongod -sslMode requireSSL --sslPEMKeyFile /home/xxx/mongdo_ssl/mongodb-server.pem --dbpath /var/lib/mongodb/

[Key]

5-1. sudo mongo --ssl --sslCAFile /home/xxx/mongdo_ssl/mongodb-server.pem --sslPEMKeyFile /home/xxx/mongdo_ssl/mongodb-client.pem --sslPEMKeyPassword 123456


블로그 이미지

_B_G_

,

 

외부접속 

$ mongo --host 127.0.0.1 --port 27017

mongo DB 복구

$ mongorestore --host 127.0.0.1 --port 27017 20190101/


* 복구 전에 존재하는 컬렉션을 없애고 싶다면 --drop 옵션

* 20190101 : 백업시 폴더 이름을 이렇게 저장 ( 복구시에도 폴더이름을 이걸로 사용하여야함)

 

만들어져 있는 계정이 있을경우 아래와 같이 접속

$ mongo <host:port> -u "아이디" -p "패스워드" --authenticationDatabase "admin"

블로그 이미지

_B_G_

,

$ mongo  ## 몽고 접속


> use admin # admin 사용자 생성 (원하는대로 호출가능)

> db.createUser({ user: "admin", pwd: "어드민패스워드", roles: [{ role: "userAdminAnyDatabase", db: "admin (사용자 생성한 admin 입력)" }] })


admin이라는 DB에게 userAdminAnyDatabase 라는 권한을 줌

userAdminAnyDatabase : 모든 데이터 베이스 사용자 관리 (작성, 업데이트, 삭제)


다음 명령으로 위의 admin DB에게 admin 사용자 생성이 되었는지 인증 하는 명령어

> db.auth ("admin","어드민 패스워드")

> 1 # 이라고 뜨면 성공

>exit

--------------------------------------

$ vim /etc/mongd.conf #접속


security:

authorization: enabled # 추가

systemctl restart mongo # 재실행


$ mongo # 접속


> use admin # userAdminAnyDatabase 모든 권한이 부여된 admin 데이터베이스 접속 / 접속하면 다른 사용자에게 권한 부여 및 생성 가능

> db.auth("admin","어드민패스워드") # 인증 접속


> use 생성하고픈 # 계정 생성 및 권한 부여 하려는 데이터베이스 이름

> db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "생성하고픈" }] })


dbOwner : 사용자에게 데이터베이스의 모든 컬렉션에 대한 읽기 및 쓰기 권한을 부여한다

> db.auth("youruser","yourpassword")

> show collections # 체크


블로그 이미지

_B_G_

,