2013-01-26 10 views
9

स्पष्ट रूप से यह पूछने के लिए एक बहुत कठिन सवाल है क्योंकि, जैसा कि सरल है, कोई भी इसका उत्तर नहीं देता है।

मेरे पास पोस्टग्रेएसक्यूएल उबंटू 12.10 सर्वर (कोई जीयूआई) पर चल रहा है।

:

मेरा लक्ष्य - - मेरे सवाल का एक डेटाबेस नाम "mydb" और एक उपयोगकर्ता "व्यवस्थापक" ऐसा है कि मैं खोल से एक साधारण उपयोगकर्ता के रूप में इस आदेश को देने के लिए और डेटाबेस से कनेक्ट कर सकते हैं बनाने के लिए है

$ psql -U admin -d mydb

लेकिन मुझे इसका कहीं भी जवाब नहीं मिल रहा है।

$ sudo su -m postgres 
[email protected]:~$ psql 
psql (9.1.7) 
Type "help" for help. 

postgres=# 

मैं पता लगा है एक डेटाबेस नाम "mydb" और एक उपयोगकर्ता "व्यवस्थापक बनाने का तरीका:

मैं su'ing और psql आदेश चलाकर postgres उपयोगकर्ता के रूप में लॉग इन कर सकते व्यवस्थापक mydb "डेटाबेस" से जुड़ सकते हैं ":" ऐसी है कि

postgres=# \du 
Role name |     List of roles Attributes  | Member of 
-----------+------------------------------------------------ 
admin  | Superuser, Create role, Create DB    | {} 
postgres | Superuser, Create role, Create DB, Replication | {} 

मैं नहीं पता लगा कि कैसे सुनिश्चित करें कि उपयोगकर्ता करना है "- शायद किसी के साथ ऐसे विशेषाधिकारों की आवश्यकता नहीं है? [लिखे जाते समय, मुझे लगता है कि मैं शायद व्यवस्थापक से सुपर उपयोगकर्ता विशेषाधिकारों को रद्द कर देना चाहिए ध्यान दें।]

और क्या मैं सच में जानना चाहते हैं कि कैसे एक नियमित उपयोगकर्ता के खोल से कनेक्ट करने के लिए है:

$ psql -U postgres 
psql: FATAL: Peer authentication failed for user "postgres" 

रहे हैं postgreSQL चलाने के बारे में निश्चित रूप से अनजान धारणाएं जिन्हें मैं गलत समझ रहा हूं, लेकिन खोज के कुछ घंटों, ट्यूटोरियल्स को देखते हुए, समस्या ने हल नहीं किया है। अगर कोई कहता है कि इसका पहले से ही उत्तर दिया गया है, तो विशेष रूप से अगर यह है तो मैं पूरी तरह से खुश रहूंगा। मुझे लगता है और उम्मीद है कि जवाब सरल है और आपकी मदद की सराहना करता है।

धन्यवाद, जीई

उत्तर

8

त्रुटि संदेश से, यह है कि प्रमाणीकरण-सेटिंग्स ठीक से नहीं बनाए गए हैं लगता है।

डेटाबेस में सेटिंग्स के अलावा, PostgreSQL भी एक कॉन्फ़िगरेशन फ़ाइल (pg_hba.conf) का उपयोग करता है जो निर्दिष्ट करता है कि प्रति उपयोगकर्ता, होस्ट और डेटाबेस के लिए प्रमाणीकरण-तंत्र का उपयोग किया जा सकता है। केवल यह है कि उपयोगकर्ता के लिए अनुमति देते हैं, बशर्ते उसका है: आप निर्दिष्ट कर सकते हैं कि उपयोगकर्ताओं को केवल पासवर्ड/md5 पासवर्ड या यहाँ तक कि 'कोई प्रमाणीकरण आवश्यक' के माध्यम से कनेक्ट कर सकते हैं

वर्तमान में आपके विन्यास शायद सभी उपयोगकर्ताओं के लिए 'पीर' प्रमाणीकरण, जो सीधा सा अर्थ का उपयोग करता है लॉग-इन उपयोगकर्ता (उदाहरण के लिए आपके खोल-उपयोगकर्ता को 'व्यवस्थापक' भी कहा जाना चाहिए)। आपके प्रश्न से, यह नहीं है जो आप चाहते हैं, तो आप शायद पासवर्ड या एमडी 5 प्रमाणीकरण तंत्र का उपयोग करना चाहेंगे।

मुझे लगता है कि इन पृष्ठों आप इस सवाल का जवाब आप की जरूरत दे देंगे:

http://web.archive.org/web/20131001194046/http://blog.deliciousrobots.com/2011/12/13/get-postgres-working-on-ubuntu-or-linux-mint/ (संग्रहीत संस्करण)

आधिकारिक प्रलेखन:

http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html

pg_hba संशोधित करने के बाद PostgreSQL को फिर से लोड करना न भूलें। conf फ़ाइल!

अद्यतन

मूल ब्लॉग पोस्ट मैं करने के लिए भेजा है ऑफलाइन, लिंक अब संग्रहीत संस्करण को इंगित करता है। रिपोर्टिंग के लिए @O_the_Del के लिए धन्यवाद।

+0

धन्यवाद तुम बी बहुत। मुझे बाहर निकलना है, लेकिन जब मैं वापस आऊंगा तो आपके उत्तर और लिंक पर जाउंगा। – zabouti

+0

उम्मीद है कि यह काम करता है। PostgreSQL एक महान डेटाबेस है, लेकिन कुछ परिस्थितियों में काफी खड़ी सीखने की वक्र है – thaJeztah

+0

thaJeztah - मैं टिप्पणी में जो कुछ भी किया था उसे लिखने के लिए प्रतीत नहीं होता है, लेकिन मूल रूप से, आपकी सलाह काम करती है। बहुत बहुत धन्यवाद! – zabouti

5

डेबियन पर, PostgreSQL स्थानीय होस्ट पर डिफ़ॉल्ट रूप से सुनता है, तो आप pg_hba.conf में एक नियम है जो टीसीपी/आईपी कनेक्शन तो आप उस नियम से मेल करने के लिए -h पैरामीटर का उपयोग कर सकते हैं अनुमति देता है यदि:

psql -U admin -h localhost mydb 
संबंधित मुद्दे