在mongo中创建用户,可以插入读取角色

时间:2017-07-22 12:01:42

标签: mongodb function authentication

我已在mongo中为此数据库创建了一个只有读访问权限的用户, 但是当我登录robomongo时,我可以在test2数据库中插入甚至创建新的集合

有什么不对吗?

use test2
db.createUser(
   {
     user: "user",
     pwd: "123",
     roles: [ "read"]
   }
)

1 个答案:

答案 0 :(得分:2)

我的猜测是您尚未在mongod上启用身份验证。  您必须先启用身份验证,然后才能根据用户权限限制用户。来自documentation(强调我的):

  

在MongoDB部署上启用访问控制会强制执行身份验证,要求用户标识自己。 访问启用了访问控制的MongoDB部署时,用户只能执行由其角色确定的操作。

因此,如果您向--auth添加mongod标记并启动它,当您通过RoboMongo或shell或其他任何地方连接时,您的用户将只能在{{{ 1}}(以及test2授予访问权限的其他系统数据库)。请注意,您可能希望在使用read标志运行之前创建该文档中指定的管理员用户,假设您希望在剩余的时间内保持该标志处于活动状态#&# 39;重新运行--auth