我在Google云平台App Engine上部署了一个Mean堆栈实例。我可以打开一个ssh隧道并从webbrowser查看rockmongo: http://127.0.0.1:8888/rockmongo/index.php?action=admin.index&host=0
我可以使用App Engine的root和默认密码登录。当我去添加一个新的数据库时,它说它成功了,但没有在列表中显示新的数据库。我创建了一个新用户,它显示了该用户。当我通过mongo命令登录时,我可以切换到我的新数据库但是当我尝试查找集合中的所有项目时,我收到一条错误,表明用户未被授权执行该操作。
db.getCollection('用户&#39)。发现({}) 错误:错误:{ " OK" :0, " ERRMSG" :"未授权在newdatabase上执行命令{find:\" users \",filter:{}}", "代码" :13 }
我将readWrite角色添加到用户并再次尝试,没有运气。当我执行db.getUser(" username")时,它返回" null"。
我错过了什么......
答案 0 :(得分:1)
想出来,我不得不:
以root 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" } ]
}
)
然后错误就消失了。与bitnami和rockmongo相比,mongo角色和权限更是一个问题。还不确定为什么rockmongo从未在php管理界面显示新数据库(所有这些都是通过mongo命令行完成的)。