PouchDB / CouchDB

时间:2015-05-18 04:49:53

标签: security couchdb access-control pouchdb

我希望使用PouchDB - CouchDB来保存我的Web应用程序的用户数据,但无法找到一种方法来控制每个用户的访问权限。我的数据库只包含使用用户ID作为密钥的文档。我知道有一些解决方案:

  1. 每个用户一个数据库 - 但是,无论何时新用户想要保存数据以创建新数据库,都需要监控,并且可能会创建大量数据库;

  2. 客户端和CouchDB之间的代理 - 但是我不希望PouchDB同步整个数据库的更改,包括那些_all_docs,_revs_diff请求中其他用户的文档。

  3. pouchDB的用户访问控制是否有任何建议,用户群约为100万(活跃用户只有1万左右)?

1 个答案:

答案 0 :(得分:3)

过去,a million or more databases的主题出现在邮件列表中。结论是,它取决于您的操作系统如何处理这么多文件。 CouchDB只是在请求时访问.couch文件的一部分。性能与它查找,打开,访问和关闭该文件的速度有关。

某些文件系统有一些技巧,例如在数据库名称中放置/分隔符 - 这将导致CouchDB将它们存储在匹配的目录结构中,例如groupA/userA.couch或使用电子邮件样式的数据库名称{ {1}}(或类似的)。

如果这还不够,Apache CouchDB 2.0会引入BigCouch代码(IBM Cloudant使用)来提供完全自动分片的CouchDB。它尚未完成,但它将使用Amazon Dynamo样式分片系统在多个节点之间提供可扩展性。

另一个选择是在多个CouchDB服务器之间进行基于用户名的分区,或者使用IBM Cloudant(为此级别构建)。

所有这些选项都提供相同的Apache CouchDB复制协议,并且可以正常使用位于用户计算机,手机或平板电脑上的PouchDB。

用户的设备将拥有自己的数据库+/- any share databases。这些百万用户设备上的应用程序只能关注自己内容(即硬盘空间)的可扩展性。该应用程序将直接复制到“云”侧用户数据库以进行备份,Web使用等。

希望那里的东西听起来很有希望。 :)