Mongodb 蒙古银行未被授权进行db.eval

Mongodb 蒙古银行未被授权进行db.eval,mongodb,mlab,Mongodb,Mlab,首先,我为我的本地mogodb服务器尝试了db.eval(),它工作正常 然后我用MongoLab做了同样的尝试,但是我得到了这个错误信息 错误为未被授权执行命令。您能否解释此错误消息的原因。谢谢评估是一个强大、危险且不推荐的操作,mLab不会给出 在本地mongo db中,您应该创建一个角色: use admin db.createRole( { role: "dangerEval", privileges : [ { resource: {anyRes

首先,我为我的本地mogodb服务器尝试了db.eval(),它工作正常

然后我用MongoLab做了同样的尝试,但是我得到了这个错误信息


错误为未被授权执行命令。您能否解释此错误消息的原因。谢谢评估是一个强大、危险且不推荐的操作,mLab不会给出

在本地mongo db中,您应该创建一个角色:

use admin
db.createRole(
   {
     role: "dangerEval",
     privileges : [
       { resource: {anyResource: true }, actions : ["anyAction"] },
       // or this for grant anyAction only on a single db:
       { resource: {db: "myDb", collection: "" }, actions: [ "anyAction" ] }
     ],
     roles: []
   }
)
然后,您可以将此角色分配给用户:

db.createUser({
    user: "temporaneyEvalUser",
    pwd: "psw",
    roles: [ { role: "dangerEval", db: "myDb" } ]
});

因此,您必须选择另一种方式来归档您的目标或更改mongo安装。

对于MongoLab来说,这确实是一个更好的问题,但由于需要完全的管理员权限,您似乎不太可能有权在非专用服务器上运行此命令。另外值得注意的是,MongoDB 3.0不推荐使用底层数据库。事实上,我想对每个功能执行一系列应用程序数据库操作。我认为这将产生巨大的流量,因此需要将所有操作封装到一个js函数中,如存储过程。是否有其他解决方案