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] =]
我刚开始学习 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] =]