我的只读用户可以写

Ori*_*Rio 5 mongodb

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

我通过外壳连接:

mongo localhost:27017/bravegoat -u bravegoat-r -p mypassword
Run Code Online (Sandbox Code Playgroud)

我切换到我的数据库:

use bravegoat;
Run Code Online (Sandbox Code Playgroud)

我跑:

db.runCommand({connectionStatus : 1})
Run Code Online (Sandbox Code Playgroud)

哪些输出:

{
        "authInfo" : {
                "authenticatedUsers" : [
                        {
                                "user" : "bravegoat-r",
                                "db" : "bravegoat"
                        }
                ],
                "authenticatedUserRoles" : [
                        {
                                "role" : "read",
                                "db" : "bravegoat"
                        }
                ]
        },
        "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*rin 2

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

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

security: authorization: enabled

  1. 重新启动 MongoDB:

sudo service mongodb restart