2017-08-25 120 views
1

我遇到了問題,本地連接到我的vps上的mongodb。 VPS已經安裝了Ubuntu 14.這些是香港專業教育學院所採取的步驟:mongodb本地連接到vps數據庫

  1. 註釋規則在/etc/mongod.conf
    • #bind_ip = 127.0.0.1
    • 重啓蒙戈過程service mongod restart
  2. 加入規則來防火牆,以便它接受連接:
    • MongoDB中
  3. 的用戶:

    use admin 
    db.createUser({ 
        user: 'myuser', 
        pwd: 'mypassword', 
        roles: ['userAdminAnyDatabase', 'dbAdminAnyDatabase'] 
    }) 
    

我讀到這說明,如果您創建上述方法的用戶將是管理員用戶的所有數據庫的文章,但在現實中,我只能成功連接到admin db。如果我嘗試連接到其他mydb數據庫,則會引發錯誤Authorization fails

此連接的工作原理:

mongo.connect('mongodb://myuser:[email protected]:27017/admin',function(err, db) { 

這一個犯規:

mongo.connect('mongodb://myuser:[email protected]:27017/mydb',function(err, db) { 

我如何添加用戶MONGO所以它將允許帶mydb連接?創建與它按預期工作上面的語法用戶後

use mydb 
db.createUser({ user: 'myuser', pwd: 'mypassword', roles: ['readWrite'] }) 

+1

因爲'* AdminAnyDataBase'角色確實允許「管理」功能(例如授予權限),但實際上並沒有其他任何東西,所以您可能實際上需要再次閱讀「角色」頁面。所以你的「應用程序」真的想要一個「readWrite」或類似的東西,並且它也想知道你准許哪個數據庫命名空間。當前應用的角色不使用數據庫名稱空間,因此實際上只應用對管理帳戶信息的「admin」數據庫的訪問權限。所以如果你想要不同的訪問,那麼你實際上需要設置它。目前你還沒有。 –

+0

謝謝你的提示;) – Mevia

回答

0

確定我只是研究和測試了一些解決方案,這個解決了這個問題。