MongoLab未获得db.eval授权

时间:2015-04-20 09:33:07

标签: mongodb mlab

首先我为我的本地mogodb服务器尝试了db.eval()。它运行正常。我使用this example

然后我用MongoLab尝试了同样的事情。但是我收到了这条错误消息。enter image description here

错误说无权执行命令。您能解释为什么会出现此错误消息。谢谢

1 个答案:

答案 0 :(得分:0)

Eval是一种强大的,危险的,已弃用的行为,但毫升不会给予它。

在本地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安装。