【问题标题】:MongoDB User Roles not restricting accessMongoDB 用户角色不限制访问
【发布时间】:2015-10-01 03:05:27
【问题描述】:

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

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

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

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

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

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

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

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

所以现在我“登录”到唯一角色是“读取”的“testRead”用户帐户。然后我测试了它。

我尝试了以下命令:

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

记住,它不应该这样做,所以我期待一个错误或什么,但它运行良好并返回了这个......

 WriteResult({ "nInserted" : 1 })

这到底是怎么回事?

【问题讨论】:

  • 您是否为您的数据库开启了身份验证?

标签: mongodb mean-stack


【解决方案1】:

首先在mongo中创建一个admin用户,关闭授权,这样你就可以在授权开启时执行创建用户等操作。 http://docs.mongodb.org/manual/tutorial/enable-authentication-without-bypass/

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2021-08-27
    • 2012-10-25
    • 1970-01-01
    • 2012-12-27
    • 2019-01-06
    • 2016-12-08
    相关资源
    最近更新 更多