MongoDB读取所有集合,仅写入一个

时间:2018-12-14 10:36:57

标签: mongodb

我正在尝试创建一个只能访问一个数据库的数据库用户。 在该数据库上,用户可以:

  • 读任何东西
  • 仅插入一个集合中(不能删除或更新)

这是我所做的:

db.createRole(
   {
     role: "readAnyOnlyAndInsertHistory",
     privileges: [
       { resource: { db: "testDB", collection : "" }, actions: [ "find" ] },
       { resource: { db: "testDB", collection: "history" }, actions: [ "insert" ] },
     ],
     roles: []
   }
);

db.createUser({ user: "toto", pwd: "toto", roles: [{ role: "readAnyOnlyAndInsertHistory", db: "testDB" }]});

在此示例中,用户只能访问testDB。它可以在所有集合中找到,但只能插入历史记录中。

但是我可以做我想做的...切换数据库,删除和更新其他集合。

你有什么主意吗?

> db.runCommand({connectionStatus : 1})
{
        "authInfo" : {
                "authenticatedUsers" : [
                        {
                                "user" : "toto",
                                "db" : "admin"
                        }
                ],
                "authenticatedUserRoles" : [
                        {
                                "role" : "readAnyOnlyAndInsertHistory",
                                "db" : "testDB"
                        }
                ]
        },
        "ok" : 1
}

0 个答案:

没有答案