如何在MongoDB中创建仅对特定数据库具有读写访问权限的用户?

grz*_*988 6 mongodb mongodb-security

我已经通过 shell 创建了用户:

use testDB
db.createUser({user: 'testUser', pwd: 'password', roles: ["readWrite"]})
Run Code Online (Sandbox Code Playgroud)

但用户也可以查看和修改另一个数据库(例如管理员)。我已经检查过db.runCommand({connectionStatus : 1}),“testUser”已记录在会话中。

如何为特定数据库创建具有读写权限的用户?

Vin*_*are 6

您可以在管理数据库命名空间中执行所有用户维护。因此,对于您的情况,您可以从 mongo shell 运行以下命令:

use admin

db.createUser({
  user: "testUser",
  pwd: "password",
  roles: [
    { role: "readWrite", db: "<your_database>" }
  ]
})
Run Code Online (Sandbox Code Playgroud)

更多详细信息可以在 MongoDB 文档中找到: https://docs.mongodb.com/manual/reference/method/db.createUser/