사용자 관리 계정은 admin과 다른 데이터베이스에 사용자 계정을 생성할 수 있다. 또한 몽고DB의 데이터베이스, 클러스터링, 복제 그리고 그 외의 부분들을 관리하는 슈퍼 사용자로 사용할 수 있는 데이터베이스 관리자 계정을 생성해야 한다.
사용자 관리자는 데이터베이스나 다른 관리 기능을 운영하는 권한 말고 사용자를 생성할 수 있는 권한만 갖고 있어야 한다.
다음은 useradmin이라는 사용자명과 test라는 패스워드를 가진 사용자 관리자를 생성한다.
use admin
db.createUser( { user: "useradmin",
pwd: "test",
roles: ["userAdminAnyDatabase"] } )
사용자 관리자 계정이 생성됐다면, 다음과 같이 --auth
파라미터를 사용해서 몽고DB 데이터베이스를 재시동해야 한다.
mongod -dbpath c:\data\db --auth
이제 클라이언트는 데이터베이스를 접근하기 위해 사용자명과 패스워드를 이용해야 한다. 또한 셸에서 몽고DB에 접근할 때, 데이터베이스에 사용자를 추가할 수 있도록 admin 데이터베이스에 인증을 하려면 다음 명령을 실행해야 한다.
use admin
db.auth("useradmin", "test")
또한 다음 예제와 같이 몽고DB 셸을 시작할 때, --username
과 --password
선택사항을 이용하고 admin 데이터베이스를 명시하면 admin 데이터베이스에 인증받을 수 있다.
mongo admin --username "useradmin" --password "test"
admin 데이터베이스에 접근하기 위해 몽고DB 셸에서 addUser
메소드를 실행시켜 데이터베이스 관리자 계정을 생성한다. 이때, 사용자에게 readWriteAnyDatabase
, dbAdminAnyDatabase
와 clusterAdmin
권한을 부여한다. 이렇게 하면 시스템 안의 모든 데이터베이스에 접근 가능하고, 새로운 데이터베이스를 생성할 수 있으며, 몽고DB 클러스터와 레플리카를 관리할 수 있다.
다음 예제는 dbadmin이라는 데이터베이스 관리자를 생성한다.
use admin
db.createUser( { user: "dbadmin",
pwd: "test",
roles: ["readWriteNayDatabase", "dbAdminAnyDatabase", "clusterAdmin"] } )
새로운 관리자 계정을 생성하고 나면, 다음 명령을 사용해서 해당 사용자로 인증할 수 있다.
use admin
db.auth("dbadmin", "test")
또한 다음 예제와 같이 몽고DB 셸을 시작할 때, --username
과 --password
선택사항을 사용하면 데이터베이스 관리자로 admin 데이터베이스에 인증받을 수 있다.
mongo admin --username "dbadmin" --password "test"