क्या मैं pg_hba.conf में समान PostgreSQL स्थानीय उपयोगकर्ता के लिए सहकर्मी और md5 दोनों प्रमाणीकरण सक्षम कर सकता हूं?


14

मैं एक PostgreSQL (सुपर) उपयोगकर्ता को "पीयर" या "md5" प्रमाणीकरण विधियों के साथ प्रमाणित करने देना चाहूंगा, अधिमानतः दोनों मामलों में स्थानीय यूनिक्स डोमेन सॉकेट का उपयोग करना। समस्या यह है कि pg_hba.conf मामलों में प्रविष्टियों का क्रम, और पहला मैच लागू किया जाएगा।

जो मेरे पास है:

# TYPE    DATABASE   USER      ADDRESS   METHOD
  local   all        harold              peer
  local   all        all                 md5

मुझे क्या करना चाहिए (अमान्य सिंटैक्स):

# TYPE    DATABASE   USER      ADDRESS   METHOD
  local   all        harold              peer-or-md5
  local   all        all                 md5

यहां पर्यावरण के बारे में कुछ और विवरण दिए गए हैं, जिनका हम इसमें उपयोग करना चाहते हैं:

इस विशेष सर्वर पर, सभी डेटाबेस अपेक्षाकृत छोटे होते हैं (<10MB डेटा प्रत्येक) और विशुद्ध रूप से केवल-पढ़ने के लिए। उन्हें हर रात हेरोल्ड सुपरयुजर द्वारा गिराया और फिर से बनाया जाता है। हेरोल्ड एक सिस्टम खाता भी है, इसलिए "सहकर्मी" पासवर्ड रहित क्रोनोजर आदि के लिए अच्छी तरह से काम करता है फिर डेटाबेस तक पहुँचने वाला एक वेब इंटरफ़ेस है: यह md5 प्रमाणीकरण का उपयोग करता है (सिस्टम उपयोगकर्ता वेबसर्वर, स्नातकोत्तर उपयोगकर्ता नाम, पासवर्ड और डीबी नाम द्वारा आपूर्ति की जाती है) आगंतुक)। अब मैं हेरोल्ड उपयोगकर्ता को वेब इंटरफेस पर लॉग इन करने देना चाहूंगा। हेरोल्ड के लिए "सहकर्मी" सेटिंग के कारण यह विफल हो जाता है।

वर्तमान वर्कअराउंड का उपयोग करते हुए webinterface को TCP से कनेक्ट करने देना है

# TYPE    DATABASE   USER      ADDRESS        METHOD
  host    all        all       127.0.0.1/32   md5
  host    all        all       ::1/128        md5

पहले उदाहरण में स्थानीय प्रविष्टियों के अलावा। यह काम करता है, लेकिन मैं यहां भी स्थानीय सॉकेट्स का उपयोग करूंगा - प्रदर्शन के लिए और एक आंत भावना के कारण ऐसा लगता है कि ऐसा करना सही है।

क्या यह संभव है? क्या हमारे लिए कोई बेहतर वर्कअराउंड है?

जवाबों:


10

एक समान StackOverflow प्रश्न के अनुसार , उत्तर नहीं है, आप एक ही प्रकार, डेटाबेस, उपयोगकर्ता और पते के लिए दो प्रकार के प्रमाणीकरण को सक्षम नहीं कर सकते।

StackOverflow प्रश्न .pgpassउपयोगकर्ता के होम डायरेक्टरी में फ़ाइल का उपयोग करने और md5 प्रमाणीकरण का उपयोग करने की सलाह देता है , लेकिन मुझे यकीन नहीं है कि यह क्रोन नौकरियों के लिए काम करेगा।


यह काम करेगा अगर क्रोनजोब उसी उपयोगकर्ता से है जिसके पास अपने होम डायरेक्टरी में .pgpass है।
आंद्रेई मिखलत्सोव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.