उपयोगकर्ता पोस्टग्रेज के लिए पासवर्ड की आवश्यकता को हटा दें


46

मैं समझता हूं कि स्थापना के बाद, PostgreSQL के पास अपने db रूट उपयोगकर्ता (पोस्टग्रेज) के लिए कोई पासवर्ड नहीं है:

postgres=# select usename, passwd is null from pg_shadow;
 usename  | ?column? 
----------+----------
 postgres | t
(1 row)

... और एक को इसके साथ सेट करने की सलाह दी जाती है:

alter role postgres password '<<very-secret>>';

(और फिर pg_hba.confतदनुसार फाइल अपडेट करें )

मेरा प्रश्न है: उपयोगकर्ता के लिए कोई पासवर्ड की आवश्यकता नहीं होने पर पिछली स्थिति में वापस जाने के लिए SQL का उपयोग करने के लिए क्या है postgres

सामान्य तौर पर, मैं किसी भी भूमिका के लिए पासवर्ड की आवश्यकता को कैसे हटा सकता हूं? मैं यह नहीं पूछ रहा कि पासवर्ड कैसे बदला जाए, बल्कि पासवर्ड की आवश्यकता को कैसे दूर किया जाए ( passwdतालिका में अशक्त स्तंभ pg_shadow)।

जवाबों:


55

पासवर्ड की आवश्यकता है या नहीं, इससे कोई लेना-देना नहीं है pg_shadowऔर क्या पासवर्ड वास्तव में उपयोगकर्ता के लिए परिभाषित किया गया है। हां, मुझे पता है, यह अजीब है।

pg_hba.confप्रमाणीकरण विधि को नियंत्रित करता है। यदि आप पासवर्ड का अनुरोध करना चाहते हैं, तो md5प्रमाणीकरण का उपयोग करें । यदि आप किसी को भी पासवर्ड के साथ लॉगिन की अनुमति देना चाहते हैं, तो उपयोग करें trust। यदि आप ऑपरेटिंग सिस्टम में उसी उपयोगकर्ता नाम की आवश्यकता चाहते हैं जैसे PostgreSQL में, peer(UNIX, केवल स्थानीय कनेक्शन के लिए) या sspi(Windows) का उपयोग करें।

यदि कोई पासवर्ड सेट है, लेकिन pg_hba.confPostgreSQL को यह पूछने के लिए नहीं कहता है, तो पासवर्ड को अनदेखा कर दिया गया है।

यदि pg_hba.confPostgreSQL को पासवर्ड मांगने के लिए कहता है, लेकिन कोई भी सेट नहीं है, तो सभी लॉगिन प्रयास विफल हो जाएंगे, भले ही पासवर्ड की आपूर्ति की गई हो।


12

उपयोगकर्ता द्वारा डिफ़ॉल्ट रूप से पोस्टग्रैज का कोई पासवर्ड नहीं है। उपयोगकर्ता का पासवर्ड हटाने के लिए (इस स्थिति में उपयोगकर्ता / भूमिका के लिए):

alter role postgres password null;

हम यह भी करने के लिए सेट प्रमाणीकरण की जरूरत trustमें pg_hba.conf- विवरण देखें [ https://dba.stackexchange.com/a/19657/52550]


3
अब मैं psql में आरोप लगाता हूं
रॉबर्ट सोल्स

3
हाँ, अब मुझसे एक पासवर्ड माँगा जाता है और लॉगिन नहीं किया जा सकता ...
Amalgovinus

1
इस कमांड ने मुझे पोस्टग्रेज से बैन कर दिया - जैसा @Amalgovinus ने कहा।
नाम जी वीयू

1
आप त्रुटि के कारण का उपयोग नहीं कर पाते हैं psql: fe_sendauth: no password supplied, तो अपने को संपादित C:\Program Files\PostgreSQL\10\data\pg_hba.confऔर की जगह md5के साथ trustकरने के लिए अगले 127.0.0.1/32के तहत IPv4 local connectionsऔर करने के लिए अगले ::1/128के तहतIPv6 local connections
मार्को Lackovic

1

यह मेरे लिए काम किया:

alter role postgres password '';


4
जब मैं 10 पोस्टग्रेज में ऐसा करता हूं, तो मुझे त्रुटि मिलती है "नोट: खाली स्ट्रिंग एक वैध पासवर्ड नहीं है, पासवर्ड क्लीयरिंग है"। लेकिन फिर भी यह मेरा पासवर्ड बदल देता है और मैं कुछ भी लॉगिन नहीं कर सकता! WTF !!
अमलगोविनस

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