2011-03-24 11 views
47

के लिए रिक्त पासवर्ड सेट करें मैं postgresql कमांड 'createuser myusername' का उपयोग करता हूं। यह हमेशा पासवर्ड के लिए मुझे संकेत देता है। अगर मैं पासवर्ड खाली छोड़ देता हूं तो यह एक त्रुटि देता है कि कोई पासवर्ड निर्दिष्ट नहीं है।PostgreSQL उपयोगकर्ता

मैं बस रिक्त/पासवर्ड वाला उपयोगकर्ता बनाना चाहता हूं और मैक ओएस एक्स के तहत पोस्टग्रेस्क्ल 9 के साथ ऐसा करने में सक्षम नहीं हूं।

उपयोगकर्ता को कोई पासवर्ड नहीं बनाने के लिए मुझे क्या कदम उठाने चाहिए। आदेश हमेशा मुझे पासवर्ड दर्ज करने के लिए कहता है।

उत्तर

52

आप createuser के साथ इसे ठीक करने का प्रयास कर रहे गलत पेड़ को भड़क रहे हैं। यदि आप man पेज createuser के लिए पेज की जांच करना चाहते हैं तो यह आपको बताएगा कि अगर आपको वास्तव में पासवर्ड चाहिए और सेट-नो-पासवर्ड सेट करना है तो लॉगिन विफल हो जाएगा। createuser वास्तव में सिर्फ एक उपयोगकर्ता बनाता है। यह तय करता है कि उपयोगकर्ता को प्रमाणीकरण कैसे करना होगा।

प्रमाणीकरण मुख्य रूप से pg_hba.conf में संभाला जाता है, जो यह तय करता है कि लॉगिन पर पासवर्ड की आवश्यकता है या नहीं। मैं ओएस एक्स लिनक्स पर पर PostgreSQL चलाने कभी नहीं किया है, मेरे distro के शेयर conf इस तरह दिखता है:

# TYPE DATABASE  USER   CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all    all          ident 
# IPv4 local connections: 
host all    all    127.0.0.1/32   trust 
# IPv6 local connections: 
host all    all    ::1/128     trust 

मुझे यकीन है कि आप विकास के लिए उपयोग करने के लिए पहली पंक्ति की तरह कुछ है होगा। नोट: यदि कोई --host विकल्प सेट नहीं है तो यूनिक्स सॉकेट से कनेक्ट करने का प्रयास करेगा। दूसरी लाइन का उपयोग किया जाएगा यदि आप psql --host localhost

+1

मैक ओएस एक्स या लिनक्स बॉक्स पर pg_hba.conf फ़ाइल का स्थान कहां है? – othman

+2

उबंटू के लिए, आप इसे '/ etc/postgresql/9.0/main/pg_hba.conf' (PostgreSQL 9.0 के लिए) पर पा सकते हैं। – jmonteiro

+4

ओएस एक्स 10.6.8 के लिए, आप इसे '/ लाइब्रेरी/पोस्टग्रेएसक्यूएल/8.3/डेटा/pg_hba.conf' पर पा सकते हैं। ध्यान दें कि यह 'पोस्टग्रेस' उपयोगकर्ता के स्वामित्व में है, इसलिए आपको इसे संपादित करने के लिए 'su postgres'' की आवश्यकता होगी। – Chris

28

कोई उपयोगकर्ता पासवर्ड नहीं बनाने के बजाय, .pgpass file को स्वचालित रूप से आपूर्ति करने के लिए पासवर्ड के साथ बनाएँ। यह उन सभी अनुप्रयोगों द्वारा सम्मानित किया जाएगा जो कनेक्ट करने के लिए libpq का उपयोग करते हैं, जो वास्तव में जेडीबीसी ड्राइवर और .NET ड्राइवर को छोड़कर उनमें से सभी हैं।

+1

+1 पीजीपास ऐसा करने का तरीका है। –

5

पीजी उपयोगकर्ता के लिए उपयोगकर्ता का पासवर्ड बदलने के लिए अतिरिक्त तरीका (मैं इसे प्रीफ़ेयर करता हूं) पोस्टग्रेस कंसोल में लॉग इन करना है (postgres उपयोगकर्ता को स्थानीय पीसी पर), और एसक्यूएल अनुरोध जारी करें:

$ sudo -u postgres psql -w 

# ALTER USER postgres WITH PASSWORD ''; 
+0

पता होना चाहिए, यदि सर्वर को सर्वर की आवश्यकता हो तो यह खाता अक्षम कर सकता है पासवर्ड! – 0atman

+1

मेरे लिए काम नहीं करता है। त्रुटि: psql: fe_sendauth: कोई पासवर्ड प्रदान नहीं किया गया – Romulus

+0

@Romulus क्या आपने सिस्टम उपयोगकर्ता 'postgres' के लिए पहले पासवर्ड सेट किया है? आपको '-w' यानी' psql -w' –