啟動MongoDB前需要關(guān)閉配置文件中的auth選項(xiàng),否則不能創(chuàng)建用戶
首先創(chuàng)建用戶管理用戶
use admin
db.createUser({user:'admin',pwd:'123456', roles:[{role:'userAdminAnyDatabase', db:'admin'}]})
使用用戶管理賬戶登錄認(rèn)證
use admin
db.auth('admin', '123456')
建立其他用戶
use admin
db.createUser({user:'admin',pwd:'123456', roles:[{role:'readWriteAnyDatabase', db:'xxx'}]})
db.createUser({user:'superadmin',pwd:'123456', roles:[{role:'root', db:'admin'}]})
因?yàn)樵赼dmin下面添加的帳號,所以要到admin下面驗(yàn)證。(use admin)
創(chuàng)建其他數(shù)據(jù)庫管理員用戶
use blog
db.createUser({user:'testuser',pwd:'123456', roles:[{role:'dbAdmin', db:'blog'}]})
Built-In Roles(內(nèi)置角色):
- 數(shù)據(jù)庫用戶角色:read、readWrite;
- 數(shù)據(jù)庫管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 備份恢復(fù)角色:backup、restore;
- 所有數(shù)據(jù)庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超級用戶角色:root // 這里還有幾個角色間接或直接提供了系統(tǒng)超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
- 內(nèi)部角色:__system
角色說明
Read:允許用戶讀取指定數(shù)據(jù)庫
readWrite:允許用戶讀寫指定數(shù)據(jù)庫
dbAdmin:允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建、刪除,查看統(tǒng)計(jì)或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數(shù)據(jù)庫里創(chuàng)建、刪除和管理用戶
clusterAdmin:只在admin數(shù)據(jù)庫中可用,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的管理權(quán)限。
readAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限
readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限
userAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限
dbAdminAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限。
root:只在admin數(shù)據(jù)庫中可用。超級賬號,超級權(quán)限