我刚开始学习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 })
到底发生了什么事?
答案 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