Was ist der Standard-Superuser-Benutzername / Passwort für postgres nach einer Neuinstallation?


Antworten:


534

VORSICHT Die Antwort zum Ändern des UNIX-Kennworts für "postgres" durch "$ sudo passwd postgres" wird nicht bevorzugt und kann sogar GEFÄHRLICH sein !

Dies ist der Grund: Standardmäßig ist das UNIX-Konto "postgres" gesperrt, dh, es kann nicht mit einem Kennwort angemeldet werden. Wenn Sie "sudo passwd postgres" verwenden, wird das Konto sofort entsperrt. Schlimmer noch, wenn Sie das Passwort auf etwas Schwaches wie "Postgres" setzen, sind Sie einem großen Sicherheitsrisiko ausgesetzt. Beispielsweise gibt es eine Reihe von Bots, die versuchen, sich mit der Kombination aus Benutzername und Kennwort "postgres / postgres" bei Ihrem UNIX-System anzumelden.

Was Sie tun sollten, ist die Antwort von Chris James zu befolgen :

sudo -u postgres psql postgres

# \password postgres

Enter new password: 

Um es ein bisschen zu erklären. Es gibt normalerweise zwei Standardmethoden, um sich beim PostgreSQL-Server anzumelden:

  1. Durch Ausführen des Befehls "psql" als UNIX-Benutzer (sogenannte IDENT / PEER-Authentifizierung), z sudo -u postgres psql. Beachten Sie, dass sudo -uder UNIX-Benutzer NICHT entsperrt wird.

  2. über eine TCP / IP-Verbindung unter Verwendung des von PostgreSQL selbst verwalteten Benutzernamens / Passworts (sogenannte TCP-Authentifizierung) (dh NICHT des UNIX-Passworts).

Sie möchten also niemals das Kennwort für das UNIX-Konto "postgres" festlegen. Lassen Sie es standardmäßig gesperrt.

Natürlich können sich die Dinge ändern, wenn Sie es anders als in der Standardeinstellung konfigurieren. Beispielsweise könnte man das PostgreSQL-Kennwort mit dem UNIX-Kennwort synchronisieren und nur lokale Anmeldungen zulassen. Das würde den Rahmen dieser Frage sprengen.


11
Also, wie sperren Sie Benutzer Postgres zurück?
Ultrajohn

3
@ultrajohn - hängt von der Distribution ab, die Sie verwenden, aber Sie können / etc / passwd bearbeiten und * anstelle des Passworts eingeben
lzap

3
/etc/shadowHier wird das Passwort @lzap aufbewahrt.
Gringo Suave

2
Richtig, Sie können entweder / sbin / nologin in / etc / passwd setzen oder * anstelle des Passworts in / etc / shadow setzen.
lzap

34
passwd --lock postgres
Stéphane

166

Geben Sie in die Befehlszeile ein:

$ sudo -u postgres psql postgres
postgres=# \password postgres

Du wirst sehen:

Enter new password: 
Enter it again:

7
Dies ist erforderlich, um ein Tool wie pgadminIII (beim Einrichten eines Serverprofils) unmittelbar nach der Installation von Postgres selbst zu verwenden. Vielen Dank!
Limist

64

Sie manipulieren Postgres über den Benutzer postgreswie folgt :

# su - postgres
$ createdb mydb
$ psql -s mydb
# create user someuser password 'somepassword';
# GRANT ALL PRIVILEGES ON DATABASE mydb TO someuser;

5
@ ThierryLam Sie müssen root sein, suum den Benutzer postgres zu erreichen, ohne ein Kennwort einzugeben. Auf den meisten Systemen ist das Postgres-Unix-Konto gesperrt (es funktioniert kein Kennwort). Dies bedeutet, dass nur root suauf dieses Konto zugreifen kann .
Voretaq7

2
Verwenden Sie sudoanstelle von su.
Reinierpost

8
Ich musste laufen sudo su - postgres: \
Jim Schubert

3
@ Jim Schubert: Du kannst auch laufen sudo -u postgres.
Reinierpost

1
sudo -u postgres psql - funktioniert auch so, dass Sie es in einem Schritt tun können.
Ominus

21

Führen Sie unter Windows die folgenden Schritte aus (WICHTIG: Verwenden Sie ein Windows- Administratorkonto ):

  1. Nach der Installation öffnen <PostgreSQL PATH>\data\pg_hba.conf.

  2. Ändern Sie diese beiden Zeilen und ändern Sie "md5" in "trust":

    host all all 127.0.0.1/32 md5

    host all all ::1/128 md5

  3. Starten Sie den PostgreSQL-Dienst neu (möglicherweise nicht erforderlich).

  4. (Optional) Öffnen Sie eine Eingabeaufforderung und ändern Sie die Codepage in 1252:

    cmd.exe /c chcp 1252

  5. Melden Sie sich bei PostgreSQL an. Es wird kein Passwort benötigt (beachten Sie den Großbuchstaben -U):

    psql -U postgres

  6. (Optional, aus Sicherheitsgründen empfohlen) Ändern Sie das postgresKennwort des Benutzers:

    \password postgres

    und ändere "trust" zurück zu "md5" in pg_hba.conf.


5

Wenn Sie versuchen, auf die PostgreSQL-Shell zuzugreifen, können Sie Folgendes eingeben:

psql -U postgres my_database

Wo my_databaseist Ihr Datenbankname?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.