2016-12-05 124 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命令行完成的)。