MongoDB權(quán)限設(shè)置與登錄授權(quán)方式及解讀
一、角色權(quán)限
1.管理所有數(shù)據(jù)庫角色
| 角色 | 權(quán)限說明 | 適用場景 |
|---|---|---|
| root | 超級管理員,擁有所有數(shù)據(jù)庫和集群的完整權(quán)限(讀寫、管理、用戶控制等)。 | 緊急維護(hù)或全局管理(生產(chǎn)環(huán)境慎用)。 |
| dbAdminAnyDatabase | 管理所有數(shù)據(jù)庫的元數(shù)據(jù)(如創(chuàng)建/刪除集合、索引),但不能讀寫數(shù)據(jù)。 | 跨庫維護(hù)表結(jié)構(gòu)(如批量創(chuàng)建索引)。 |
| userAdminAnyDatabase | 管理所有數(shù)據(jù)庫的用戶和角色(如創(chuàng)建用戶、分配權(quán)限),但不能直接操作數(shù)據(jù)。 | 集中式用戶權(quán)限管理(需嚴(yán)格審計(jì))。 |
| readWriteAnyDatabase | 讀寫所有數(shù)據(jù)庫的數(shù)據(jù)(增刪改查),但不能管理數(shù)據(jù)庫結(jié)構(gòu)或用戶。 | 跨庫數(shù)據(jù)同步或全局?jǐn)?shù)據(jù)操作。 |
| readAnyDatabase | 讀取所有數(shù)據(jù)庫的數(shù)據(jù)(僅查詢),無寫入權(quán)限。 | 跨庫數(shù)據(jù)分析或監(jiān)控工具。 |
2.管理指定數(shù)據(jù)庫角色
| 角色 | 權(quán)限說明 | 適用場景 |
|---|---|---|
| dbOwner | 當(dāng)前數(shù)據(jù)庫的完全控制權(quán)限(包括 readWrite + dbAdmin + userAdmin)。 | 單庫管理員(小型項(xiàng)目或獨(dú)立業(yè)務(wù)庫)。 |
| dbAdmin | 管理當(dāng)前數(shù)據(jù)庫的元數(shù)據(jù)(如索引、集合結(jié)構(gòu)),不能讀寫數(shù)據(jù)。 | 維護(hù)特定庫的表結(jié)構(gòu)或統(tǒng)計(jì)信息。 |
| userAdmin | 管理當(dāng)前數(shù)據(jù)庫的用戶和角色(如創(chuàng)建用戶),不能操作數(shù)據(jù)或表結(jié)構(gòu)。 | 單庫用戶權(quán)限管理(多租戶系統(tǒng))。 |
| readWrite | 讀寫當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)(增刪改查),不能管理數(shù)據(jù)庫結(jié)構(gòu)或用戶。 | 應(yīng)用程序的常規(guī)讀寫操作。 |
| read | 只讀當(dāng)前數(shù)據(jù)庫的數(shù)據(jù)(查詢),無寫入權(quán)限。 | 只讀報(bào)表或數(shù)據(jù)分析。 |
二、創(chuàng)建超級管理員
1.開啟auth認(rèn)證
security:
authorization: enabled

開啟auth認(rèn)證后重新服務(wù)也是可以訪問,不過看不到數(shù)據(jù)表

2.關(guān)閉auth認(rèn)證創(chuàng)建root用戶
關(guān)閉auth認(rèn)證進(jìn)度終端, 在 admin 數(shù)據(jù)庫創(chuàng)建用戶
use admin
db.createUser({
user: "root",
pwd: "123456",
roles: [{ role: "root", db: "admin" }]
});
3.再次開啟auth認(rèn)證
下面的是使用root超級管理員登錄,可以查看所有數(shù)據(jù)庫,上面未用賬戶登錄無法查看

三、創(chuàng)建擁有所有數(shù)據(jù)庫查看權(quán)用戶
db.createUser({
user: "test1",
pwd: "123456",
roles: ["readAnyDatabase"]
})
嘗試新增數(shù)據(jù)會報(bào)錯,是因?yàn)橹挥兄蛔x權(quán)限,無法新增

四、創(chuàng)建只擁有某個數(shù)據(jù)庫所有權(quán)限用戶
db.createUser({
user: "test2",
pwd: "123456",
roles: ["dbOwner"]
})
連接時要指定數(shù)據(jù)庫,不然會報(bào)錯

連接成功后

總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MongoDB索引統(tǒng)計(jì)分析db.collection.stats()深度解讀與應(yīng)用方案
在MongoDB的索引管理中,數(shù)據(jù)驅(qū)動的決策是性能優(yōu)化的核心,本文將深度解析其輸出字段、實(shí)戰(zhàn)應(yīng)用場景及高級技巧,結(jié)合索引生命周期管理,助您實(shí)現(xiàn)90%+的索引效率提升,感興趣的朋友跟隨小編一起看看吧2026-03-03
利用MongoDB中oplog機(jī)制實(shí)現(xiàn)準(zhǔn)實(shí)時數(shù)據(jù)的操作監(jiān)控
MongoDB 的Replication是通過一個日志來存儲寫操作的,這個日志就叫做oplog,而下面這篇文章主要給大家介紹了利用MongoDB中oplog機(jī)制實(shí)現(xiàn)準(zhǔn)實(shí)時數(shù)據(jù)的操作監(jiān)控的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05
MongoDB固定集合(capped collection)的知識小結(jié)
固定集合指的是事先創(chuàng)建,并且大小固定的集合。下面這篇文章主要給大家總結(jié)介紹了MongoDB固定集合(capped collection)的知識,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10

