MongoDB創(chuàng)建用戶時提供了各種權(quán)限,默認(rèn)的內(nèi)置權(quán)限參見文檔:here
一般常見的權(quán)限是 readWrite, userAdmin, dbAdmin, dbOwner.
readWrite:
支持find,insert,remove,update等
userAdmin:
支持createUser,createRole,changePassword等。
dbAdmin:
支持dbstats,find,listCollections,dropCollection等
dbOwner:
是readWrite,userAdmin和dbAdmin的權(quán)限集合蒜茴。
那么下面這條命令
use admin
db.createUser({user:'Matt',pwd:'123456',roles:[{role:"dbOwner",db:"admin"},{role:"dbOwner",db:"Bourne"}]})
含義是Matt可以在admin庫驗(yàn)證權(quán)限浆西,之后可以在Bourne讀取記錄和創(chuàng)建用戶了。
use Bourne
db.createUser({user:'Bruce',pwd:'123456',roles:[{role:"dbOwner",db:"admin"},{role:"dbOwner",db:"Bourne"}]})
Matt是Bourne的dbOwner诺核,所以他可以createUser久信,另外他也是admin的dbOwner,所以他也可以給Bruce加上admin的dbOwner權(quán)限裙士。
假如他創(chuàng)建另外一個用戶Wayne
use Bourne
db.createUser({user:'Wayne',pwd:'123456',roles:[{role:"dbOwner",db:"Bourne"}]})
顯然Wayne只擁有Bourne庫的操作權(quán)限。
要注意的是桌硫,在哪個庫創(chuàng)建的用戶啃炸,就在哪個庫驗(yàn)證權(quán)限,之后再切到其他庫南用。
dbOwner算是很高的權(quán)限了,既可以添加用戶托修,又可以添加記錄睦刃。 對于一般用戶說,只需要read或者readWrite就足夠了涩拙。不過兴泥,mongo還可以有更高類似于root的權(quán)限。
db.createUser({user:'root',pwd:'123456',roles:[{role:"userAdminAnyDatabase",db:"admin"}, {role:"readAnyDatabase",db:"admin"}]})