जवाबों:
पासवर्ड कम लॉगिन के लिए:
sudo -u user_name psql db_name
पासवर्ड भूल जाने पर रीसेट करने के लिए:
ALTER USER user_name WITH PASSWORD 'new_password';
rm ~/.psql_history
ALTER USER myuser RENAME TO newname;
... किसी कारण से Google मुझे यहाँ इशारा कर रहा था जब मैं उस पर ध्यान आकर्षित कर रहा था :)
फिर टाइप करें:
$ sudo -u postgres psql
फिर:
\password postgres
फिर छोड़ने के लिए psql
:
\q
अगर वह काम नहीं करता है, तो प्रमाणीकरण को फिर से कॉन्फ़िगर करें।
संपादित करें /etc/postgresql/9.1/main/pg_hba.conf
(पथ भिन्न होगा) और बदलें:
local all all peer
सेवा:
local all all md5
फिर सर्वर को पुनरारंभ करें:
$ sudo service postgresql restart
\p
, तो यह मुझे पासवर्ड देता है; अगर मैं इसमें टाइप करता हूँ \password postgres
तो पासवर्ड देता है और फिर चेतावनी देता है\p extra argument "assword" ignored; \p extra argument "postgres" ignored
sudo passwd postgres
आपके पास उपयोगकर्ताओं का पासवर्ड एन्क्रिप्ट किया जा सकता है:
ALTER USER username WITH ENCRYPTED PASSWORD 'password';
The password is always stored encrypted in the system catalogs. The ENCRYPTED keyword has no effect, but is accepted for backwards compatibility.
मेरा मानना है कि पासवर्ड को बदलने का सबसे अच्छा तरीका बस उपयोग करना है:
\password
पोस्टग्रेज कंसोल में।
स्रोत:
इस आदेश के साथ अनएन्क्रिप्टेड पासवर्ड निर्दिष्ट करते समय सावधानी बरती जानी चाहिए। पासवर्ड सर्वर को क्लीयरटेक्स्ट में प्रेषित किया जाएगा, और इसे क्लाइंट के कमांड हिस्ट्री या सर्वर लॉग में भी लॉग इन किया जा सकता है। psql में एक कमांड \ पासवर्ड होता है जिसका उपयोग स्पष्ट पासवर्ड को उजागर किए बिना किसी भूमिका के पासवर्ड को बदलने के लिए किया जा सकता है।
से https://www.postgresql.org/docs/9.0/static/sql-alterrole.html ।
\password username
लिनक्स कमांड लाइन का उपयोग करके पासवर्ड बदलने के लिए, उपयोग करें:
sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
पासवर्ड बदलने के लिए
sudo -u postgres psql
फिर
\password postgres
अब नया पासवर्ड दर्ज करें और पुष्टि करें
फिर \q
बाहर निकलने के लिए
अपने Postgresql कॉन्फ़िगर और संपादित करें pg_hba.conf पर जाएं
sudo vim /etc/postgresql/9.3/main/pg_hba.conf
फिर इस लाइन को बदलें:
Database administrative login by Unix domain socket
local all postgres md5
सेवा :
Database administrative login by Unix domain socket
local all postgres peer
तब SUDO कमांड के माध्यम से PostgreSQL सेवा को पुनरारंभ करें
psql -U postgres
अब आप दर्ज किए जाएंगे और Postgresql टर्मिनल देखेंगे
फिर दर्ज करें
\password
और पोस्टग्रेज डिफ़ॉल्ट उपयोगकर्ता के लिए नया पासवर्ड दर्ज करें, सफलतापूर्वक पासवर्ड बदलने के बाद फिर से pg_hba.conf पर जाएं और परिवर्तन को "md5" पर वापस लाएं।
अब आप के रूप में लॉग इन किया जाएगा
psql -U postgres
अपने नए पासवर्ड के साथ।
अगर आप सभी को इसमें कोई समस्या मिलती है तो मुझे बताएं।
user@user-NC10:~$ psql -U postgres psql: FATAL: Peer authentication failed for user "postgres"
$version,' /usr/bin/psql: psql: line 26:
($ संस्करण, $ क्लस्टर, $ £, $ पोर्ट , $ मेजबान); ' आपकी सहायताके लिए धन्यवाद!
कॉन्फ़िगरेशन जो मैंने अपने सर्वर पर प्राप्त की है उसे बहुत अनुकूलित किया गया था और मैंने फ़ाइल में विश्वास प्रमाणीकरण सेट करने के बाद ही पासवर्ड बदलने में कामयाबी हासिल की :pg_hba.conf
local all all trust
इसे वापस पासवर्ड या md5 में बदलना न भूलें
sudo systemctl restart postgresql.service
यह Google पर पहला परिणाम था, जब मैं देख रहा था कि किसी उपयोगकर्ता का नाम कैसे बदला जाए:
ALTER USER <username> WITH PASSWORD '<new_password>'; -- change password
ALTER USER <old_username> RENAME TO <new_username>; -- rename user
उपयोगकर्ता प्रबंधन के लिए उपयोगी कुछ अन्य कमांड:
CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;
उपयोगकर्ता को दूसरे समूह में ले जाएं
ALTER GROUP <old_group> DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;
उबंटू 14.04 पर मेरे मामले के लिए 10.3 पोस्टग्रेज के साथ स्थापित किया गया। मुझे निम्नलिखित चरणों का पालन करने की आवश्यकता है
su - postgres
उपयोगकर्ता को स्विच करने के लिए postgres
psql
पोस्टग्रेज शेल में प्रवेश करने के लिए\password
फिर अपना पासवर्ड डालें\q
शेल सत्र को छोड़ने के लिएफिर आप निष्पादित करके रूट पर वापस जाते हैं exit
और अपने लाइन को कॉन्फ़िगर करें pg_hba.conf
(मेरा चालू है /etc/postgresql/10/main/pg_hba.conf
) यह सुनिश्चित करके कि आपके पास निम्न पंक्ति है
local all postgres md5
service postgresql restart
postgres
उपयोगकर्ता पर जाएं और पोस्टग्रेज शेल फिर से दर्ज करें। यह आपको पासवर्ड के साथ संकेत देगा।इसे इस्तेमाल करो:
\password
उस उपयोगकर्ता के लिए नया पासवर्ड दर्ज करें और फिर उसकी पुष्टि करें। यदि आपको पासवर्ड याद नहीं है और आप इसे बदलना चाहते हैं, तो आप पोस्टग्रेज के रूप में लॉग इन कर सकते हैं और फिर इसका उपयोग कर सकते हैं:
ALTER USER 'the username' WITH PASSWORD 'the new password';
सिंटैक्स में अन्य उत्तरों के समान लेकिन यह ज्ञात होना चाहिए कि आप पासवर्ड का एक md5 भी पास कर सकते हैं ताकि आप एक सादा पाठ पासवर्ड प्रेषित नहीं कर रहे हैं।
सादे पाठ में उपयोगकर्ताओं के पासवर्ड को बदलने के अनपेक्षित परिणामों के कुछ परिदृश्य यहां दिए गए हैं।
log_statement = ddl
या उच्चतर लॉग करने के लिए आपका लॉगिंग कॉन्फ़िगरेशन सेट है , तो आपका सादा पाठ पासवर्ड आपकी त्रुटि लॉग में दिखाई देगा।
इसके साथ यहां कहा गया है कि हम पासवर्ड के md5 का निर्माण करके उपयोगकर्ता के पासवर्ड को कैसे बदल सकते हैं।
ex: "md5" + md5 (पासवर्ड + उपयोगकर्ता नाम)
बैश में:
~$ echo -n "passwordStringUserName" | md5sum | awk '{print "md5"$1}'
md5d6a35858d61d85e4a82ab1fb044aba9d
[PSCredential] $Credential = Get-Credential
$StringBuilder = New-Object System.Text.StringBuilder
$null = $StringBuilder.Append('md5');
[System.Security.Cryptography.HashAlgorithm]::Create('md5').ComputeHash([System.Text.Encoding]::ASCII.GetBytes(((ConvertFrom-SecureStringToPlainText -SecureString $Credential.Password) + $Credential.UserName))) | ForEach-Object {
$null = $StringBuilder.Append($_.ToString("x2"))
}
$StringBuilder.ToString();
## OUTPUT
md5d6a35858d61d85e4a82ab1fb044aba9d
ALTER USER
कमान दिखेगी ALTER USER UserName WITH PASSWORD 'md5d6a35858d61d85e4a82ab1fb044aba9d';
पासवर्ड हमेशा सिस्टम कैटलॉग में एन्क्रिप्टेड संग्रहीत किया जाता है। ENCRYPTED कीवर्ड का कोई प्रभाव नहीं है, लेकिन पश्चगामी संगतता के लिए स्वीकार किया जाता है। एन्क्रिप्शन की विधि कॉन्फ़िगरेशन पैरामीटर password_enc एन्क्रिप्शन द्वारा निर्धारित की जाती है। यदि प्रस्तुत पासवर्ड स्ट्रिंग पहले से ही एमडी 5-एन्क्रिप्टेड या एससीआरएएम-एन्क्रिप्टेड प्रारूप में है, तो इसे पासवर्ड_केन एन्क्रिप्शन की परवाह किए बिना संग्रहीत किया जाता है (क्योंकि सिस्टम निर्दिष्ट एन्क्रिप्ट किए गए पासवर्ड स्ट्रिंग को डिक्रिप्ट नहीं कर सकता है, इसे एक अलग प्रारूप में एन्क्रिप्ट करने के लिए)। यह डंप / रिस्टोर के दौरान एन्क्रिप्टेड पासवर्ड को फिर से लोड करने की अनुमति देता है।
सामान्य तौर पर, db संबंधित गतिविधि करने के लिए बस pg admin UI का उपयोग करें।
यदि इसके बजाय आप अपने स्थानीय विकास, या CI आदि के लिए डेटाबेस सेटअप को स्वचालित करने में अधिक ध्यान केंद्रित कर रहे हैं ...
उदाहरण के लिए, आप इस तरह से एक साधारण कॉम्बो का उपयोग कर सकते हैं।
(ए) इस के समान कमांड के साथ जेनकींस के माध्यम से एक डमी सुपर उपयोगकर्ता बनाएं:
docker exec -t postgres11-instance1 createuser --username=postgres --superuser experiment001
यह एक सुपर उपयोगकर्ता बना देगा जिसे आप में001001 कहा जाता है।
(b) इस उपयोगकर्ता को NON-Interactive SQL कमांड चलाकर कुछ पासवर्ड दें।
docker exec -t postgres11-instance1 psql -U experiment001 -d postgres -c "ALTER USER experiment001 WITH PASSWORD 'experiment001' "
कमांड लाइन (गैर-संवादात्मक) टूलिंग के लिए पोस्टग्रैज संभवत: सबसे अच्छा डेटाबेस है। उपयोगकर्ता बनाना, SQL चलाना, डेटाबेस का बैकअप बनाना आदि ... सामान्य तौर पर यह सभी पोस्टग्रेज के साथ काफी बुनियादी है और इसे समग्र रूप से आपके विकास सेटअप स्क्रिप्ट या स्वचालित CI कॉन्फ़िगरेशन में एकीकृत करने के लिए काफी तुच्छ है।
और बैश और अपेक्षा के साथ पूरी तरह से स्वचालित तरीके से ( इस उदाहरण में हम नए पोस्टग्रेज व्यवस्थापक को ओएस पर दोनों पोस्ट किए गए पोस्टग्रेज और रन-टाइम स्तर को पोस्ट करते हैं)
# the $postgres_usr_pw and the other bash vars MUST be defined
# for reference the manual way of doing things automated with expect bellow
#echo "copy-paste: $postgres_usr_pw"
#sudo -u postgres psql -c "\password"
# the OS password could / should be different
sudo -u root echo "postgres:$postgres_usr_pw" | sudo chpasswd
expect <<- EOF_EXPECT
set timeout -1
spawn sudo -u postgres psql -c "\\\password"
expect "Enter new password: "
send -- "$postgres_usr_pw\r"
expect "Enter it again: "
send -- "$postgres_usr_pw\r"
expect eof
EOF_EXPECT
cd /tmp/
# at this point the postgres uses the new password
sudo -u postgres PGPASSWORD=$postgres_usr_pw psql \
--port $postgres_db_port --host $postgres_db_host -c "
DO \$\$DECLARE r record;
BEGIN
IF NOT EXISTS (
SELECT
FROM pg_catalog.pg_roles
WHERE rolname = '"$postgres_db_useradmin"') THEN
CREATE ROLE "$postgres_db_useradmin" WITH SUPERUSER CREATEROLE
CREATEDB REPLICATION BYPASSRLS
PASSWORD '"$postgres_db_useradmin_pw"' LOGIN ;
END IF;
END\$\$;
ALTER ROLE "$postgres_db_useradmin" WITH SUPERUSER CREATEROLE
CREATEDB REPLICATION BYPASSRLS
PASSWORD '"$postgres_db_useradmin_pw"' LOGIN ;
"
TLDR:
कई प्रणालियों पर, एक उपयोगकर्ता के खाते में अक्सर एक अवधि होती है, या किसी प्रकार का विराम चिह्न (उपयोगकर्ता: john.smith, horise.johnson)। इन मामलों में ऊपर दिए गए स्वीकृत उत्तर के लिए एक संशोधन करना होगा। परिवर्तन के लिए उपयोगकर्ता नाम के साथ दोहरे-उद्धरण की आवश्यकता होती है।
Example:
ALTER USER "username.lastname" WITH PASSWORD 'password';
वाजिब:
जब एक 'डबल कोट' का उपयोग करने के लिए और जब एक 'सिंगल कोटे' का उपयोग करने के लिए पोस्टग्रैस काफी उपयुक्त हो। आमतौर पर एक स्ट्रिंग प्रदान करते समय आप एक एकल उद्धरण का उपयोग करेंगे।