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

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

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

連接成功后

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

