Couchdb 我如何在复制过程中过滤数据,并仅向用户提供他自己的文档?

Couchdb 我如何在复制过程中过滤数据,并仅向用户提供他自己的文档?,couchdb,replication,pouchdb,Couchdb,Replication,Pouchdb,我需要从客户端的CouchDB和PockDB同步服务器数据。每个用户都有自己的数据。当他在线时,此数据正在更新。我如何在复制过程中过滤数据,并仅向用户提供他自己的文档?这对我来说是一个安全问题。目前在PockDB/CouchDB中处理私有用户数据的最佳实践是在服务器端为每个用户提供自己的数据库。我有一些关于如何做到这一点的说明。在您开始拥有大量用户(数千)之前,为每个用户提供一个单独的数据库是很好的,因为每个用户都需要在文件系统中拥有自己的数据库文件。根据我的经验,这会在操作系统级别造成资源问题

我需要从客户端的CouchDB和PockDB同步服务器数据。每个用户都有自己的数据。当他在线时,此数据正在更新。我如何在复制过程中过滤数据,并仅向用户提供他自己的文档?这对我来说是一个安全问题。

目前在PockDB/CouchDB中处理私有用户数据的最佳实践是在服务器端为每个用户提供自己的数据库。我有一些关于如何做到这一点的说明。

在您开始拥有大量用户(数千)之前,为每个用户提供一个单独的数据库是很好的,因为每个用户都需要在文件系统中拥有自己的数据库文件。根据我的经验,这会在操作系统级别造成资源问题,并使CouchDB不稳定。如果您想进行分片并使用BigCoach,问题会更严重,因为分片会创建多个文件副本

另一种选择是CouchBase sync gateway(),它使用相同的CouchDB API,但需要将CouchBase用作服务器端数据库,而不是CouchDB

另一种选择是将CouchDB与过滤复制和每个用户的不同DB用户一起使用。这可能还不够,因为使用过滤复制,您无法避免有人直接访问数据库。因此,您需要将其与像HAProxy这样的反向代理解决方案相结合,以确保每个用户只访问自己的过滤数据