अपने कॉन्फ़िगरेशन ( Ubuntu 10.04.3और PostgreSQL 8.4) पर, मैं अंत में इसे काम करने के लिए प्राप्त कर सकता हूं जब मैं जिस उपयोगकर्ता नाम से लॉग इन करता हूं वह उसी तरह होता है जैसे मैं उस .pgpassफ़ाइल के लिए पासवर्ड प्राप्त करने की कोशिश कर रहा हूं ।
लॉग इन के रूप में deployer, मैं .pgpassएक उपयोगकर्ता नाम के स्वामित्व वाले डेटाबेस तक पहुंचने के लिए फ़ाइल का उपयोग करने की कोशिश कर रहा था appname, जिसमें कोई यूनिक्स उपयोगकर्ता समकक्ष नहीं है। मैं .pgpassकाम नहीं कर सका , जब तक कि मैंने deployerअपने डेटाबेस तक पहुंचने के लिए उपयोगकर्ता के रूप में उपयोग करना शुरू नहीं किया ...
यहाँ मेरी /home/deployer/.pgpassफ़ाइल सामग्री है:
*:*:*:deployer:password
यहाँ एक हिस्सा है /etc/postgresql/8.4/main/pg_hba.conf:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 192.168.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
जैसा कि आप देख सकते हैं, मेरे सभी कनेक्शनों को पासवर्ड ( md5) की आवश्यकता होती है ।
इस कॉन्फ़िगरेशन के साथ, यह मानते हुए कि मेरे पास एक डेटाबेस है जिसे मैंने इस कमांड के साथ बनाया है:
deployer@ubuntu-server:~$ createdb -T template0 -O deployer -E UTF8 dbname
मैं पासवर्ड दर्ज किए बिना निम्नलिखित ऑपरेशन करने में सक्षम हूं:
deployer@ubuntu-server:~$ dropdb dbname
जैसे ही मैं अपने का नाम बदलने के रूप में .pgpassकरने के लिए .pgpass-no, यह एक पासवर्ड की आवश्यकता होगी।
BTW, यह मत भूलो कि आपकी .pgpassफ़ाइल 0600अनुमतियों के तहत होनी चाहिए :
deployer@ubuntu-server:~$ ls -la .pgpass
-rw------- 1 deployer staff 24 2012-01-06 17:29 .pgpass
-Uकरने के लिए ध्वजdropdbऔरcreatedb