मुझे 12.10 पर चलने वाले DigitalOcean पर एक VPS पर एक रिमोट मशीन से एक पोस्टग्रैसक्ल डेटाबेस को एक्सेस करने की आवश्यकता है और 9.1 9.1 पोस्टग्रेजेकल।
मैं यह कैसे करु? मैंने देखा कि पोर्ट 5432 बंद है, मैं इसे कैसे खोलूं?
मुझे 12.10 पर चलने वाले DigitalOcean पर एक VPS पर एक रिमोट मशीन से एक पोस्टग्रैसक्ल डेटाबेस को एक्सेस करने की आवश्यकता है और 9.1 9.1 पोस्टग्रेजेकल।
मैं यह कैसे करु? मैंने देखा कि पोर्ट 5432 बंद है, मैं इसे कैसे खोलूं?
जवाबों:
पोर्ट को खोलने के लिए 5432 अपना संपादन करें /etc/postgresql/9.1/main/postgresql.conf
और बदलें
listen_addresses='localhost'
सेवा
listen_addresses='*'
और अपना DBMS पुनः आरंभ करें
invoke-rc.d postgresql restart
अब आप से जुड़ सकते हैं
$ psql -h hostname -U username -d database
यदि आप स्वयं को प्रमाणित करने में असमर्थ हैं, तो आपको अपने उपयोगकर्ता को अपने डेटाबेस पर अधिकार प्रदान करने की आवश्यकता है
अपने को संपादित करें
/etc/postgresql/9.1/main/pg_hba.conf
और जोड़
host all all all md5
(यह एक विस्तृत खुली पहुंच के लिए है। सख्त नियंत्रण के लिए, pg_hba.conf प्रलेखन से परामर्श करें और अपनी आवश्यकताओं के अनुसार समायोजित करें)।
इसके बाद आपको पुनः लोड करने की भी आवश्यकता है
invoke-rc.d postgresql reload
मुझे यह उल्लेख करने की आवश्यकता नहीं है कि यह एक बुनियादी विन्यास है, अब आपको अपने फ़ायरवॉल को संशोधित करने और अपने DBMS की सुरक्षा में सुधार करने के बारे में सोचना चाहिए।
host <database> <user> <remote_client_IPaddress>/24 md5
यह अब काम नहीं करता है, अगर यह कभी किया:
सभी को होस्ट करें * md5
इसके लिए सही संभावित रेखाएँ हैं:
सभी को 0.0.0.0/0 md5 # ipv4 रेंज होस्ट करें
सभी को होस्ट करें :: 0/0 md5 # ipv6 रेंज
सभी सभी md5 #all ip को होस्ट करें
host all all all md5
ठीक काम करेगा? यह सही है? कोई सुरक्षा समस्या?
सर्वोच्च मतदान और स्वीकृत उत्तर में गंभीर सुरक्षा-आवेग होते हैं। यह विधि डिफ़ॉल्ट रूप से अच्छे कारणों से अक्षम है।
स्थानीय पोर्ट अग्रेषण का बेहतर उपयोग करें ssh
:
ssh -L local_port:localhost:foreign_port user@server
पोर्ट अग्रेषण प्रारंभ करें:
ssh -L 5432:localhost:5432 user@your-server.com
#or
ssh -L 5432:127.0.0.1:5432 user@your-server.com
(अपने कॉन्फ़िगरेशन को फिट करने के लिए स्थानीय और विदेशी पोर्ट बदलें)।
फिर आप अपने स्थानीय कंप्यूटर से डेटाबेस से सीधे जुड़ सकते हैं:
psql -U db_user -p local_port -l