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');