Mongodb 在mongo中创建的具有读取角色的用户可以插入

Mongodb 在mongo中创建的具有读取角色的用户可以插入,mongodb,function,authentication,Mongodb,Function,Authentication,我在mongo中为该数据库创建了一个只读用户, 但当我登录robomongo时,我可以在test2数据库中插入甚至创建新集合 有什么问题吗 use test2 db.createUser( { user: "user", pwd: "123", roles: [ "read"] } ) 我猜您尚未在mongod上启用身份验证。 您必须先启用身份验证,然后才能根据用户权限限制用户。从(我的)重点: 在MongoDB部署上启用访问控制将强制执行身份验证,要

我在mongo中为该数据库创建了一个只读用户, 但当我登录robomongo时,我可以在test2数据库中插入甚至创建新集合

有什么问题吗

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

我猜您尚未在
mongod
上启用身份验证。 您必须先启用身份验证,然后才能根据用户权限限制用户。从(我的)重点:

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


因此,如果您将
--auth
标志添加到您的
mongod
并启动该标志,当您通过RoboMongo或shell或其他任何地方进行连接时,您的用户将只能对
test2
进行读取访问(以及
read
授予访问权限的其他系统数据库)。请注意,在使用
--auth
标志运行之前,您可能希望按照该文档中的指定创建管理员用户,假设您希望在运行
mongod

的剩余时间内保持该标志处于活动状态,感谢您在阅读和测试了大量创建多个角色和用户的方法以及3天内的试错方法后回答了我的问题,节省了我的时间。干杯!我忘了我没有在复制集的所有成员上启用