2015-08-15 102 views
0

MongoDB的新手,試圖弄清楚權限是如何工作的。從遠程主機連接到MongoDB時驗證錯誤

我的PHP代碼連接到蒙戈就好:

# mongo -u admin -p password admin 
MongoDB shell version: 3.0.5 
connecting to: admin 

然而,嘗試使用相同的來自其他遠程主機連接到蒙戈:

$mongo = new MongoClient('mongodb://admin:[email protected]'); 
return $mongo->selectDB('admin'); 

我還可以從外殼做到這一點憑據(Windows,在這種情況下)的結果爲:

無法通過機制驗證admin @ admin MONGODB-CR:Authent icationFailed MongoDB的-CR憑證的用戶文檔

在缺少我想配置Robomongo管理工具來管理MongoDB實例。

顯然,我已經允許通過更新IP綁定指令來連接到Mongo服務器。

看起來像「admin」用戶不允許從本地主機以外的主機連接 - MySQL具有完全相同的參數。

問題:我如何允許admin用戶從盒子外面連接?

謝謝!

回答

0

所以這就是我不得不做的。

  1. 刪除所有現有的管理員用戶。

  2. 要配置認證機制,請啓動mongodb,無需授權:「已啓用」。然後:

蒙戈管理

從蒙戈外殼:

var schema = db.system.version.findOne({"_id" : "authSchema"}) 
schema.currentVersion = 3 
db.system.version.save(schema) 
db.createUser(
{ 
    user: "admin", 
    pwd: "password", 
    roles: [ "root" ] 
} 

,並授權重新啓動: 「啓用」。

相關問題