अपने कॉन्फ़िगरेशन ( 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