Mongo 在特定数据库中插入数据的数据库权限?

Mongo DB privileges to insert data in a specific database?

我正在努力让我的 MongoDB 容器与身份验证一起工作。

我创建了一个数据库,并在该数据库上创建了一个具有 dbAdmin 角色的用户。但似乎这个角色不足以将数据插入数据库,因为当我 运行 一个填充我的数据库的脚本时,我收到这种错误消息:

error: not authorized on mydb to execute command { insert: "attachs", documents: 59, writeConcern: { getLastError: 1, w: 1 }, ordered: false }

所以我想我需要为我的用户添加一些其他权限,但我不知道缺少哪些权限。

db.createUser({
          user : "root",
          pwd : "root",
          roles : ["readWrite", "dbAdmin"]

});

您可以使用 readWrite 创建角色。它会起作用。

要添加到上述答案中,对于现有用户,您可以使用 db.grantRolesToUser() 命令为其分配 readWrite 角色。例如

use test
db.grantRolesToUser("user1", [ "readWrite"] )

以上授予用户 1 对测试数据库的读写角色。最近写了一篇step by step tutorial如何给角色和角色赋予用户权限。可能会有用。