MongoDB用户角色不限制访问

时间:2015-07-12 22:57:02

标签: mongodb mean-stack

我刚开始学习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 })

到底发生了什么事?

1 个答案:

答案 0 :(得分:0)

首先在授权关闭的情况下在mongo中创建管理员用户,以便您可以执行操作,例如在启用授权时创建用户。 http://docs.mongodb.org/manual/tutorial/enable-authentication-without-bypass/

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