8

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

4

2 回答 2

7

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

另一种选择是 CouchBase 同步网关 ( http://docs.couchbase.com/sync-gateway/ ) 它使用相同的 CouchDB API,但您需要使用 Couchbase 作为服务器端 DB 而不是 CouchDB。

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

于 2014-05-28T15:50:40.230 回答
4

目前在 PouchDB/CouchDB 中处理私有用户数据的最佳实践是在服务器端为每个用户提供自己的数据库。我在这里有一些关于如何执行此操作的说明。

于 2014-05-27T15:40:32.730 回答