2012-05-21 4 views
5

विशेष रूप से, फ़िल्टर किए गए प्रतिकृति को PouchDB के साथ किया जा सकता है? मैं यह सुनिश्चित करना चाहता हूं कि क्लाइंट फ़िल्टर को छोड़ नहीं सकता है और इस प्रकार पूरे डेटाबेस के खिलाफ सिंक हो सकता है।क्या सीचडीबी के फ़िल्टर किए गए प्रतिकृति का उपयोग केवल उपयोगकर्ता के लिए एसीएलड डेटा के सबसेट को दोहराना संभव है?

उत्तर

5

कोई कॉच डीबी प्रतिकृति "प्रोटोकॉल" नहीं है। प्रतिकृति प्रक्रिया केवल एक ग्राहक है जो दो कोच डीबी एंडपॉइंट्स से जुड़ती है, एक से दस्तावेज़ पढ़ती है, और उन्हें दूसरे में लिखती है। बेशक, कॉच डीबी इस तरह के एक ग्राहक ("प्रतिकृति") के साथ आता है; लेकिन अवधारणा यह एक तीसरे पक्ष के आवेदन है।

इसका मतलब क्या है, आप अपने आवेदन के अपने सुरक्षा विश्लेषण से प्रतिकृति को हटा सकते हैं। सबसे पहले अपने वेब सर्वर को पढ़ने और लिखने के लिए सामान्य वेब क्लाइंट पर विचार करें। इसे बंद करो। आप एक हैक किए गए वेब ब्राउज़र के साथ एक कल्पित विरोधी, या कस्टम HTTP क्लाइंट का उपयोग कर सकते हैं (जो उदाहरण के लिए क्रॉस-मूल नीतियों का सम्मान नहीं करता है)।

उस समस्या के हल होने के साथ, प्रतिकृति, आवश्यकता से, आपकी सुरक्षा नीति का पालन करेंगी।

दूसरे शब्दों में, PouchDB और CouchDB के बीच नकल:

  • आप दूरस्थ सर्वर से धक्का कर रहे हैं, तो अपने सुरक्षा उपकरण रिमोट validate_doc_update कार्य है।
  • यदि आप दूरस्थ सर्वर से खींच रहे हैं, तो आपका सुरक्षा उपकरण डेटाबेस _security ऑब्जेक्ट है - विशेष रूप से "members" सरणी। एक ग्राहक या तो पूरी तरह से डेटाबेस पढ़ सकता है, या बिल्कुल नहीं। बेशक, आप सर्वर पक्ष पर विशेष उपयोग डेटाबेस में फ़िल्टर की गई प्रतिकृतियां बना सकते हैं।
+0

यह मेरी धारणा थी कि आप सीधे कॉच डीबी का पर्दाफाश नहीं करेंगे (जितना आप सीधे MySQL या किसी अन्य डेटा स्टोर का पर्दाफाश नहीं करेंगे), बल्कि कुछ प्रकार के पास-थ्रू एंडपॉइंट को लागू करेंगे। लेकिन जब आप कहते हैं कि कोई कॉच डीबी "प्रोटोकॉल" नहीं है तो मैं थोड़ा उलझन में हूं? मैं समझता हूं कि इसका मतलब तीसरे पक्ष के ग्राहक के रूप में कार्य करने का क्या मतलब है, लेकिन मेरी धारणा यह होगी कि पाउचडीबी की प्रतिकृति अनिवार्य रूप से प्रोटोकॉल के रूप में उस व्यवहार का इलाज करके इंटरऑप प्राप्त कर रही है, या क्या मुझे अभी भी कुछ याद आ रही है? –

+1

हाँ, आप सही हैं। मेरी टिप्पणी एक आकस्मिक है, क्रिस्टल स्पष्ट होने के लिए नहीं। बेशक, दोहराने के लिए एंडपॉइंट्स के बीच एक कठोर बातचीत है: एक प्रोटोकॉल। लेकिन अच्छी बात यह है कि यह वार्तालाप बस एक क्लाइंट कनेक्टिंग और सामान्य अपडेट कर रहा है। प्रतिकृति के लिए कोई जादू आउट ऑफ़ बैंड चैनल नहीं है। मैं वैचारिक मॉडल का वर्णन यहां थोड़ा और करता हूं: http://stackoverflow.com/questions/4766391/what-is-the-couchdb-replication-protocol-is-it-like-git – JasonSmith

+0

कोचडीबी वास्तव में सीधे प्रकट होने के लिए डिज़ाइन किया गया है उपयोगकर्ताओं के लिए, एक ऐप सर्वर की तरह। बेशक, कई लोग इसे पारंपरिक 3-स्तरीय मॉडल में भी सफलतापूर्वक उपयोग करते हैं (जैसे MySQL)। उपयोगकर्ताओं को उजागर करने का निर्णय नीचे आता है कि क्या आप कोच डीबी के उपयोगकर्ताओं और प्रमाणीकरण मॉडल के साथ काम कर सकते हैं। यह या तो एक जीवन बचतकर्ता है (यदि आपका ऐप उस मॉडल के साथ फिट बैठता है) या एक सौदा ब्रेकर (यदि यह नहीं करता है) – JasonSmith

संबंधित मुद्दे

 संबंधित मुद्दे