पासवर्ड बदलने के बाद PostgreSQL उपयोगकर्ता सर्वर से कनेक्ट नहीं हो सकता है


10

मैं इसे 4 भूमिकाओं के साथ मिला हूं जिन्हें मैंने बनाया था:
GUI (1) का उपयोग करके pgAdmin III में एक उपयोगकर्ता के लिए पासवर्ड बदलने के बाद, वह उपयोगकर्ता किसी भी अधिक लॉग इन नहीं कर सकता है।
pgAdmin III त्रुटि संदेश दिखाता है:

An error has occurred:

Error connecting to the server: FATAL:  password authentication failed for user "sam"
FATAL:  password authentication failed for user "sam"

मेरी प्रणाली: Ubuntu 12.04 पर Postgresql 9.2

क्या इसको ठीक करने का कोई तरीका है?

(1): अकाउंट पोस्टग्रेज के साथ लॉगिन करें, लॉगिन रोल्स में राइट क्लिक करें, टैब पर जाएं 'परिभाषा' और पासवर्ड दर्ज करें

जवाबों:


15

यह संभव है कि आप इस PgAdmin बग ( चैंज ) द्वारा काटे जा रहे हैं :

2012-11-28 एवी 1.16.1 डेट पिकर नियंत्रण डिफ़ॉल्ट रूप से एक पूर्ण टाइमस्टैम्प लौटाता है, जो नौकरियों पर अनजाने तिथि परिवर्तन और वैधता तिथियों की भूमिका का कारण बन सकता है। समय भाग की उपेक्षा करें।

इस बग को पासवर्ड एक्सपायरी की तारीखों को पहले से निर्धारित करने के लिए देखा गया है, जैसे कि 1/1/1970। इस मामले में कनेक्ट करने का प्रयास करते समय त्रुटि संदेश गलत पासवर्ड से अलग नहीं है।

आप इन समाप्ति तिथियों की जाँच कर सकते हैं:

SELECT usename,valuntil FROM pg_user;

और अगर वे गलत हैं, तो उन्हें रीसेट करें:

ALTER USER username VALID UNTIL 'infinity';

और pgAdmin को अपग्रेड करें।


आपका बहुत बहुत धन्यवाद! इससे समस्या हल हो गई। जब भी मैं उपयोगकर्ता का पासवर्ड रीसेट करता हूं, pgAdmin 01-01-1970 तक के लिए मान्य होता है, ताकि उपयोगकर्ता किसी भी तरह लॉग इन न कर सके।
काओ मिन्ह तू

आपको यह मिला! लानत कीड़े
कार्टर कोल

मैं वास्तव में psql में लॉग इन कैसे करूं ??? यही भूमिका मैंने अभी-अभी अपडेट की है।
ericpeters0n

1
@ ericpeters0n: इस खाते के लिए अस्थायी रूप से प्रमाणीकरण विधि को trustया फ़ाइल peerमें स्विच करें pg_hba.conf
डैनियल वेत्रे

धन्यवाद, मिल गया। जो लोग बाद में आते हैं, उनके लिए "विश्वास" का अर्थ है: एक बार जब आप पोस्टग्रेट्स को फिर से शुरू करते हैं, तो आप पासवर्ड प्रमाणीकरण के बिना psql चला सकते हैं यदि आप एक विशेषाधिकार प्राप्त उपयोगकर्ता (जैसे उपयोगकर्ता नाम 'पोस्टग्रेज') के समान नाम के उपयोगकर्ता हैं। तो, 'su - postgres psql' आपको पासवर्ड या मान्य तिथि को लॉग इन करने और सही करने की अनुमति देगा।
ericpeters0n

3

सरल बात यह है कि psql या pgAdmin के साथ लॉग इन करें और

ALTER USER sam WITH PASSWORD 'new_password';

अब, यदि आप एक सुपरयूज़र खाते से लॉग इन नहीं कर सकते हैं तो आप इस उपयोगकर्ता के लिए pg_hba.conf सेटिंग्स को बदलकर पुनर्प्राप्त कर सकते हैं और कॉन्फ़िगरेशन को फिर से लोड कर सकते हैं (कभी-कभी मुझे लगता है कि इसके लिए सर्वर को पुनरारंभ करने की आवश्यकता है, लेकिन यह निश्चित नहीं है कि क्यों)।

आप जो कुछ भी कर सकते हैं वह एक पंक्ति है जो आपको पहचान (9.2 में सहकर्मी) विधि का उपयोग करके लॉग इन करने की अनुमति देता है (यदि आप उपयोगकर्ता के रूप में उसी नाम के स्थानीय सिस्टम खाते का उपयोग कर सकते हैं) उपयोगकर्ता के लिए, या (यदि यह संभव नहीं है) "विश्वास" (बहुत अस्थायी रूप से!) पर सेट करें। यदि विश्वास का उपयोग कर रहे हैं, तो जितनी जल्दी हो सके वापस सेट करें, क्योंकि इसका मतलब है "भरोसा करें कि उपयोगकर्ता वह है जो वह दावा करता है!" और फलस्वरूप यह सेटिंग तत्काल रिकवरी जरूरतों के बाहर सक्षम छोड़ने के लिए खतरनाक है।

एक बार लॉग इन करने के बाद आप पासवर्ड को ऊपर रीसेट कर सकते हैं।


नहीं चाहिए pgAdmin सिर्फ एक ही आदेश प्रदर्शन?
dezso

(नोटिंग मैंने कहा psql या pgAdmin। मैं इसे और अधिक स्पष्ट करने के लिए क्या कर सकता हूं?)
क्रिस ट्रैवर्स

नहीं-नहीं, मैंने सोचा था कि जीयूआई में पासवर्ड बदलना सिर्फ एक ही है। अगर ऐसा होता है तो मैं सोच भी नहीं सकता कि क्या गलत हो सकता है?
dezso

क्या गलत हो सकता था? शुरुआत के लिए पासवर्ड में टाइप करें ....
क्रिस ट्रैवर्स

क्या एक बार पासवर्ड को पोस्टग्रेज के रूप में लॉग इन करने के बाद फिर से सेट नहीं किया जा सकता है?
dezso

2

विंडोज वेरिएंट के लिए - मुझे भी इस नॉटी बग का अनुभव हुआ क्योंकि मेरे विंडोज x64 के संस्करण 9.2 के लिए pgAdmin की वजह से। इसने मेरे उत्पादन को पंगु बना दिया।

फ़ोल्डर में C:\Program Files\PostgreSQL\9.2\dataया C:\Program Files (x86)\PostgreSQL\9.**x**\data, आपको pg_hba.conf टेक्स्ट फ़ाइल मिलेगी

निम्नलिखित पंक्तियाँ खोजें:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

और METHOD md5 को "ट्रस्ट" में इस तरह बदलें:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

से Windows>Runप्रकार "services.msc" और [दर्ज] सही PostgreSQL उदाहरण खोजने के लिए और उसे पुन: प्रारंभ।

आपकी DB सुरक्षा अब खुली हुई है! सभी प्रासंगिक उपयोगकर्ताओं के लिए वर्ष 2099 कहने के लिए उपयोगकर्ता पासवर्ड समाप्ति समय बदलने के बाद इसे वापस md5 पर वापस करने की चेतावनी दें।


1

यदि आपने पहले से यह कोशिश नहीं की है, तो अपनी pg_hba.conf फ़ाइल की समीक्षा करें। इसे कुछ नाम दिया जाएगा जैसे /var/lib/pgsql/9.3/data/pg_hba.conf (फेडोरा 20); इसका पता लगाने के लिए आपको 'खोज / -नाम pg_hba.conf' का उपयोग करना पड़ सकता है।

फ़ाइल के निचले भाग में, स्थानीय परीक्षण के लिए 'METHOD' के मानों को 'विश्वास' में बदलें (देखें कि किसी अन्य के लिए डॉक्स पोस्ट करता है)। यह सुनिश्चित करने के लिए मशीन को रिबूट करें कि सब कुछ साफ शुरू हो गया है और नए पैरामेट्स पढ़े गए हैं।

उम्मीद है कि यह आपके संकटों को ठीक करेगा। इसने मेरी समस्याओं को Fedg 20 पर PostgreSQL 9.3 के साथ हल किया।

अद्यतन 2016-10-14:

उबंटू पर, आवश्यक फ़ाइल नाम है /etc/postgresql/9.5/main/pg_hba.confकेवल स्थानीय परीक्षण के लिए , इसे इस तरह से देखने के लिए संशोधित करें:

...
#
# Database administrative login by Unix domain socket
local   all             postgres                                peer

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
# local   all             all                                     peer
  local   all             all                                     trust
# IPv4 local connections:
# host    all             all             127.0.0.1/32            md5
  host    all             all             127.0.0.1/32            trust

METHOD "ट्रस्ट" के साथ दो लाइनें नई हैं। वे आपको उपयोगकर्ता नाम / पासवर्ड के बिना कनेक्ट करने की अनुमति देते हैं।

जब पूरा हो जाए, तो आपको सर्वर को फिर से चालू करना होगा:

sudo systemctl restart postgresql 

के लिए pg_hba.confप्रभावी करने के लिए, आप केवल एक बार पुनः लोड, नहीं पुन: प्रारंभ करने की जरूरत है। इसके अलावा, आपका सुझाव अधूरा लगता है क्योंकि यह स्पष्ट नहीं है कि यह अंत में मुद्दे को कैसे हल करेगा।
dezso

1

मेरे पास बस यही समस्या थी और यह पता चला कि मेरे पास एक ही नाम (अलग-अलग मामलों) वाले कई उपयोगकर्ता थे। एक बार जब मैंने स्वामित्व को विलय कर दिया और एक को हटा दिया, तो यह कम से कम स्पष्ट था। कनेक्शन की विधि के आधार पर, प्रमाणीकरण के लिए मामला आवश्यक रूप से स्थानांतरित नहीं किया गया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.