नई स्थापना के बाद पोस्टग्रेज के लिए डिफ़ॉल्ट सुपरयुज़र उपयोगकर्ता नाम / पासवर्ड क्या है?


380

मैंने उबंटू के 9.10 पर अभी तक पोस्टग्रैज 8.4 स्थापित किए हैं और इसने मुझे कभी सुपरसुअर बनाने के लिए नहीं कहा। क्या कोई डिफ़ॉल्ट सुपरयुसर और उसका पासवर्ड है? यदि नहीं, तो मैं नया कैसे बनाऊँ?


जवाबों:


533

चेतावनी "$ sudo पासवार्ड पोस्टग्रेज" के माध्यम से "पोस्टग्रेज" के लिए UNIX पासवर्ड बदलने के बारे में जवाब पसंद नहीं है, और यहां तक ​​कि DANGEROUS भी हो सकता है !

यही कारण है: डिफ़ॉल्ट रूप से, UNIX खाता "पोस्टग्रेज" लॉक है, जिसका अर्थ है कि यह पासवर्ड का उपयोग करके लॉग इन नहीं किया जा सकता है। यदि आप "sudo passwd postgres" का उपयोग करते हैं, तो खाता तुरंत अनलॉक कर दिया जाता है। इससे भी बदतर, यदि आप पासवर्ड को कुछ कमजोर करते हैं, जैसे "पोस्टग्रैज", तो आप एक बड़े सुरक्षा खतरे के संपर्क में हैं। उदाहरण के लिए, आपके UNIX सिस्टम में लॉग इन करने के लिए उपयोगकर्ता नाम / पासवर्ड कॉम्बो "पोस्टग्रेज / पोस्टग्रेज" की कोशिश करने वाले कई बॉट हैं।

आपको क्रिस जेम्स के जवाब का पालन करना चाहिए :

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

इसे थोड़ा समझाने के लिए। आमतौर पर PostgreSQL सर्वर पर लॉगिन करने के दो डिफ़ॉल्ट तरीके हैं:

  1. "Psql" कमांड को UNIX उपयोगकर्ता (तथाकथित IDENT / PEER प्रमाणीकरण) के रूप में चलाकर, उदा sudo -u postgres psql:। ध्यान दें कि sudo -uUNIX उपयोगकर्ता को अनलॉक नहीं करता है।

  2. टीसीपी / आईपी PostgreSQL के स्वयं प्रबंधित उपयोगकर्ता नाम / पासवर्ड (तथाकथित टीसीपी प्रमाणीकरण) का उपयोग कर कनेक्शन (यानी, द्वारा नहीं यूनिक्स पासवर्ड)।

तो आप UNIX खाते "पोस्टग्रेज" के लिए पासवर्ड सेट नहीं करना चाहते। इसे डिफ़ॉल्ट रूप से लॉक रहने दें।

यदि आप इसे डिफ़ॉल्ट सेटिंग से अलग तरीके से कॉन्फ़िगर करते हैं तो बेशक चीजें बदल सकती हैं। उदाहरण के लिए, कोई UNg पासवर्ड के साथ PostgreSQL पासवर्ड को सिंक कर सकता है और केवल स्थानीय लॉगिन की अनुमति दे सकता है। यह इस प्रश्न के दायरे से परे होगा।


11
तो, आप उपयोगकर्ता को वापस कैसे लॉक करते हैं?
अल्ट्राजोन

3
@ultrajohn - आपके द्वारा उपयोग किए जाने वाले वितरण पर निर्भर करता है, लेकिन आप पासवर्ड के बजाय / etc / passwd को एडिट कर सकते हैं और डाल सकते हैं
lzap

3
/etc/shadowवह जगह है जहाँ पासवर्ड @lzap रखा गया है।
ग्रिंगो सुवे

2
सही, आप पासवर्ड / इन / छाया के बजाय / etc / passwd या put * में / sbin / nologin सेट कर सकते हैं।
लज़ाप

34
passwd --lock पोस्टग्रेज
स्टीफन

166

कमांड लाइन पर दर्ज करें:

$ sudo -u postgres psql postgres
postgres=# \password postgres

तुम देखोगे:

Enter new password: 
Enter it again:

7
Postgres को स्थापित करने के तुरंत बाद pgadminIII (जब सर्वर प्रोफाइल सेट करते समय) जैसे टूल का उपयोग करने के लिए यह आवश्यक है। धन्यवाद!
16:10 पर लिम जूल

64

आप उपयोगकर्ता के माध्यम से पोस्टग्रेज को हेरफेर करते हैं postgres, जैसे:

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;

5
@ThierryLam आपको suपासवर्ड दर्ज किए बिना उपयोगकर्ता को पोस्टग्रेज करने के लिए रूट होना चाहिए । अधिकांश प्रणालियों पर पोस्टग्रैज यूनिक्स खाता बंद है (कोई पासवर्ड काम नहीं करेगा), जिसका अर्थ है कि उस खाते में केवल रूट हो सकता suहै।
voretaq7 22

2
के sudoबजाय का उपयोग करें su
रीइनस्टीरपोस्ट

8
मुझे दौड़ना था sudo su - postgres: \
जिम स्कुबर्ट

3
@ जिम शूबर्ट: आप दौड़ भी सकते हैं sudo -u postgres
रीयरियरपोस्ट

1
sudo -u postqes psql - काम करता है इसलिए आप इसे एक चरण में भी कर सकते हैं।
Ominus

21

Windows में, निम्न कार्य करें (महत्वपूर्ण: Windows व्यवस्थापक खाते का उपयोग करें ):

  1. स्थापना के बाद, खोलें <PostgreSQL PATH>\data\pg_hba.conf

  2. इन दो पंक्तियों को संशोधित करें, और "md5" को "विश्वास" में बदलें:

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. PostgreSQL सेवा को पुनरारंभ करें (आवश्यक नहीं हो सकता है)।

  4. (वैकल्पिक) कमांड प्रॉम्प्ट खोलें, और कोड पेज को 1252 में बदलें:

    cmd.exe /c chcp 1252

  5. PostgreSQL में लॉग इन करें। गैर पासवर्ड की आवश्यकता होगी (अपरकेस -यू पैरामीटर पर ध्यान दें):

    psql -U postgres

  6. (सुरक्षा कारणों से अनुशंसित वैकल्पिक), postgresउपयोगकर्ता का पासवर्ड बदलें :

    \password postgres

    और "md5" में "ट्रस्ट" को वापस बदलें pg_hba.conf


5

यदि आप PostgreSQL शेल का उपयोग करने का प्रयास कर रहे हैं, तो आप टाइप कर सकते हैं:

psql -U postgres my_database

my_databaseआपका डेटाबेस नाम कहाँ है

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