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

2、進(jìn)入到mongodb的安裝bin目錄下

3、客戶(hù)端登錄

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

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

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

最后將殺掉mongodb進(jìn)程,以授權(quán)方式啟動(dòng)

二、授權(quán)方式啟動(dòng)
1、添加--auth參數(shù)授權(quán)啟動(dòng)

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

3、再查看數(shù)據(jù)庫(kù),會(huì)發(fā)現(xiàn)沒(méi)有權(quán)限

這時(shí)就是使用db.auth('hehaitao','hehaitao')啟用auth認(rèn)證
會(huì)看到返回的值為1,這就表示啟動(dòng)成功了,然后我們?cè)偈褂妹畈榭磾?shù)據(jù)庫(kù)

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