/ mongodb

mongodb 3.x auth

mongodb 3.4.x에서 인증을 다루는 방법을 소개한다.

난 주로 서버 컴포넌트를 docker를 이용해서 사용한다.
mongodb image는 공식 제공되는 걸 이용한다.

create admin

docker run --name some-mongo -d mongo --auth
docker exec -it some-mongo mongo admin
connecting to: admin
> db.createUser({ user: 'admin', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: 'dbAdminAnyDatabase', db: 'admin' },
{ role: 'clusterMonitor', db: 'admin' }] });

create user

docker exec -it some-mongo mongo admin
connecting to: admin
> db.auth('admin', 'some-initial-password');
> db = db.getSiblingDB('test_db')
> db.dropUser('test_user');
> db.createUser({ user: 'test_user', pwd: 'test_user_pw', roles: [
    { role: 'readWrite', db: 'test_db' },
    { role: 'dbAdmin', db: 'test_db' },
] });

readWrite, dbAdmin 이 권한들도 미리 정의된 권한이다. 필요한 내용을 추가하면 된다.