MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。

切换到admin数据库,添加的账号才是管理员账号。

用户只能在用户所在数据库登录,包括管理员账号。

管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。

1,创建管理员
use admin
db.createUser({user:"myadmin",pwd:"123123",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

2,开启权限验证
修改/etc/mongod.conf,添加

security:
    authorization: enabled

3,新建普通用户

use database
 db.createUser({user: "xxx",pwd: "",roles: [{ role: "readWrite", db: "xxx" }]}) db.createUser({user: "xxx",pwd: "",roles: [{ role: "dbOwner", db: "xxx" }]})
 db.createUser({user: "xxx",pwd: "",roles: [{ role: "dbOwner", db: "xxx" }]})db.updateUser({user: "xxx",pwd: "",roles: [{ role: "dbOwner", db: "xxx" },{ role: "dbOwner", db: "xxx" }]})

4,创建超级用户root

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

5,查看当前库下的用户
show users

5.1 删除用户
db.dropUser(<user_name>) 

5.2 创建用户
db.createUser({user: "xxx",pwd: "",roles: [{ role: "dbOwner", db: "xxx" }]})

5.3 授权
db.grantRolesToUser("xxx",[{role:"dbOwner",db:"xxx"}])

5.4 去除权限
db.revokeRolesFromUser("xxx",[{ role: "readWrite", db: "xxx" }])

5.6 更改密码

db.changeUserPassword('xxx','xxxx');