Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

소울메이커

MongoDB Role 설정 및 User 등록 본문

프로그래밍

MongoDB Role 설정 및 User 등록

언젠간 프로 2021. 1. 14. 21:19

MongoDB에 접속할 수 있는 사용자를 생성하는 방법과

사용자가 가질 수 있는 권한들을 그룹화하고 재사용할 수 있는 Role을 생성하는 방법을 정리한다.

1. Role 생성

MongoDB를 설치하였다면 Mongo Shell을 접속한 후 admin 모드로 접속한다. 

// Mongo Shell 접속
mongo

// admin DB로 전환
use admin;

 

그리고 db.createRole 함수를 이용하여 Role을 생성하면 된다. 

필요한 Role 옵션은 아래 링크에서 참고하면 된다.

MongoDB Roles 참고 : https://docs.mongodb.com/manual/core/authorization

 

Role-Based Access Control — MongoDB Manual

Security > Role-Based Access Control Role-Based Access Control MongoDB employs Role-Based Access Control (RBAC) to govern access to a MongoDB system. A user is granted one or more roles that determine the user’s access to database resources and operation

docs.mongodb.com

위 사이트를 참고하여 본인에게 필요한 Role을 선택하여 Role 생성 시 구성하면 된다. 

왼쪽 카테고리에서 Built-In Roles, User Defined Roles 등의 하위 카테고리로 이동하여 각 Role들을 확인할 수 있다.

여기서는 사용 할 DB에서 컬렉션을 읽고 쓸 수 있도록하고 인덱스 생성 권한과 해당 DB를 관리할 수 있는 어드민 권한으로 구성하여

Role을 생성한다.

Role 생성 스크립트

db.createRole({
    role: "myDbRole", 
    privileges: [
    ], 
    roles: [
    	{ role: "readWrite", db: "myDb" }, 
        { role: "createIndex", db: "myDb" }, 
        { role: "dbAdmin", db: "myDb" }
    ]
})
  • role : Role을 생성할 때 사용할 Role 이름, 사용자에게 Role을 설정할 때 이 명칭으로 부여한다.
  • privileges : 부여 할 Role외에 직접 상세 권한을 부여할 수 있다. 예를 들면 find, insert, update, delete 같은 권한들.
    여기에서는 Role만으로도 커버가 되므로 별도로 작성하지 않는다.
  • roles : MongoDB에서 제공하는 Role을 선택하여 부여한다. 여기에서는 readWrite와 createIndex, dbAdmin Role을 사용하였다. 

2. User 계정 생성

Role을 생성하였다면 생성한 Role을 부여받는 사용자 계정을 생성한다.

사용자 계정 생성은 db.createUser 함수를 이용한다.

db.createUser({
	user: "myId", 
    pwd: passwordPrompt(), // 또는 문자열 사용, 예) "myPassword"
    roles: [
    	{ role: "myDbRole", db: "myDb" }
    ]
})
  • user : MongoDB 에 접속하기 위한 사용자 아이디
  • pwd : 패스워드를 문자열로 직접 입력하거나 passwordPrompt() 함수를 이용하여 스크립트가 실행될 때
    패스워드를 입력받을 수 있도록 할 수 있다. 
  • roles : 본인이 생성한 Role 그룹을 지정한다. 여기에서는 위에서 생성한 Role을 부여하였다. 

 

이로서 특정 권한을 부여받은 사용자를 생성하였으며 MongoDB를 접속할 때 사용자 계정을 이용하여 해당 DB에 접근할 수 있다.

필요에 따라 여러가지 Role 그룹을 생성하여 각 사용자에게 부여할 수 있어 한번 생성 해 두고 재사용하면 보다 편하게 권한을

관리할 수 있다.

끝.