MongoDB 用户角色不限制访问

MongoDB User Roles not restricting access

我刚开始学习 MongoDB,我已经 运行 遇到了一个小问题。对于某些背景,我将 Jetbrain 的 Webstorm 与 Mongo 插件一起使用。

现在,让我解释一下我的问题。

我还没有任何用户,我还在本地数据库中。然后我执行了以下命令

 use admin
 db.createUser({
     user: "testRead",
     pwd: "password",
     roles: ["read"]
 })

所以现在我在管理数据库中,我创建了一个名为 "testRead" 的用户,具有一个角色:阅读。该用户应该只能执行此 link 中指定的命令:http://docs.mongodb.org/manual/reference/built-in-roles/。但它可以在我的程序中做更多事情。

创建用户后(见上文),我使用 Ctrl + C 停止了服务器。然后我使用 mongod 命令从 CMD 重新启动它。

从 Webstorm 回到控制台后,我执行了以下命令:

 db.auth("testRead", "password")

所以现在我是 "signed in" 的 "testRead" 用户帐户,其唯一角色是 "read"。然后我测试了一下。

我尝试了以下命令:

 db.test.insert({
      name: "test"
 })

记住,它不应该能够做到这一点,所以我期待一个错误或什么的,但它完美地工作并返回了这个...

 WriteResult({ "nInserted" : 1 })

这到底是怎么回事?

首先在mongo中创建一个关闭授权的管理员用户,以便您可以在授权打开时执行创建用户等操作。 http://docs.mongodb.org/manual/tutorial/enable-authentication-without-bypass/

然后在您的 mongo 实例中使用命令行上的 --auth 或将其添加到您的配置文件 http://docs.mongodb.org/manual/reference/configuration-options/#security.authorization 并重新启动 mongo [=13] =]