具有dbAdmin角色的数据库用户可以进行评估

时间:2014-04-07 13:07:29

标签: mongodb

我的数据库有自己的用户设置,现在我想要评估某些功能,例如:

function() {
    db.mydatabase.ensureIndex(<fields>, <options>);
}

但是这种情况永远不会奏效,我会收到未经授权的错误。

但是用户已经过授权和身份验证。如果现在,我将无法连接。 用户还具有dbAdmin角色集,我认为版本2.4及更高版本需要它。

我尝试使用管理员用户登录,但除非您登录管理数据库本身,否则无法使用。

这是&#39; mydatabase&#39;:

的用户
{
    "_id" : ObjectId("534290d2bfeb13f0b91d52d3"),
    "user" : "myuser",
    "pwd" : "blabla",
    "roles" : [ 
        "read", 
        "readWrite", 
        "dbAdmin", 
        "userAdmin", 
        "clusterAdmin", 
        "readAnyDatabase", 
        "readWriteAnyDatabase", 
        "userAdminAnyDatabase", 
        "dbAdminAnyDatabase"
    ]
}

1 个答案:

答案 0 :(得分:1)

您可以在编程中使用 eval 的概念涵盖here和重要here

短点是:

  • 您需要特殊权限才能使用该命令,并考虑到您无法在分片群集上执行此操作。

  • 从第二个链接可以在实例启动时显式禁用它。因此,托管服务提供商默认情况下可以在设置中执行此操作。

虽然eval在&#34中有一些有效的用法,但是从监狱出来&#34;有意识地解决特定的&#34;一次性&#34;在改变收集格式时,应该不鼓励生产环境中的一般用法。

第二个链接所示,在生产环境中运行时,请搜索使用 eval 表单的其他替代方法。如果你坚持实际这样做,就会出现严重的问题。