如何仅向共享数据库中的特定用户显示文档?

时间:2017-09-07 12:16:52

标签: security database-design couchdb ionic3 pouchdb

我正在管理一个使用Ionic 3.x,PouchDB,CouchDB和运行Superlogin的node.js服务器的多用户应用程序。该应用程序正在稳步增长,我想介绍一个新功能。

我的应用拥有普通用户和超级用户。 我的应用程序中的每个普通用户和超级用户都拥有自己的用户数据库。 还有一个共享数据库,我们称之为generaldb。

这是我的问题: 两个用户都可以创建文档。这些文档同步到userdb以及常规db。除其他外,这些文件具有关键字(例如“颜色”:“绿色”)。超级用户可以访问特定密钥。 (在上面的例子中,这意味着有5个超级用户可以访问密钥绿色。)

现在,普通用户不应该能够在generaldb上阅读,更新或写入其他用户的文档。 超级用户应该能够根据他们可以访问的密钥读取,更新或写入generaldb中的文档。但不应允许他们更改与其密钥不匹配的文档。

  1. 如何限制generaldb中普通用户的访问权限,以便只将自己创建的文档同步到他们的设备,以便他们无法更改其他用户文档?
  2. 我如何确保超级用户可以更改普通用户的文档,只要他们能够访问正确的密钥?
  3. 如何确保超级用户无法更改自己的密钥,以便在完成编号2后,他们无法手动处理系统?
  4. 我的一个想法是只允许用户访问他们自己的数据库,并且只有超级用户可以访问共享数据库,然后将userdb的过滤复制到共享数据库。但这只能解决1并且效率非常低。

    非常感谢任何帮助!

0 个答案:

没有答案