Cum pot schimba parola pentru PostgreSQL utilizator?
Pentru parolă mai puțin de conectare:
sudo -u user_name psql db_name
Pentru a reseta parola dacă ați uitat:
ALTER USER user_name WITH PASSWORD 'new_password';
Apoi, tastați:
$ sudo -u postgres psql
Apoi:
\password postgres
Apoi să renunțe pentru psql`:
\q
Dacă asta nu funcționează, reconfigurați de autentificare.
Edit /etc/postgresql/9.1/principal/pg_hba.conf
(calea va diferi) și de a schimba:
local all all peer
a:
local all all md5
Apoi restart la server:
$ sudo service postgresql restart
Cred că cel mai bun mod pentru a schimba parola este pur și simplu de a utiliza:
\password
în Postgres consola.
Sursa:
este necesară Prudență atunci când se specifică o necriptate parola cu această comandă. Parola va fi transmis la server text clar, și ar putea fi, de asemenea, conectat clientul's istorie de comandă , sau serverul de autentificare. psql conține o comandă \parolă, care pot fi utilizate pentru a schimba un rol's parolă, fără a expune text clar parola.
din https://www.postgresql.org/docs/9.0/static/sql-alterrole.html.
Pentru a schimba parola folosind linia de comandă Linux, utilizați:
sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
Du-te la Postgresql Config și Edita pg_hba.conf
sudo vim /etc/postgresql/9.3/principal/pg_hba.conf
Apoi Schimba această Linie :
Database administrative login by Unix domain socket
local all postgres md5
a :
Database administrative login by Unix domain socket
local all postgres peer
apoi Reporniți serviciul PostgreSQL prin comanda SUDO apoi
psql -U postgres
Veți fi acum a intrat și va Vedea Postgresql terminal
apoi introduceți
\parola
și introduceți NOUA Parolă pentru Postgres utilizator implicit, După ce cu Succes a schimba Parola din nou du-te la pg_hba.conf și reveni pentru a schimba "md5"
acum, va fi logat ca
psql -U postgres
cu noua ta Parola.
Lasă-mă să știu dacă veți găsi orice problemă în asta.
Acesta a fost primul rezultat de pe google, atunci când am fost în căutarea pentru modul de a redenumi un utilizator, astfel:
ALTER USER <username> WITH PASSWORD '<new_password>'; -- change password
ALTER USER <old_username> RENAME TO <new_username>; -- rename user
O serie de alte comenzi utile pentru gestionarea utilizatorilor:
CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;
Utilizator mutare la un alt grup
ALTER GROUP <old_group> DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;
Configurația pe care am'am pe serverul meu a fost personalizat-o mult si am reusit sa schimb parola numai după ce am stabilit încredere autentificare în pg_hba.conf
file:
local all all trust
Don't uitați să schimbați înapoi parola sau md5
Pentru cazul meu pe Ubuntu 14.04 instalat cu postgres 10.3. Trebuie să urmați următorii pași
su - postgres
pentru a comuta utilizatorului să postgres
psql
pentru a intra postgres shell\parola
apoi introduceți parola dvs.\q
să renunțe la sesiune de shellpg_hba.conf
(al meu e la /etc/postgresql/10/principal/pg_hba.conf
), asigurându-vă că aveți următoarele liniela nivel local toate postgres md5`
postgres
utilizator și introduceți postgres shell din nou. Acesta vă va solicita cu parola.utilizați acest:
\password
introduceți noua parolă doriți de utilizator și apoi confirmați-o. Dacă tu nu't vă amintiți parola și doriți să-l schimbe, vă puteți conecta ca postgres și apoi să utilizați acest:
ALTER USER 'the username' WITH PASSWORD 'the new password';
Similar cu alte răspunsuri în sintaxă, dar ar trebui să fie cunoscut faptul că puteți trece, de asemenea, un md5 a parolei deci nu transmite un text simplu parola.
Aici sunt câteva scenarii de consecințe neintenționate de a modifica o parola de utilizatori în text simplu.
Cu care a spus, aici este modul în care putem modifica un utilizator's parolă prin construirea unei md5 a parolei.
Postgres când un hash parola md5, săruri parola cu numele de utilizator apoi adauga inaintea textul "md5" a rezultat hash.
ex: "md5"+md5(parola de utilizator)
În bash:
bash ~$ echo -n "passwordStringUserName" | md5sum | awk '{print "md5"$1}' md5d6a35858d61d85e4a82ab1fb044aba9d
În PowerShell: ``powershell [PSCredential] $Acreditare = Get-Acreditare
$StringBuilder = New Obiect-Sistem.Text.StringBuilder
$nul = $StringBuilder.Append('md5');
[System.Security.Cryptography.HashAlgorithm]::Create('md5').ComputeHash([System.Text.Encoding]::ASCII.GetBytes(((ConvertFrom-SecureStringToPlainText -SecureString $Acreditare.Parola) + $Acreditare.Numele De Utilizator))) | ForEach-Obiect { $nul = $StringBuilder.Append($_.ToString("x2")) }
$StringBuilder.ToString();
md5d6a35858d61d85e4a82ab1fb044aba9d ``
Deci, în cele din urmă nostru ALTER USER
comanda va arata ca
psql MODIFICA de UTILIZATOR numele de Utilizator CU PAROLA 'md5d6a35858d61d85e4a82ab1fb044aba9d';
Link-uri relevante (Rețineți doar link-ul la cele mai recente versiuni de google docs pentru mai în vârstă se schimbă unele dar md5 este încă sprijin de câteva ori.)
parola este întotdeauna stocate criptate în sistemul de cataloage. CRIPTATE cheie nu are nici un efect, dar este acceptat pentru compatibilitate. Metoda de criptare este determinată de parametrul de configurare password_encryption. Dacă cele prezentate string parola este deja în MD5-criptate sau VALEA-format criptat, atunci acesta este stocat ca-este, indiferent de password_encryption (deoarece sistemul nu poate decripta specificate string parola criptat, pentru a cripta într-un format diferit). Aceasta permite reîncărcarea de parole criptate în timpul basculante/restaurare.
setări de configurare pentru password_encryption
și în mod complet automatizat cu bash și aștepta ( în acest exemplu ne dispoziție un nou postgres admin cu nou prevazute postgres pw atât pe OS și postgres run-time nivel )
# 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
PAROLA '"$postgres_db_useradmin_pw"' AUTENTIFICARE ; "
În general, trebuie doar să utilizați pg UI admin pentru a face db legate de activitate.
Dacă în schimb ești focusin mai mult în automatizarea bazei de date de configurare pentru dezvoltare locală, sau CI, etc...
De exemplu, puteți utiliza un simplu combo de genul asta.
(a) a Crea un manechin super utilizator prin intermediul jenkins cu o comandă similară cu aceasta:
docker exec -t postgres11-instance1 createuser --username=postgres --superuser experiment001
acest lucru va crea o super-utilizator numit experiment001 în tine postgres db.
(b) acest utilizator cu parola de funcționare NON-Interactive comandă SQL.
docker exec -t postgres11-instance1 psql -U experiment001 -d postgres -c "ALTER USER experiment001 WITH PASSWORD 'experiment001' "
Postgres este, probabil, cel mai bun de date acolo pentru linia de comandă (non-interactiv) scule. Crearea de utilizatori, care rulează SQL, de a face copie de rezervă a bazei de date etc... În general, este destul de bază cu postgres și este în general destul de banal pentru a integra acest principiu în dezvoltarea ta scripturi de configurare sau în automatizate CI de configurare.