在CouchDB上实施访问控制

时间:2013-01-31 19:44:35

标签: android mobile couchdb replication touchdb

我一直在研究CouchDB和TouchDB,并认真考虑它们是否适合我想到的移动应用程序。我有几个问题,如果有人能指出我正确的方向,我真的很感激。方案是我在TouchDB上运行了2个移动客户端。我希望移动客户端A能够将特定文档复制到移动客户端B.然后我希望移动客户端B能够进行更改并将这些更改同步回移动客户端A.从架构的角度来看,我认为我需要一个集中的couchdb数据库,两个客户端都可以拉/推。我遇到的问题是如何确保客户端B只能复制他授权复制的文档。我知道我可以使用复制过滤器来限制复制的文档,但如何在Mobile Client B上强制执行?对于上述场景,理想的架构是什么?任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我在EC2(集中式数据库)中使用TouchDB和BigCouch进行了类似的设置。让推拉工作正确起来可能是一次冒险。 =)

我认为你使用具有拉力的复制过滤器是正确的。如果您使用复制过滤器限制客户端B的拉动,那么您的生活很可能会更容易,因为客户端B可以修改其本地TouchDB上的任何内容,并且不会对任何内容造成任何伤害。

换句话说,不要复制您不希望客户B修改的文档。

为此,您必须在文档中引入一个指定访问级别的字段 - 或者某个数组可能包含客户B的用户ID。这样他只能看到他有权看到的东西。

在我忘记之前的两个注释:a)Android上的TouchDB现在很粗略。他们正在努力使其变得更好,但它落后于iOS版本。 b)我强烈建议您在Erlang中编写复制过滤器。这样做我的速度提高了50%。