MongoDB 簡(jiǎn)介
MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù)。由 C++ 語(yǔ)言編寫(xiě)。旨在為 WEB 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
MongoDB 是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。
1、修改啟動(dòng)MongoDB時(shí)要求用戶驗(yàn)證
加參數(shù) --auth 即可。
現(xiàn)在我們把MongoDB服務(wù)刪除,再重新添加服務(wù)
2、創(chuàng)建用戶,并使用創(chuàng)建的用戶登錄
打開(kāi)shell操作界面,默認(rèn)test數(shù)據(jù),再查看所有數(shù)據(jù)庫(kù),發(fā)現(xiàn)報(bào)錯(cuò),因?yàn)闆](méi)有用戶驗(yàn)證。
使用db.auth("user","pwd")進(jìn)行用戶驗(yàn)證。
user:用戶名
pwd:密碼
因?yàn)閿?shù)據(jù)庫(kù)中沒(méi)有用戶,所以需要先使用無(wú)用戶驗(yàn)證的方式啟動(dòng)數(shù)據(jù),在admin數(shù)據(jù)庫(kù)下新建用戶。
在當(dāng)前數(shù)據(jù)庫(kù)下創(chuàng)建一個(gè)用戶
user:用戶名
pwd:密碼
roles:角色信息
[role:角色名, db:對(duì)指定數(shù)據(jù)庫(kù)的操作]
> db.createUser({user:"admin", pwd:"admin", roles:[{role:"userAdminAnyDatabase", db:"admin"}]})Successfully added user: {"user" : "admin","roles" : [{"role" : "userAdminAnyDatabase","db" : "admin"}]} 在使用用戶驗(yàn)證的方式啟動(dòng)數(shù)據(jù)庫(kù),在數(shù)據(jù)庫(kù)admin中,使用admin登錄
> db.auth("admin","admin")
1
狀態(tài)1表示驗(yàn)證成功,0表示驗(yàn)證失敗
創(chuàng)建用戶默認(rèn)給當(dāng)前使用的數(shù)據(jù)下創(chuàng)建用戶,
例如:當(dāng)前使用的數(shù)據(jù)是admin,在admin數(shù)據(jù)下新建用戶
在admin數(shù)據(jù)庫(kù)下使用zyh登錄,可讀寫(xiě)zyhdb的collection。
當(dāng)在zyhdb下,無(wú)法使用zyh登錄,因?yàn)橛脩魖yh是在admin數(shù)據(jù)庫(kù)下。
3、查看當(dāng)前數(shù)據(jù)下的用戶
show users 顯示當(dāng)前數(shù)據(jù)庫(kù)下所有的用戶
使用有用戶管理權(quán)限的用戶登錄才能看見(jiàn),例如使用zyh登錄后,執(zhí)行會(huì)報(bào)錯(cuò);使用admin登錄后,顯示用戶
還可以使用db.getUsers()查看所有的用戶
使用db.getUser("user")查詢指定用戶的具體信息
4、修改用戶信息
user:用戶名
newpwd:新的密碼
db.updateUser("user", {roles:[{role:"", db:""}]})修改用戶信息
追加角色
取消角色
5、刪除用戶
db.dropUser("user") 刪除指定用戶
db.dropAllUsers() 刪除當(dāng)前數(shù)據(jù)下所有用戶
附:常用內(nèi)置角色說(shuō)明
數(shù)據(jù)庫(kù)用戶角色(每個(gè)數(shù)據(jù)庫(kù)都有的角色)
read 對(duì)non-system集合的讀取權(quán)限,以及以下system集合的讀取權(quán)限:system.indexes,system.js,system.namespaces
readWrite 對(duì)non-system集合的讀寫(xiě)權(quán)限,以及system.js上的讀寫(xiě)權(quán)限
數(shù)據(jù)庫(kù)管理角色(每個(gè)數(shù)據(jù)庫(kù)都包含的數(shù)據(jù)管理角色)
dbAdmin 完成管理性任務(wù)的權(quán)限,比如schema相關(guān)任務(wù)、索引、統(tǒng)計(jì)信息收集。不能用于管理用戶和角色
dbOwner 管理數(shù)據(jù)庫(kù)需要的所有權(quán)限。包含(readWrite、dbAdmin、userAdmin角色的權(quán)限)
userAdmin 在當(dāng)前數(shù)據(jù)庫(kù)創(chuàng)建和修改角色和用戶的權(quán)限
集群管理角色
admin數(shù)據(jù)庫(kù)包含以下角色用于管理整個(gè)系統(tǒng),而不是只針對(duì)單個(gè)數(shù)據(jù)庫(kù)
clusterAmin 提供集群管理的最大權(quán)限。包含了clusterManager、clusterMonitor、hostManager角色的權(quán)限
clusterManager 管理和監(jiān)控集群,可以訪問(wèn)local和config數(shù)據(jù)庫(kù)。
clusterMonitor 對(duì)集群的讀權(quán)限
hostManager 管理和健康servers
備份和還原角色
admin數(shù)據(jù)庫(kù)包含以下角色用于備份和還原數(shù)據(jù)
backup 備份權(quán)限
restore 還原權(quán)限
all-database roles
admin數(shù)據(jù)提供以下角色,對(duì)所有數(shù)據(jù)庫(kù)都有效。
readAnyDatabase 提供對(duì)所有數(shù)據(jù)庫(kù)的讀權(quán)限
readWriteAnyDatabase 提供對(duì)所有數(shù)據(jù)庫(kù)的寫(xiě)權(quán)限
userAdminAnyDatabase 提供對(duì)所有數(shù)據(jù)庫(kù)用戶的管理權(quán)限
dbAdminAnyDatabase 對(duì)所有數(shù)據(jù)庫(kù)的dbAdmin權(quán)限
超級(jí)角色
角色 說(shuō)明
root 擁有最高權(quán)限
另外角色也可以自定義設(shè)置
以上內(nèi)容是小編給大家介紹的MongoDB快速入門(mén)筆記(七)MongoDB的用戶管理操作的相關(guān)知識(shí),希望對(duì)大家有所幫助!
新聞熱點(diǎn)
疑難解答
圖片精選