在mongodb中区分数据库级别的用户

时间:2014-05-14 14:15:02

标签: mongodb

在基于mongodb的应用程序中,我想在数据库级别区分用户(普通用户和管理员)与管理员(应用程序的自定义用户)(意味着只有一个登录按钮,无论用户类型如何)这样当搜索集合中的管理器(其中包含所有用户,无论是普通用户,管理员,管理员)都可以进行搜索。

我可以得到使用mongodb角色的要点,我们可以做到。但是没有以适当的方式得到我们是否真的可以通过这种方式或任何其他方法。

请指点。提前致谢

2 个答案:

答案 0 :(得分:1)

为什么不在用户集合中添加用户类型字段(常规,管理等)

或者,如果用户可以属于多个角色,我会添加角色集合来指定每个用户的角色。

答案 1 :(得分:0)

在申请方面

在您的用户集合中有一个名为role的字段。

拥有单独的角色集合,对于每个角色,您可以指定权限。

因此,当用户登录时,请参考用户角色并相应地处理。

就DB而言

在您的mongodb设置中,首先是不同的角色,如下所示

db.runCommand({ 
  createRole: "manager",
  privileges: [
    { resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] },
    { resource: { db: "", collection: "" }, actions: [ "find" ] }
  ],
  roles: [
    { role: "read", db: "admin" }
  ],
  writeConcern: { w: "majority" , wtimeout: 5000 } // you can avoid if not a pro
})

// mention the resources and actions inside privileges

在创建用户时将此角色添加到用户。

因此,当用户登录时,他只能执行允许的操作

有关详细信息,请参阅MongoDocs