2017-02-27 30 views
0

我有一個用戶角色:{role: 'root', db:'admin'}應該有權訪問我的mongo實例中的所有數據庫。我在node.js中使用mongoskin與mongo進行交互。我的問題是它沒有正確訪問我的數據庫。如果我通過驗證如何正確驗證mongo中有權訪問多個數據庫的用戶?

mongodb://owner:[email protected]:27017/mydatabase 

它只是給我MongoError: Authentication failed。如果我不是權威性與:

mongodb://owner:[email protected]:27017/admin 

它驗證,但我不能訪問mydatabase

這裏是我的連接代碼:

var connection = mongoskin.db("mongodb://owner:[email protected]:27017/admin", {journal:true, auto_reconnect:true}) 

我認爲因爲我訪問管理數據庫存在,這是它與交互的唯一的一個。於是,我就做那麼這樣做:

var mydatabaseConnection = connection.db('mydatabase') 

但是,當我使用,我的應用程序沒有返回結果的查詢上,我知道有數據集合。我在這裏做錯了什麼?如何讓此用戶訪問admin以外的數據庫?

回答

1

好的,所以我發現mongoskin的db方法根本行不通。最後,我被迫從我的代碼庫中徹底刪除mongoskin。真正的答案是不要使用mongoskin。

MongoClient.connect("mongodb://owner:[email protected]:27017/admin", {journal: true, auto_reconnect:true}).then(function(db) {  
    console.log("Connected!") 

    var mydb = db.db('mydatabase') 

    var User = mydb.collection('User') 
    return User.find({}).toArray().then(function(users) { 
     console.log(users) 
     db.close()   
    }) 
}).catch(function(e) { 
    console.log(e.stack) 
}) 

此代碼與蒙戈本地合作

相關問題