前言
最近在生產(chǎn)環(huán)境中MongoDB已經(jīng)使用有一段時間了,但對于MongoDB的數(shù)據(jù)存儲一直沒有使用到權限訪問(MongoDB默認設置為無權限訪問限制),最近在酷殼網(wǎng)看了一篇技術文章(https://coolshell.cn/?s=從+MONGODB+“贖金事件”+看安全問題from=timelineisappinstalled=0)介紹的mongodb未開啟權限認證導致數(shù)據(jù)被黑客竊取,要比特幣贖回的事件,考慮到數(shù)據(jù)安全的原因特地花了一點時間研究了一下,我現(xiàn)在用的版本是MongoDB3.4.2,在Linux系統(tǒng)上進行的驗證,我在win8上也是類似操作方式開啟。
和其它數(shù)據(jù)庫一樣,權限的管理都差不多一樣。
但不同的是mongodb的用戶是跟數(shù)據(jù)庫相關聯(lián)的,具體的數(shù)據(jù)庫,還是需要有對應的用戶,也就是說哪怕是超級管理員也不能操作其他數(shù)據(jù)庫的。
mongodb存儲所有的用戶信息在admin 數(shù)據(jù)庫的集合system.users中,保存用戶名、密碼和數(shù)據(jù)庫信息。
mongodb默認不啟用授權認證,只要能連接到該服務器,就可連接到mongod。若要啟用安全認證,需要更改配置文件參數(shù)--auth。
下面來介紹下開啟權限認證的步驟。
一、非授權方式創(chuàng)建用戶
1、先以非授權方式(即不帶--auth參數(shù))登錄創(chuàng)建系統(tǒng)管理員用戶

2、進入到mongodb的安裝bin目錄下

3、客戶端登錄

4、切換到admin數(shù)據(jù)庫

5、為admin數(shù)據(jù)庫創(chuàng)建用戶了

6、查看用戶
使用db.system.users.find()命令就可以查看我們剛剛創(chuàng)建的用戶了

最后將殺掉mongodb進程,以授權方式啟動

二、授權方式啟動
1、添加--auth參數(shù)授權啟動

2、登錄并切換到admin數(shù)據(jù)庫

3、再查看數(shù)據(jù)庫,會發(fā)現(xiàn)沒有權限

這時就是使用db.auth('hehaitao','hehaitao')啟用auth認證
會看到返回的值為1,這就表示啟動成功了,然后我們再使用命令查看數(shù)據(jù)庫

發(fā)現(xiàn)就可以使用查看了
總結
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- MongoDB 3.0+安全權限訪問控制詳解
- MongoDB安全及身份認證(實例講解)
- Java開發(fā)之spring security實現(xiàn)基于MongoDB的認證功能
- 關于Mongodb 認證鑒權你需要知道的一些事
- Mongodb 3.2.9開啟用戶權限認證問題的步驟詳解
- mongodb 3.4下遠程連接認證失敗的解決方法
- 淺析MongoDB之安全認證