mongodb – 我的只读用户可以写

我正在使用MongoDB 3.0.7.我有一个名为bravegoat的数据库和一个名为bravegoat-r的只读用户.

我通过shell连接:

mongo localhost:27017/bravegoat -u bravegoat-r -p mypassword

我切换到我的数据库:

use bravegoat;

我跑:

db.runCommand({connectionStatus : 1})

哪个输出:

{
        "authInfo" : {
                "authenticatedUsers" : [
                        {
                                "user" : "bravegoat-r",
                                "db" : "bravegoat"
                        }
                ],
                "authenticatedUserRoles" : [
                        {
                                "role" : "read",
                                "db" : "bravegoat"
                        }
                ]
        },
        "ok" : 1
}

只读取角色,所以它看起来很好,但是当我调用.save()时,我的用户可以插入数据.我已经阅读了几篇关于创建只读用户的页面,但我无法看到我的问题.我开始认为它可能是我的版本中的一个错误.

最佳答案 您必须通过执行以下操作来启用客户端访问控制:

>编辑/etc/mongod.conf文件
>添加以下行

安全:
    授权:已启用

>重启MongoDB:

sudo服务mongodb重启

点赞