डेटाबेस में अन्य सर्वर से पहुंच की अनुमति देने के लिए pg_hba.conf फ़ाइल को कॉन्फ़िगर करना


15

मेरे पास एक सर्वर पर एक पोस्टग्रेज डेटाबेस है और मुझे इसे दूसरे सर्वर से एक्सेस करने की आवश्यकता है।

मुझे pg_hba.conf फ़ाइल को संपादित करने की आवश्यकता है, लेकिन अब विचार करें कि इस फ़ाइल को संपादित करने के चरण क्या हैं। सर्वर सेंटोस

मुझे फ़ाइल में निम्न पंक्ति जोड़ने की आवश्यकता है

host    all         all         10.0.2.12         255.255.255.255   trust

मैं इसे में स्थित है var/lib/pgsql/data/

अब मूल रूप से मुझे यकीन नहीं है कि ऐसा करने के लिए सही कदम क्या हैं

जवाबों:


14

सबसे पहले दिए गए pg_hba.conf की बैकअप कॉपी लें

sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf

इस तरह से आपके पास पुराने संस्करण तैयार हैं यदि आप पेंच करते हैं। टार आर्काइव की एक अच्छी विशेषता यह है कि अनुमति और निर्देशिकाओं को सुरक्षित रखता है। तो जब मान्यता से परे pg_hba.conf टूट जाता है। आप ऐसा कर सकते हैं:

cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar

यह आपके द्वारा पहले बनाए गए संग्रह से बैकअप pg_hba.conf को पुनर्स्थापित करेगा।

लाइन के वास्तविक सम्मिलन के लिए:

sudo su -c 'echo "host    all         all         10.0.2.12         255.255.255.255   trust" >> /var/lib/pgsql/data/pg_hba.conf'

(नोट: कमांड संपादित। धन्यवाद bortzmeyer!)

करना चाहिए। ध्यान दें कि यह लाइन को pg_hba.conf में जोड़ता है। यदि आपको कभी इसे बदलने की आवश्यकता है तो आपको एक वास्तविक संपादक का उपयोग करना होगा। Vi की तरह। यह सीख रहा है कि वक्र थोड़ा कठोर हो सकता है, लेकिन जब आप कम से कम मूल बातें सीख लेते हैं, तो आपको अधिकांश हर यूनिक्स-पर्यावरण मुठभेड़ में काफी सुरक्षित होना चाहिए।

अब जब मैं वापस ट्रैक पर आ गया हूँ तो आपको अपने पोस्टग्रैक्स्ल डेटाबेस को पुनः आरंभ करने का प्रयास करना चाहिए। एक Centos मशीन पर मेरा मानना ​​है कि इसके द्वारा किया जाता है:

sudo service postgresql restart

या आप पुनः आरंभ के बिना विन्यास पुनः लोड कर सकते हैं:

su - postgres
pg_ctl reload

अब आपको 10.0.2.12 से अपने सेंटोस-मशीनों पोस्टग्रेजल डेटाबेस तक पहुंचने में सक्षम होना चाहिए


1
अंतिम आदेश में sudo काम नहीं करेगा क्योंकि निजीकृत ऑपरेशन एक पुनर्निर्देशन द्वारा किया जाता है, जिसे शेल द्वारा नियंत्रित किया जाता है, न कि उस प्रोग्राम से जिसे आप sudo (इको, इस मामले में) के साथ चलाते हैं।
bortzmeyer

अच्छी बात! इसे sudo "echo 'होस्ट के रूप में लिखा जाना चाहिए। सभी 10.0.2.12 255.255.255.255 ट्रस्ट' >> /var/lib/pgsql/data/pg_hba.conf"
pyhimys

आदर्श तरीका यह होगा कि इसे एक व्यवस्थापक स्थान में संस्करण नियंत्रण में रखा जाए और एसएसएच आदि के माध्यम से इसे बदलने के बाद इसे तैनात किया जाए
vfclists

1
Pg_hba.conf फ़ाइल का डिफ़ॉल्ट स्थान 9.4 में थोड़ा भिन्न है: /var/lib/pgsql/9.4/data/pg_hba.conf।
सेर्गेई वाल्लासोव

13

Postgresql.conf को संपादित करना और लाइन जोड़ना / बदलना न भूलें

listen_addresses = '*'

डिफ़ॉल्ट रूप से Postgresql लोकलहोस्ट पर सुनता है


क्या आपका list_addresses उदाहरण बहुत अधिक स्वीकार्य नहीं है? यह एक गैपिंग सुरक्षा छेद है, यदि सर्वर कई IP, यानी सार्वजनिक, आंतरिक, वीपीएन आदि पर
चलता है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.