{
    user: "<name>",
    pwd: "<cleartext password>",
    customData: { <any information> },
    roles: [
       { role: "<role>",
     db: "<database>" } | "<role>",
    ...
    ]
}

1、基本语法说明:

user:用户名
pwd:密码
roles:
    role:角色
    db:对象

role:root, dbAdmin,readWrite,read

验证数据库:
创建用户时你use到的库,在将来登录时候,使用以下方式登录,否则是登录不了的

列子:

use test
create user
{
    user: "oldboy",
    pwd: "123",
    roles: [
       { role: "readWrite",
    db: "oldboy" },
    ...
    ]
}

总结:

1、在创建普通用户时,一般事先use 到想要设置权限的库下;或者所有普通用户使用同一个验证库,比如test
2、root角色的创建,要在admin下进行创建
3、创建用户时你use到的库,在将来登录时候,使用以下方式登录,否则是登录不了的
mongo -u oldboy -p 123 10.0.0.53/oldboy

用户管理例子:

(1)–创建超级管理员:管理所有数据库

$ mongo

use admin

db.createUser(
{
    user: "root",
    pwd: "root123",
    roles: [ { role: "root", db: "admin" } ]
}
)

验证用户

db.auth('root','root123')

配置文件中,加入以下配置

security:
  authorization: enabled

重启mongodb

mongod -f /mongodb/conf/mongo.conf --shutdown
mongod -f /mongodb/conf/mongo.conf

登录验证

mongo -uroot -proot123 10.0.0.53/admin

或者

mongo
use admin
db.auth('root','root123')

2、创建库管理用户

use app

db.createUser(
{
user: "admin",
pwd: "admin",
roles: [ { role: "dbAdmin", db: "app" } ]
}
)
db.auth('admin','admin')


db.createUser(
{
user: "admin1",
pwd: "admin1",
roles: [ { role: "dbAdmin", db: "app" } ]
}
)

登录测试
mongo -uadmin -padmin 10.0.0.53/app

3、创建对app数据库,读、写权限的用户app01:

(1)超级管理员用户登陆

mongo -uroot -proot123 admin

(2)选择一个验证库(如果记不住,就选用test)

use test

(3)创建用户

db.createUser(
    {
        user: "app01",
        pwd: "app01",
        roles: [ { role: "readWrite" , db: "app" } ]
    }
)


mongo  -app01 -papp01 

4、创建app数据库读写权限的用户并对test数据库具有读权限:

mongo -uroot -proot123 10.0.0.53/admin
use app
db.createUser(
{
user: "app03",
pwd: "app03",
roles: [ { role: "readWrite", db: "app" },
       { role: "read", db: "test" }
      ]
   }
)

5、查询mongodb中的用户信息

mongo -uroot -proot123 10.0.0.53/admin
db.system.users.find().pretty()

6、删除用户(root身份登录,use到验证库)

删除用户

# mongo -uroot -proot123 10.0.0.53/admin
use app
db.dropUser("app03")
文档更新时间: 2019-03-25 13:16   作者:李延召