2016-09-20 4 views
1

私はCouch DBをデータのマスタDBとして使用しています。クライアント側でPouch DBインスタンスをインストールしました。今、私はマスターからクライアントにデータを同期したいと思いますが、クライアントはデータをサーバに同期させる権限を持たないようにしてください。Couch DBで一方向の同期を実現する方法

私は、Pouch/Couch Dbにdbの片面複製がありますが、未知のクライアントによるCouch dbの意図的な誤用を制限しないことを知っています。 (どのユーザーも私のCouch DBインスタンスのAPIにアクセスして害を及ぼすことがあります)。

注:クライアントの認証システムはありません。

答えて

0

一つ粗製の方法は、(例えば、nginxの)リバースプロキシの背後のCouchDBを入れて、データベースのすべてPOSTPUTPATCHDELETE要求をブロックするリバースプロキシを設定することであろう。

+0

これはうまくいく可能性があります。しかし、これにはよりクリーンなソリューションがありますか? – kartik

+0

更新ハンドラを使用できます。これにより、アプリケーションから発生する変更を防ぐことができますが、本当に必要な場合には、サーバー上のDBに変更を加えることを防ぐことはできません。これを行うための「ネイティブ」な方法はありません(認証がないと仮定して)。 – Kul

1

中央集権のCouchDBの検証関数を考えてみましょうが、ここで説明:http://docs.couchdb.org/en/2.0.0/couchapp/ddocs.html#validate-document-update-functions

validatefun(newDoc, oldDoc, userCtx, secObj)

を例外:優雅文書の保存を防止するためのforbiddenエラーを。 ...

設計文書が無効または不正な文書更新に保存されているから の要求を防ぐために使用することができるvalidate_doc_update という名前の関数が含まれていてもよいです。

関連する問題