Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 통합테스트
- REDIS
- MongoDB Role 생성
- MongoDB
- MongoDB 계정
- MongoDB 계정 생성
- redis 설치
- Mongodb 설치
- MongoDB Role
- centos
- GEB
- 테스트 자동화
Archives
- Today
- Total
소울메이커
MongoDB Role 설정 및 User 등록 본문
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을 선택하여 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 그룹을 생성하여 각 사용자에게 부여할 수 있어 한번 생성 해 두고 재사용하면 보다 편하게 권한을
관리할 수 있다.
끝.
'프로그래밍' 카테고리의 다른 글
CentOS에 MongoDB 설치부터 실행까지(using tgz Tarball) (0) | 2021.01.13 |
---|---|
CentOS에 Redis 설치하기 (redis-5.0.10) (0) | 2021.01.12 |
Docker(도커) 호스트(로컬)에서 컨테이너로, 컨테이너에서 로컬로 파일 전송하는 방법 (1) | 2016.11.24 |
MySQL, PostgreSQL 벤치마크 (0) | 2016.11.17 |
통합테스트 유틸리티 Geb (0) | 2016.11.10 |