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



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

有什么问题吗?

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

我的猜测是你还没有在mongod上启用身份验证。 您必须先启用身份验证,然后才能根据用户权限限制用户。 来自文档(强调我的(:

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

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

最新更新