In dieser Anleitung wird gezeigt, wie man PostgreSQL unter Ubuntu Linux installiert. Außerdem wird eine Möglichkeit zur Erstellung eines eigenen Root-Benutzers mit einem Passwort und die Aktivierung von passwort-basierter Authentifizierung erklärt.

Installation von PostgreSQL

PostgreSQL kann unter Ubuntu Linux über die System-Pakete installiert werden.

Bash
sudo apt update
sudo apt install postgresql

Vor jeder Installation von Paketen sollte der update Befehl ausgeführt werden, um die neuste verfügbare Version der gewünschten Software zu installieren.

Die Installation erfolgt mit Standard-Konfiguration.

Root-Benutzer mit einem Passwort erstellen

Für meine lokale PostgreSQL-Instanzen verwende ich immer einen Benutzer root, den ich sowohl für MySQL/MariaDB als auch für PostgreSQL erstelle. Diesen verwende ich in verschiedenen Web-Anwendungen, bei denen ein eigener Benutzer für die lokale Entwicklung nicht von großer Bedeutung ist. Das sind hauptsächlich CMS wie WordPress oder Onlineshops wie JTL-Shop, die das Management der Datenbank inkl. der Verbindung für einen übernehmen. Man konfiguriert lediglich die Angaben. In diesem Fall kommt der root-Benutzer bei mir im Einsatz mit der Angabe der gewünschten Ziel-Datenbank.

In Fällen von Sonder-Entwicklungen oder Web-Anwendungen bei denen man die Konfiguration rund um die Datenbank selbst schreibt und die korrekte Verbindung der Anwendung sicherstellt, erstelle ich einen eigenen Benutzer und eine entsprechende Datenbank, bei der der Benutzer der Besitzer ist und nur auf diese Datenbank berechtigt wird.

Dies ist nur meine persönliche Präferenz für lokale Entwicklungen und kandidiert nicht als Wahrheit in letzter Instanz für alle Entwickler da draußen.

PostgreSQL erstellt während der Installation einen neuen System-Benutzer. Diesen kann man in der /etc/passwd Datei sehen.

PostgreSQL - Neuer System-Benutzer

Alternativ kann man nach dem Benutzer postgres suchen.

Bash
cut -d: -f1 /etc/passwd | grep postgres

PostgreSQL - System-Benutzer prüfen

1 - Als PostgreSQL-Benutzer anmelden

Um einen neuen Benutzer zu erstellen, wechseln wir zu diesem Benutzer.

Bash Benutzer wechseln
sudo su postgres

PostgreSQL - Zum Postgres-Benutzer wechseln

2 - Neuen Benutzer erstellen

Nun wird das Wizard für die Erstellung eines neuen Benutzers wie folgt aufgerufen. Diesen Befehl führt man als postgres Benutzer aus.

Hinweis: An dieser Stelle wird man keine Möglichkeit haben, um das Passwort anzugeben. Das wird im nächsten Schritt vorgenommen.

Bash Neuen Benutzer erstellen
createuser --interactive

PostgreSQL - Neuen Benutzer erstellen

3 - Passwort für den neuen Benutzer setzen

Um nun ein Passwort für den neu erstellten Benutzer zu erstellen, muss man sich an der PostgreSQL-Instanz anmelden. Man ist an dieser Stelle immer noch als postgres Benutzer angemeldet.

Bash PSQL starten
psql

Nach erfolgreicher Anmeldung, können wir nun ein beliebiges, gewünschtes Passwort für den neuen Benutzer setzen.

Das Schema zum Setzen/Ändern des Passworts für einen Benutzer innerhalb von PostgreSQL sieht wie folgt aus.

PSQL
\password <dein_benutzer>

In meinem Fall hatte ich den Benutzer root erstellt, daher wird dieser hier eingesetzt.

PSQL Passwort setzen
\password root

PostgreSQL - Passwort für den neuen Benutzer setzen

Es kommt zwei Mal die Aufforderung zur Eingabe des gewünschten Passwortes.

Anmeldung mit Passwort aktivieren

Im Falle von Ubuntu (Linux Mint) befindet sich die notwendige Konfigurationsdatei, in der die Anpassung/Änderung zu erfolgen hat unter folgendem Pfad.

PG_HBA
/etc/postgresql/16/main/pg_hba.conf

In meinem Fall ist die Version 16 installiert, daher haben wir hier auch den Ordner 16 im Pfad. Auf neueren Systemen heißt der Ordner entsprechend 17 oder 18. Welche Version aktiv ist, lässt sich mit pg_lsclusters prüfen. In diesem Ordner befindet sich, neben weiteren Konfigurationsdateien, auch die pg_hba.conf.

PostgreSQL - Konfigurationsdatei für Anmeldung

Diese Datei soll (in der Regel als root-Benutzer des Systems) geöffnet werden. In dieser Datei ist folgender Abschnitt gefragt.

PostgreSQL - Konfigurationsdatei - relevate Stelle

Hier soll nun sichergestellt werden, dass die Werte auf scram-sha-256 gesetzt sind.

PostgreSQL - Konfigurationsdatei - Methode ändern

Nach diesen Änderungen muss der PostgreSQL-Service neugestartet werden.

Bash
sudo systemctl restart postgresql

Wenn man überprüfen möchte, ob der Service korrekt neugestartet wurde oder aktiv ist, kann folgender Befehl verwendet werden.

Bash
sudo systemctl status postgresql

PostgreSQL -  Neu starten

Als Root-Benutzer mit Passwort anmelden

Nachdem nun ein Root-Benutzer mit gewünschtem Passwort erstellt und die Anpassung der Konfiguration (Aktivierung der Anmeldung mit Passwort) vorgenommen ist, kann man sich als dieser Benutzer anmelden.

Wichtig: Neben der Angabe des Benutzers, mit dem man sich anmelden möchte, muss auch eine Ziel-Datenbank angegeben werden. Wenn noch keine Datenbank erstellt wurde, kann man die Standard-Datenbank postgres angeben. Diese wird während der Installation erstellt.

PostgreSQL -  Mit Passwort anmelden

Häufige Stolperfallen

Versionsnummer im Pfad zur pg_hba.conf

Der Pfad /etc/postgresql/16/main/pg_hba.conf hängt von der installierten PostgreSQL-Version ab. Auf Ubuntu 24.04 mit aktuellen Repositories landest du eher auf 17 oder 18. pg_lsclusters zeigt die aktiven Cluster mit Version, Port und Datenpfad — bevor du die Datei editierst, kurz den Pfad prüfen.

psql -U root von der Shell aus schlägt erst einmal fehl.

Standardmäßig steht in pg_hba.conf für lokale Verbindungen die Methode peer. Die prüft den System-Benutzer gegen den Postgres-Rollennamen. Aus deinem normalen User mit psql -U root heraus schlägt das fehl. Lösung: entweder erst sudo su postgres, oder die Verbindung explizit über TCP mit psql -h localhost -U root — dann greift die host-Zeile mit scram-sha-256.

trust nur für Ad-hoc-Recovery — niemals dauerhaft.

trust lässt jeden ohne Passwort durch. Praktisch, wenn du dein Postgres-Passwort vergessen hast und temporär zurücksetzen musst, aber gefährlich auf Mehrnutzer-Systemen. Nach dem Reset sofort wieder auf scram-sha-256 zurückstellen und neu starten.

scram-sha-256 ist Default seit PostgreSQL 14.

Wenn du eine ältere Installation mit md5-Passwörtern auf scram-sha-256 umstellst, funktionieren bestehende Passwörter nicht mehr automatisch. Jeder Benutzer braucht ein neu gesetztes Passwort via \password <user> — sonst verweigert Postgres nach dem Methodenwechsel die Anmeldung.

systemctl restart postgresql startet alle Cluster.

Der Service postgresql ist unter Debian/Ubuntu ein Wrapper, der beim Restart alle Cluster gemeinsam neu startet. Wenn du nur einen einzelnen Cluster neu starten willst, nutze die versions-spezifische Unit, z. B. systemctl restart postgresql@16-main.

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Grundlagen

Zur Übersicht