2016-12-05 137 views
1

我在谷歌雲平臺App Engine上部署了平均堆棧實例。我可以打開一個SSH隧道,並從網絡瀏覽器查看rockmongo: http://127.0.0.1:8888/rockmongo/index.php?action=admin.index&host=0谷歌雲平臺上的平均堆棧RockMongo

我可以從App Engine以root和默認密碼登錄。當我去添加一個新的數據庫時,它說它已經成功,但不會在列表中顯示新的數據庫。我創建一個新用戶並顯示該用戶。當我通過mongo命令登錄時,我可以切換到新數據庫,但是當我嘗試查找集合中的所有項目時,出現用戶無權執行該操作的錯誤。

db.getCollection('users').find({}) Error: error: { "ok" : 0, "errmsg" : "not authorized on newdatabase to execute command { find: \"users\", filter: {} }", "code" : 13 }

我將readWrite角色添加到用戶,並再次嘗試,沒有運氣。當我做一個db.getUser(「用戶名」)時,它返回「null」。

我失去了什麼......

回答

1

想通了,我只好:

登錄爲根bitnami用戶

use admin 
db.createUser({ user: "newusername", 
       pwd: "newpassword", 
       roles: [ "userAdminAnyDatabase","readWriteAnyDatabase" ]}) 

然後

use newdatabase 
        db.createUser(
     { 
     user: "newuser", 
     pwd: "newpassword", 
     roles: [ { role: "readWrite", db: "newdatabase" } ] 
     } 
    ) 

則錯誤消失了。 mongo角色和權限的問題比bitnami和rockmongo更多。仍然不知道爲什麼rockmongo從來沒有從php管理界面顯示新的數據庫(所有這些都是通過mongo命令行完成的)。