2017-05-14 137 views
0

我已經啓用了security.authorization設置在/etc/mongod.conf匿名用戶可以連接到MongoDB中與security.authorization啓用

security: 
    authorization: enabled 

但我仍然能夠連接到蒙戈外殼無需提供憑據。

mongo 

啓用security.authorization似乎執行上的數據庫訪問控制和匿名用戶似乎並沒有能夠執行任何操作,如列表數據庫和/或集合。

我試圖在/etc/mongodb.conf文件中啓用身份驗證,但這似乎沒有任何效果,我仍然可以匿名連接。

auth = true 

如何將mongo shell設置爲要求身份驗證,以便阻止匿名連接。

回答

1

mongodb中的授權模式不像mysql那樣工作。 它會阻止非授權用戶或匿名用戶讀取或寫入數據庫,但不會禁止用戶連接到您的數據庫。

匿名用戶將始終能夠連接自己,但無法做任何事情。

如果要阻止來自未知用戶或服務器的連接,可以啓用net.bindIp parameter以僅允許選定的IP連接到您的數據庫。

+0

bindIp已經設置爲本地主機,我很驚訝沒有辦法阻止anonymouse連接。 – ryansin

+0

@Sinfieldd如果bindIp已設置您的數據庫是完全安全的。是的,我發現與簡單系統(如mysql)相比,mongodb授權非常糟糕。我想他們想要做得更好,但是... –

+0

無論如何,我正在考慮切換到Neo4j,感謝這裏的幫助 – ryansin