Answers:
මුරපදය අඩු ප්රවේශයක් සඳහා:
sudo -u user_name psql db_nameඔබට අමතක වී ඇත්නම් මුරපදය නැවත සැකසීමට:
ALTER USER user_name WITH PASSWORD 'new_password';rm ~/.psql_history
                    ALTER USER myuser RENAME TO newname;... යම් හේතුවක් නිසා මම ඒ :) හෆීස් විට ගූගල් මෙතන මට යොමු විය සඳහා
                    ඉන්පසු ටයිප් කරන්න:
$ 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.
                    psqlඉතිහාසය හෝ ෂෙල් ... hashed (උදා. SHA1) මුරපදය භාවිතා කරන්නේ කෙසේද?
                    මුරපදය වෙනස් කිරීමට හොඳම ක්රමය සරලවම භාවිතා කිරීම බව මම විශ්වාස කරමි:
\passwordPostgres කොන්සෝලය තුළ.
මූලාශ්රය:
මෙම විධානය සමඟ සංකේතාංකනය නොකළ මුරපදයක් සඳහන් කිරීමේදී ප්රවේශම් විය යුතුය. මුරපදය පැහැදිලි පා text යෙන් සේවාදායකයට සම්ප්රේෂණය වන අතර, එය සේවාදායකයාගේ විධාන ඉතිහාසය හෝ සේවාදායක ලොගය තුළද ලොග් විය හැක. 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 Config වෙත ගොස් 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
Postgres පෙරනිමි පරිශීලකයා සඳහා නව මුරපදය ඇතුළත් කරන්න, මුරපදය සාර්ථකව වෙනස් කිරීමෙන් පසු නැවත 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: මගේ ($ අනුවාදය, $ පොකුරු, $ db, $ වරාය , $ සත්කාරක); ' ඔබගේ සහයට ස්තූතියි!
                    මගේ සේවාදායකයේ මා සතුව ඇති වින්යාසය බොහෝ අභිරුචිකරණය කර ඇති අතර මුරපදය වෙනස් කිරීමට මට හැකි වූයේ මා ගොනුවේ විශ්වාස සත්යාපනය සැකසීමෙන් පසුව පමණි :pg_hba.conf
local   all   all   trustමෙය මුරපදය හෝ md5 ලෙස වෙනස් කිරීමට අමතක නොකරන්න
sudo systemctl restart postgresql.service
                    ගූගල් හි පළමු ප්රති result ලය මෙයයි, මම පරිශීලකයෙකු නැවත නම් කරන්නේ කෙසේදැයි සොයමින් සිටියදී,
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 පරිශීලකයා වෙත මාරු වීමට postgrespsql postgres shell එකට ඇතුළු වීමට\password ඉන්පසු ඔබගේ මුරපදය ඇතුළත් කරන්න\q ෂෙල් සැසියෙන් ඉවත් වීමටඔබ පහත දැක්වෙන රේඛාව ඇති බවට වග බලා ගැනීමෙන් exitඔබේ pg_hba.conf(මගේ ස්ථානයේ /etc/postgresql/10/main/pg_hba.conf) ක්රියාත්මක කිරීමෙන් නැවත මූලයට මාරු වේ
local all   postgres    md5
service postgresql restartpostgresපරිශීලකයා වෙත මාරු වී නැවත postgres shell එක ඇතුලත් කරන්න. එය මුරපදය සමඟ ඔබෙන් විමසනු ඇත.TLDR:
බොහෝ පද්ධති වල, පරිශීලකයාගේ ගිණුමේ බොහෝ විට කාල පරිච්ඡේදයක් හෝ යම් ආකාරයක විරාමයක් අඩංගු වේ (පරිශීලක: john.smith, horise.johnson). මෙම අවස්ථා වලදී ඉහත පිළිගත් පිළිතුරට වෙනස් කිරීමක් කළ යුතුය. වෙනස සඳහා පරිශීලක නාමය ද්වි-උපුටා දැක්වීමක් අවශ්ය වේ.
Example:
ALTER USER "username.lastname" WITH PASSWORD 'password'; තාර්කික:
'ද්විත්ව උපුටා දැක්වීමක්' භාවිතා කරන්නේ කවදාද සහ 'තනි උපුටා දැක්වීමක්' භාවිතා කරන්නේ කවදාද යන්න පිළිබඳව පෝස්ට්ග්රෙස් ඉතා පැහැදිලිය. සාමාන්යයෙන් නූලක් සපයන විට ඔබ තනි උපුටා දැක්වීමක් භාවිතා කරයි.
මෙය භාවිතා කරන්න:
\passwordඑම පරිශීලකයාට අවශ්ය නව මුරපදය ඇතුළත් කර එය තහවුරු කරන්න. ඔබට මුරපදය මතක නැතිනම් ඔබට එය වෙනස් කිරීමට අවශ්ය නම්, ඔබට තැපැල් ලිපි ලෙස ලොග් වී මෙය භාවිතා කළ හැකිය:
ALTER USER 'the username' WITH PASSWORD 'the new password';වාක්ය ඛණ්ඩයේ වෙනත් පිළිතුරු වලට සමාන නමුත් ඔබට සාමාන්ය මුරපදයක් සම්ප්රේෂණය නොකිරීමට මුරපදයේ md5 එකක් ද ලබා දිය හැකි බව දැන සිටිය යුතුය.
පරිශීලක මුරපදයක් සරල පා in යකින් වෙනස් කිරීමෙන් බලාපොරොත්තු නොවූ ප්රතිවිපාක පිළිබඳ අවස්ථා කිහිපයක් මෙන්න.
log_statement = ddl හෝ ඊට වැඩි , එවිට ඔබේ සරල පෙළ මුරපදය ඔබගේ දෝෂ ලොග් වල පෙන්වනු ඇත.
මුරපදයේ md5 එකක් තැනීමෙන් පරිශීලකයාගේ මුරපදය වෙනස් කළ හැකි ආකාරය මෙහි දක්වා ඇත.
උදා: "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
    md5d6a35858d61d85e4a82ab1fb044aba9dALTER USERවිධානය පෙනෙනු ඇත    ALTER USER UserName WITH PASSWORD 'md5d6a35858d61d85e4a82ab1fb044aba9d';මුරපදය සෑම විටම පද්ධති නාමාවලිවල සංකේතනය කර ඇත. ENCRYPTED යතුරුපදය කිසිදු බලපෑමක් නැත, නමුත් පසුගාමී අනුකූලතාව සඳහා පිළිගනු ලැබේ. සංකේතාංකන ක්රමය තීරණය වන්නේ වින්යාස පරාමිතිය වන password_encryption මගිනි. ඉදිරිපත් කරන ලද මුරපද පේළිය දැනටමත් MD5- සංකේතාත්මක හෝ SCRAM- සංකේතාත්මක ආකෘතියක තිබේ නම්, එය මුරපද_ක්රිප්ෂන් නොසලකා ගබඩා කර ඇත (පද්ධතියට නිශ්චිත සංකේතාත්මක මුරපද පේළිය විකේතනය කළ නොහැකි බැවින් එය වෙනත් ආකෘතියකින් සංකේතනය කිරීමට). ඩම්ප් / ප්රතිස්ථාපනය කිරීමේදී සංකේතාත්මක මුරපද නැවත පූරණය කිරීමට මෙය ඉඩ දෙයි.
සහ සම්පුර්ණයෙන්ම ස්වයංක්රීයව බාෂ් සහ අපේක්ෂා කරන ආකාරය ( මෙම උදාහරණයේ දී අපි OS සහ postgres ධාවන කාල මට්ටමින් අලුතින් සපයා ඇති postgres pw සමඟ නව postgres පරිපාලකයෙකු සපයන්නෙමු)
  # 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 ;
 "පොදුවේ ගත් කල, db ආශ්රිත ක්රියාකාරකම් කිරීම සඳහා pg admin UI භාවිතා කරන්න.
ඒ වෙනුවට ඔබ වැඩි අවධානයක් යොමු කරන්නේ ඔබේ ප්රාදේශීය සංවර්ධනය සඳහා දත්ත සමුදාය සැකසීම හෝ සීඅයි ආදිය සඳහා ය.
උදාහරණයක් ලෙස, ඔබට මේ වගේ සරල සංයෝජනයක් භාවිතා කළ හැකිය.
(අ) මෙයට සමාන විධානයක් සහිත ජෙන්කින්ස් හරහා ව්යාජ සුපිරි පරිශීලකයෙකු සාදන්න:
docker exec -t postgres11-instance1 createuser --username=postgres --superuser experiment001මෙය ඔබ තුළ අත්හදා බැලීම් 001 නමින් සුපිරි පරිශීලකයෙකු නිර්මාණය කරනු ඇත.
(ආ) NON-Interactive SQL විධානයක් ක්රියාත්මක කිරීමෙන් මෙම පරිශීලකයාට මුරපදයක් ලබා දෙන්න.
docker exec -t postgres11-instance1 psql -U experiment001 -d postgres -c "ALTER USER experiment001 WITH PASSWORD 'experiment001' "විධාන රේඛාව (අන්තර්ක්රියාකාරී නොවන) මෙවලම් සඳහා හොඳම දත්ත ගබඩාව Postgres විය හැකිය. පරිශීලකයින් නිර්මාණය කිරීම, SQL ධාවනය කිරීම, දත්ත සමුදායේ උපස්ථ සෑදීම යනාදිය ... පොදුවේ ගත් කල එය පෝස්ට්ග්රෙස් සමඟ තරමක් මූලික වන අතර මෙය ඔබේ සංවර්ධන සැකසුම් ස්ක්රිප්ට් වලට හෝ ස්වයංක්රීය සීඅයි වින්යාසයට ඒකාබද්ධ කිරීම සමස්තයක් වශයෙන් සුළුපටු ය.
ඔබ කවුළු මත නම්.
pg_hba.confගොනුව විවෘත කර සිට වෙනස් md5කරන්නpeer
විවෘත cmd, ටයිප් කරන්න psql postgres postgres
\passwordනව මුරපදයක් ඇතුළත් කිරීමට ඔබෙන් විමසීමට ටයිප් කරන්න.
වැඩි විස්තර සඳහා මෙම මධ්යම පෝස්ටය වෙත යොමු වන්න .