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