mongodb密碼和傳統數據如mysql等有些區別: mongodb的用戶名和密碼是基於特定數據庫的,而不是基於整個系統的。所有所有數據庫db都需要設置密碼。
1. 查看所有數據庫(在mongodb新版本里並沒有admin數據庫,但是並不妨礙第2步操作。)
show dbs
2. 進入admin數據庫
use admin
3. 創建管理員賬戶
db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
mongodb中的用戶是基於身份role的,該管理員賬戶的 role是 userAdminAnyDatabase。admin用戶用於管理賬號,不能進行關閉數據庫等操作。
4. 創建root
db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})
創建完admin管理員,創建一個超級管理員root。角色:root。root角色用於關閉數據庫。
db.shutdownServer()
5. 創建用戶自己的數據庫的管理角色
use yourdatabase
db.createUser({user: "user",pwd: "password",roles: [ { role: "dbOwner", db: "yourdatabase" } ]})
role: "dbOwner"代表數據庫所有者角色,擁有最高該數據庫最高權限。比如新建索引等當賬號管理員和超級管理員,可以為自己的數據庫創建用戶了。(坑)這時候一定,一定要切換到所在數據庫上去創建用戶,不然創建的用戶還是屬於admin。
如果是讀寫角色的話,權限設置為role: "readWrite"
6. 查看用戶
show users
7. 刪除用戶
刪除用戶必須由賬號管理員來刪,所以,切換到admin角色
use admin
db.auth("admin","password")
刪除單個用戶
db.system.users.remove({user:"XXXXXX"})
刪除所有用戶
db.system.users.remove({})