2017年下半年新發(fā)布的MongoDB 3.6版本在安全性上做了很大提升,主要?dú)w結(jié)為兩點(diǎn):
1.將bind_ip 默認(rèn)值修改為了localhost;
2. 在db.createUser()
和 db.updateUser()
中添加了authenticationRestrictions 參數(shù),可以用來控制Client端發(fā)來的請(qǐng)求源IP以及請(qǐng)求的Server端指定IP。
以下說明和測試主要是針對(duì)第一點(diǎn)。
以前的版本默認(rèn)Mongo服務(wù)啟動(dòng)后,使用Server IP 可以直接登入,但是3.6 已將服務(wù)啟動(dòng)bind_ip的默認(rèn)值限定為localhost。
因此,即使在Local Server使用ServerIP登入也會(huì)報(bào)錯(cuò)。
<圖1>
只能使用localhost登入
<圖2>
修改方式,修改conf 配置文件,調(diào)整bind_ip參數(shù),將本地IP賦予此參數(shù)。賦予后使用Server IP登入可以,但此時(shí)使用localhost 失敗。為了同時(shí)兼容2種登入方式,將參數(shù)的賦值調(diào)整為:
bind_ip=localhost,172.XXX.XXX.XXX
中間使用登號(hào)隔開。
<圖3>驗(yàn)證說明采用上述參數(shù)配置后2種登入方式都可以。
<圖3>
說明:(1) 如果不想做IP限制,可以將bind_ip 賦值為0.0.0.0 或者 在配置文件中啟用另外一個(gè)參數(shù)bind_ip_all,將其設(shè)置為true。
以上兩種設(shè)置都可以滿足localhost登入和指定ServerIP登入。 當(dāng)指定bind_ip_all參數(shù)時(shí),配置文件中可以沒有bind_ip參數(shù)。
(2)登入默認(rèn)的數(shù)據(jù)庫不同。在3.6 版本,默認(rèn)的連接數(shù)據(jù)庫變成了test,而3.4/3.2 版本默認(rèn)是admin庫。所以,在設(shè)置具有root權(quán)限的管理員賬號(hào)時(shí),請(qǐng)先轉(zhuǎn)至admin下操作(因?yàn)橘~號(hào)的查詢,系統(tǒng)只有在admin才可以查詢,所以root權(quán)限的賬號(hào),建議在admin庫創(chuàng)建,用戶數(shù)據(jù)庫的賬號(hào),轉(zhuǎn)到用戶數(shù)據(jù)庫下創(chuàng)建)。賬號(hào)的刪除一定要在歸屬庫下刪除。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答