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) මුරපදය භාවිතා කරන්නේ කෙසේද?
මුරපදය වෙනස් කිරීමට හොඳම ක්රමය සරලවම භාවිතා කිරීම බව මම විශ්වාස කරමි:
\password
Postgres කොන්සෝලය තුළ.
මූලාශ්රය:
මෙම විධානය සමඟ සංකේතාංකනය නොකළ මුරපදයක් සඳහන් කිරීමේදී ප්රවේශම් විය යුතුය. මුරපදය පැහැදිලි පා 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
පරිශීලකයා වෙත මාරු වීමට postgres
psql
postgres shell එකට ඇතුළු වීමට\password
ඉන්පසු ඔබගේ මුරපදය ඇතුළත් කරන්න\q
ෂෙල් සැසියෙන් ඉවත් වීමටඔබ පහත දැක්වෙන රේඛාව ඇති බවට වග බලා ගැනීමෙන් exit
ඔබේ pg_hba.conf
(මගේ ස්ථානයේ /etc/postgresql/10/main/pg_hba.conf
) ක්රියාත්මක කිරීමෙන් නැවත මූලයට මාරු වේ
local all postgres md5
service postgresql restart
postgres
පරිශීලකයා වෙත මාරු වී නැවත 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
md5d6a35858d61d85e4a82ab1fb044aba9d
ALTER 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
නව මුරපදයක් ඇතුළත් කිරීමට ඔබෙන් විමසීමට ටයිප් කරන්න.
වැඩි විස්තර සඳහා මෙම මධ්යම පෝස්ටය වෙත යොමු වන්න .