it-swarm.com.de

Wie ändere ich das PostgreSQL-Benutzerkennwort?

Wie ändere ich das Passwort für PostgreSQL-Benutzer?

818
Saad

Für Passwort weniger Login:

Sudo -u user_name psql db_name

So setzen Sie das Passwort zurück, wenn Sie es vergessen haben:

ALTER USER user_name WITH PASSWORD 'new_password';
1176
solaimuruganv

Dann tippe:

$ Sudo -u postgres psql

Dann:

\password postgres

Dann beenden Sie psql:

\q

Wenn dies nicht funktioniert, konfigurieren Sie die Authentifizierung neu.

Bearbeite /etc/postgresql/9.1/main/pg_hba.conf (Pfad wird abweichen) und ändere:

    local   all             all                                     peer

zu:

    local   all             all                                     md5

Starten Sie dann den Server neu:

$ Sudo service postgresql restart
548
Clint Bugs

Sie können und sollten das Passwort des Benutzers verschlüsseln lassen:

ALTER USER username WITH ENCRYPTED PASSWORD 'password';
70
yglodt

Ich glaube, der beste Weg, das Passwort zu ändern, ist einfach zu benutzen:

\password

in der Postgres-Konsole.

Quelle:

Bei der Angabe eines unverschlüsselten Kennworts mit diesem Befehl ist Vorsicht geboten. Das Kennwort wird im Klartext an den Server übertragen und möglicherweise auch im Befehlsverlauf des Clients oder im Serverprotokoll protokolliert. psql enthält einen Befehl\password, mit dem das Kennwort einer Rolle geändert werden kann, ohne das Klartextkennwort preiszugeben.

from https://www.postgresql.org/docs/9.0/static/sql-alterrole.html .

40
Viktor Nordling

Verwenden Sie zum Ändern des Kennworts über die Linux-Befehlszeile Folgendes:

Sudo -u <user_name> psql -c "ALTER USER <user_name> PASSWORD '<new_password>';"
31
Vajira Lasantha

Gehen Sie zu Ihrer Postgresql-Konfiguration und bearbeiten Sie die Datei pg_hba.conf

Sudo vim /etc/postgresql/9.3/main/pg_hba.conf

Dann ändern Sie diese Zeile:

Database administrative login by Unix domain socket
local      all              postgres                                md5

zu:

Database administrative login by Unix domain socket
local   all             postgres                                peer

starten Sie anschließend den PostgreSQL-Dienst über den Befehl Sudo neu

psql -U postgres

Sie werden nun eingegeben und sehen das Postgresql-Terminal

dann eintreten

\password

und geben Sie das NEUE Passwort für den Standardbenutzer von Postgres ein. Nachdem Sie das Passwort erfolgreich geändert haben, wechseln Sie zur Datei pg_hba.conf und setzen Sie die Änderung auf "md5" zurück.

jetzt wirst du angemeldet als

psql -U postgres

mit deinem neuen Passwort.

Lassen Sie mich wissen, wenn Sie alle ein Problem darin finden.

22

So fordern Sie ein neues Kennwort für den Benutzer postgres an (ohne es im Befehl anzuzeigen):

Sudo -u postgres psql -c "\password"
9
Nicolau

Die Konfiguration, die ich auf meinem Server habe, wurde stark angepasst und ich konnte das Passwort erst ändern, nachdem ich die vertrauenswürdige Authentifizierung in der pg_hba.conf file :

local   all   all   trust

Vergessen Sie nicht, dies wieder in password oder md5 zu ändern

8
ruruskyi

Dies war das erste Ergebnis auf Google, als ich nach Möglichkeiten zum Umbenennen eines Nutzers suchte.

ALTER USER <username> WITH PASSWORD '<new_password>';  -- change password
ALTER USER <old_username> RENAME TO <new_username>;    -- rename user

Einige andere Befehle, die für die Benutzerverwaltung hilfreich sind:

CREATE USER <username> PASSWORD '<password>' IN GROUP <group>;
DROP USER <username>;

Benutzer in eine andere Gruppe verschieben

ALTER GROUP <old_group> DROP USER <username>;
ALTER GROUP <new_group> ADD USER <username>;
8
Salvador Dali

Für meinen Fall auf Ubuntu 14.04 mit postgres 10.3 installiert. Ich muss die folgenden Schritte ausführen

  • su - postgres zum Wechseln des Benutzers zu postgres
  • psql, um die Postgres-Shell aufzurufen
  • \password Geben Sie dann Ihr Passwort ein
  • \q, um die Shell-Sitzung zu beenden
  • Dann wechseln Sie zurück zu root, indem Sie exit ausführen und Ihren pg_hba.conf (meiner ist bei /etc/postgresql/10/main/pg_hba.conf) konfigurieren, indem Sie sicherstellen, dass Sie die folgende Zeile haben

    local all postgres md5

  • Starten Sie Ihren Postgres-Dienst mit service postgresql restart neu.
  • Wechseln Sie nun zu postgres user und geben Sie postgres Shell erneut ein. Es wird Sie mit einem Passwort auffordern.
5
haxpor

Passwort ändern

 Sudo -u postgres psql

dann

\password postgres

jetzt neues Passwort eingeben und bestätigen

dann \q zum Beenden

5
Akitha_MJ

benutze das:

\password

geben Sie das neue Passwort für diesen Benutzer ein und bestätigen Sie es. Wenn Sie sich nicht an das Passwort erinnern und es ändern möchten, können Sie sich als postgres anmelden und dann Folgendes verwenden:

ALTER USER 'the username' WITH PASSWORD 'the new password';
3
Chris Dare

Ähnlich wie bei anderen Antworten in der Syntax sollte jedoch bekannt sein, dass Sie auch ein MD5 des Kennworts übergeben können, damit Sie kein Nur-Text-Kennwort übertragen.

Hier sind einige Szenarien mit unbeabsichtigten Folgen der Änderung eines Benutzerkennworts im Klartext.

  1. Wenn Sie nicht über SSL verfügen und Änderungen remote vornehmen, übertragen Sie das Klartextkennwort über das Netzwerk.
  2. Wenn Sie Ihre Protokollierungskonfiguration so eingestellt haben, dass DDL-Anweisungen log_statement = ddl oder höher protokolliert werden, wird Ihr Nur-Text-Kennwort in Ihren Fehlerprotokollen angezeigt.
    1. Wenn Sie diese Protokolle nicht schützen, ist dies ein Problem.
    2. Wenn Sie diese Protokolle/ETLs sammeln und anzeigen, wo andere Zugriff haben, wird möglicherweise dieses Kennwort angezeigt.
    3. Wenn Sie einem Benutzer erlauben, sein Kennwort zu verwalten, gibt er ein Kennwort unwissentlich an einen Administrator oder einen Mitarbeiter auf niedriger Ebene weiter, der mit der Prüfung von Protokollen beauftragt ist.

Vor diesem Hintergrund erfahren Sie, wie Sie das Kennwort eines Benutzers ändern können, indem Sie ein MD5 des Kennworts erstellen.

  • Wenn Postgres ein Passwort als md5 hasht, salzt es das Passwort mit dem Benutzernamen und stellt dem resultierenden Hash den Text "md5" voran.
  • beispiel: "md5" + md5 (Passwort + Benutzername)

  • In der Bash:

    ~$ echo -n "passwordStringUserName" | md5sum | awk '{print "md5"$1}'
    md5d6a35858d61d85e4a82ab1fb044aba9d
  • In PowerShell:
    [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
  • Endlich wird unser ALTER USER -Befehl so aussehen
    ALTER USER UserName WITH PASSWORD 'md5d6a35858d61d85e4a82ab1fb044aba9d';
  • Relevante Links (Hinweis: Ich werde nur auf die neuesten Versionen der Dokumente verweisen, die älter sind, es ändert sich einiges, aber MD5 wird immer noch auf eine Art und Weise unterstützt.)
  • Rolle erstellen
  • Das Passwort wird immer verschlüsselt in den Systemkatalogen gespeichert. Das Schlüsselwort ENCRYPTED hat keine Auswirkung, wird jedoch aus Gründen der Abwärtskompatibilität akzeptiert. Die Verschlüsselungsmethode wird durch den Konfigurationsparameter password_encryption festgelegt. Wenn die angegebene Kennwortzeichenfolge bereits in einem mit MD5 oder SCRAM verschlüsselten Format vorliegt, wird sie unabhängig von password_encryption unverändert gespeichert (da das System die angegebene verschlüsselte Kennwortzeichenfolge nicht entschlüsseln kann, um sie in einem anderen Format zu verschlüsseln). Dies ermöglicht das erneute Laden von verschlüsselten Passwörtern während des Dumps/Restores.

  • konfigurationseinstellung für password_encryption
  • postgres password authentication doc
  • postgres Passwort erstellen md5
0
jkdba