use admin
show users
use admin
cur = db.system.users.find()
cur.count()
db.createUser
해당 데이터베이스의 유저객체를 생성한다.
- 관리자 계정 생성 예시
use test
db.createUser( {user: "testUser",
pwd: "test",
roles: ["readWrite", "dbAdmin"] } )
- 읽기권한, 특정 데이터베이스 읽고쓰기 권한 계정 생성 예시
use admin
db.createUser( {user: "testUser",
userSource: "test",
roles: ["read"],
otherDBRoles:{ testDB2: ["readWrite"] } } )
db.dropUser
해당 데이터베이스의 유저객체를 삭제한다.
- 삭제 예시
use testDB
db.dropUser("testUser")
사용자 관리자는 데이터베이스나 다른 관리 기능을 운영하는 권한 말고 사용자를 생성할 수 있는 권한만 갖고 있어야 한다.
사용자를 생성하는 권한을 가진 계정 예시
use admin db.createUser({ user: "useradmin", pwd: "test", roles: ["userAdminAnyDatabase"] })
—auth 파라미터를 사용해서 재시작해야한다.
mongod -dbpath </data/db> —auth
이후부터는 접근하기 위해 사용자와 패스워드를 이용해야 한다. 아니면 접속 후 명령어를 통해 로그인해야한다.
use admin
db.auth("useradmin","password")
mongo <host:port> -u <user> -p <pwd> --authenticationDatabase <database>
//루트계정생성
> use admin
> db.createUser({user: "ROOT_ID", pwd: "ROOT_PASSWO", roles:["root"]})
//재시작
$ sudo service mongod restart
$ mongo
> mongo <host:port> -u "ROOT_ID" -p "ROOT_PASSWO" --authenticationDatabase "admin"
//데이터베이스계정생성
> use DATABASE
> db.createUser({user: "DB_USER_ID", pwd: "DB_USER_PASSWORD", roles:["dbOwner"]})
//재접속
> mongo <host:port/DATABASE> -u "DB_USER_ID" -p "DB_USER_PASSWORD"