Zunächst ist es wichtig zu verstehen, dass der standardmäßige Postgres-Benutzer für die meisten Unix-Distributionen kein Passwort zur Authentifizierung benötigt oder verwendet. Stattdessen ist die Standard-Authentifizierungsmethode, je nachdem, wie Postgres ursprünglich installiert wurde und welche Version Sie verwenden, entweder ident
oder peer
.
ident
Die Authentifizierung verwendet den Identifikationsserver des Betriebssystems, der auf TCP-Port 113 läuft, um die Anmeldeinformationen des Benutzers zu überprüfen.
peer
Die Authentifizierung hingegen wird für lokale Verbindungen verwendet und überprüft, ob der angemeldete Benutzername des Betriebssystems mit dem Benutzernamen für die Postgres-Datenbank übereinstimmt.
Als Standardbenutzer anmelden und verbinden
Bei den meisten Systemen ist der standardmäßige Postgres-Benutzer postgres
und ein Passwort ist für die Authentifizierung nicht erforderlich. Um also ein Passwort hinzuzufügen, müssen wir uns zuerst anmelden und als postgres
verbinden Benutzer.
$ sudo -u postgres psql
Wenn Sie erfolgreich verbunden sind und die Datei psql
anzeigen Springen Sie nach unten zu Ändern des Passworts Abschnitt.
Wenn Sie eine Fehlermeldung erhalten haben, dass die Datenbank „postgres“ nicht existiert, versuchen Sie, eine Verbindung zu template1
herzustellen Datenbank und fahren Sie bei Erfolg mit Passwort ändern fort .
$ sudo -u postgres psql template1
Authentifizierungsfehler
Wenn Sie beim Versuch, eine Verbindung mit psql
herzustellen, einen Authentifizierungsfehler erhalten client, müssen Sie möglicherweise die Konfigurationsdatei für die Postgres-Authentifizierung (pg_hfa.conf) ändern.
Öffnen Sie die Konfigurationsdatei, die sich normalerweise unter /etc/postgresql/#.#/main/pg_hba.conf
befindet , wobei #.#
ist die von Ihnen verwendete Postgres-Version:
$ sudo nano /etc/postgresql/9.3/main/pg_hba.conf
Die Auth-Konfigurationsdatei ist eine Liste von Authentifizierungsregeln. Scrollen Sie in der Datei nach unten, bis Sie die erste Zeile finden, die postgres
anzeigt Benutzer in der dritten Spalte (falls eine solche Zeile vorhanden ist). Kommentieren Sie die Zeile bei Bedarf aus (entfernen Sie das Semikolon), oder fügen Sie andernfalls, wenn die Zeile vollständig fehlt, die folgende Zeile am Anfang der Datei hinzu und speichern Sie Ihre Änderungen:
local all postgres peer
Diese Authentifizierungsregel teilt Postgres einfach mit, dass lokale Verbindungen zu allen Datenbanken für den Benutzer postgres
hergestellt werden , authentifizieren Sie sich mit dem peer
Protokoll.
Hinweis:Einige ältere Versionen von Postgres bevorzugen die standardmäßige Authentifizierungsmethode von ident, aber die meisten modernen Installationen verwenden stattdessen Peer wie oben angegeben. Möglicherweise müssen Sie beide testen, wenn Ihre Ergebnisse abweichen.
Wiederholen Sie nun mit aktualisierter Konfigurationsdatei die Schritte in Anmelden und als Standardbenutzer verbinden Abschnitt, um zu versuchen, eine Verbindung als standardmäßiges postgres
herzustellen Benutzer. Sobald dies erfolgreich war, fahren Sie mit der Änderung des Passworts fort.
Passwort ändern
Mit einer jetzt hergestellten Verbindung zu Postgres im psql
geben Sie ALTER USER
ein Befehl, um das Passwort für postgres
zu ändern Benutzer:
postgres=# ALTER USER postgres PASSWORD 'myPassword';
ALTER ROLE
Bei Erfolg gibt Postgres eine Bestätigung von ALTER ROLE
aus wie oben zu sehen.
Beenden Sie schließlich psql
Client mithilfe von \q
Befehl.
postgres=# \q
Sie sind fertig. Das standardmäßige postgres
Der Benutzer hat jetzt ein mit dem Konto verknüpftes Passwort zur Verwendung in Ihren anderen Anwendungen.