it-swarm.com.de

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

Ich habe gerade Postgres 8.4 unter Ubuntu 9.10 installiert und es hat mich nie gebeten, einen Superuser zu erstellen. Gibt es einen Standard-Superuser und sein Passwort? Wenn nicht, wie erstelle ich eine neue?

402
Thierry Lam

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

Dies ist der Grund: Standardmäßig ist das UNIX-Konto "postgres" gesperrt, was bedeutet, dass es nicht mit einem Kennwort angemeldet werden kann. 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:

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. B.: Sudo -u postgres psql. Beachten Sie, dass Sudo -u entsperrt den UNIX-Benutzer NICHT.

  2. durch TCP/IP-Verbindung unter Verwendung des von PostgreSQL selbst verwalteten Benutzernamens/Passworts (sogenannte TCP Authentifizierung) (dh NICHT the UNIX-Passwort).

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

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

546
user716468

Geben Sie in die Befehlszeile ein:

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

Du wirst sehen:

Enter new password: 
Enter it again:
170
dcrawkstar

Sie manipulieren Postgres über den Benutzer postgres wie folgt:

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

Gehen Sie unter Windows wie folgt vor (WICHTIG: Verwenden Sie ein Windows Administrator Konto):

  1. Öffnen Sie nach der Installation <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 Kennwort des Benutzers postgres:

    \password postgres

    und ändern Sie "Vertrauen" zurück in "md5" in pg_hba.conf.

21
M.S. Dousti

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

psql -U postgres my_database

Wo my_database ist Ihr Datenbankname.

5