PostgreSQL auf Ubuntu 25.04 installieren und absichern
PostgreSQL ist ein leistungsstarkes, quelloffenes relationales Datenbanksystem, das für seine Stabilität, Skalierbarkeit und erweiterten Funktionen wie JSON-Unterstützung, benutzerdefinierte Datentypen und komplexe Abfragen bekannt ist. Es eignet sich ideal zur Verwaltung großer Datenmengen in Bereichen wie Analytik, GIS und dynamischen Webanwendungen. Dank jahrzehntelanger Entwicklung und einer starken Community bietet PostgreSQL Zuverlässigkeit und Datensicherheit. Entwickler schätzen seine Flexibilität und die nahtlose Integration in moderne Datenworkflows.
Diese Anleitung zeigt, wie PostgreSQL auf einem Ubuntu-25.04-Server installiert, automatisch gestartet und für Produktionsumgebungen abgesichert wird.
Voraussetzungen
Bevor Sie beginnen, stellen Sie Folgendes sicher:
- Zugriff auf einen Ubuntu-25.04-Server mit einem Nicht-Root-Benutzer und Sudo-Rechten.
PostgreSQL installieren
PostgreSQL ist in der Standard-APT-Repository von Ubuntu enthalten, was die Installation vereinfacht. Befolgen Sie die folgenden Schritte, um PostgreSQL zu installieren, das offizielle Repository hinzuzufügen und sicherzustellen, dass der Dienst beim Systemstart automatisch ausgeführt wird. Nach Abschluss dieser Schritte ist PostgreSQL einsatzbereit.
APT-Paketindex aktualisieren
$ sudo apt update
PostgreSQL-Common-Paket installieren
Installieren Sie das Paket, das allgemeine Dienstprogramme und Konfigurationen für PostgreSQL bereitstellt.
$ sudo apt install -y postgresql-common
PostgreSQL-APT-Repository hinzufügen
Führen Sie das Setup-Skript aus, um das offizielle PostgreSQL-Repository auf Ihrem System hinzuzufügen.
$ sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
Wenn Sie dazu aufgefordert werden, drücken Sie Enter, um fortzufahren:
Dieses Skript aktiviert das PostgreSQL-APT-Repository von apt.postgresql.org auf Ihrem System. Der verwendete Distributionscodename lautet plucky-pgdg. Drücken Sie Enter, um fortzufahren, oder Strg-C, um abzubrechen.
PostgreSQL-Serverpaket installieren
$ sudo apt install -y postgresql
PostgreSQL-Dienst starten
$ sudo systemctl start postgresql
PostgreSQL beim Systemstart aktivieren
Stellen Sie sicher, dass PostgreSQL beim Neustart automatisch gestartet wird.
$ sudo systemctl enable postgresql
Beispielausgabe:
Synchronisiere Status von postgresql.service mit SysV-Dienstskript unter /usr/lib/systemd/systemd-sysv-install. Ausführen: /usr/lib/systemd/systemd-sysv-install enable postgresql
Status des PostgreSQL-Dienstes prüfen
$ sudo systemctl status postgresql
Erwartete Ausgabe:
● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: enabled)
    Active: active (exited) since Do 2025-09-18 17:50:25 UTC; 1min 32s ago
...
PostgreSQL-Datenbankserver absichern
PostgreSQL verwendet standardmäßig das postgres-Superuser-Konto für administrative Aufgaben wie Benutzer- und Datenbankverwaltung. Auf Ubuntu ist standardmäßig die Peer-Authentifizierung aktiviert, die nur lokale Benutzer ohne Passwort zulässt. Um die Sicherheit zu erhöhen, folgen Sie den nachstehenden Schritten, um die Passwortauthentifizierung zu aktivieren und den Zugriff auf autorisierte Benutzer zu beschränken.
PostgreSQL-Version prüfen
$ psql --version
Beispielausgabe:
psql (PostgreSQL) 17.6 (Ubuntu 17.6-1.pgdg25.04+1)
Als postgres-Benutzer anmelden
$ sudo -u postgres psql
Neues Passwort für den Benutzer postgres festlegen
Legen Sie in der PostgreSQL-Konsole ein sicheres Passwort fest:
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'starkes_passwort';
Ersetzen Sie starkes_passwort durch ein zufällig generiertes, sicheres Passwort.
Neuen Benutzer erstellen
Erstellen Sie einen Benutzer mit dem Namen park_admin und vergeben Sie ein sicheres Passwort:
postgres=# CREATE USER park_admin ENCRYPTED PASSWORD 'starkes_passwort';
PostgreSQL-Konsole beenden
postgres=# EXIT;
Passwort-Authentifizierung aktivieren
Bearbeiten Sie die Konfigurationsdatei pg_hba.conf, um die Passwortauthentifizierung zu aktivieren.
$ sudo sed -i '/^local/s/peer/scram-sha-256/' /etc/postgresql/17/main/pg_hba.conf
Wenn Ihre PostgreSQL-Version abweicht, ersetzen Sie 17 durch Ihre installierte Version.
PostgreSQL-Dienst neu starten
Starten Sie den PostgreSQL-Dienst neu, um die Änderungen zu übernehmen.
$ sudo systemctl restart postgresql
Status von PostgreSQL prüfen
Überprüfen Sie, ob der PostgreSQL-Dienst ordnungsgemäß läuft.
$ sudo systemctl status postgresql
Beispielausgabe:
● postgresql.service - PostgreSQL RDBMS
    Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: enabled)
    Active: active (exited) since Do 2025-09-18 18:25:59 UTC; 948ms ago
...
Zugriff auf den PostgreSQL-Datenbankserver
Sie können über das vorinstallierte Dienstprogramm psql auf die PostgreSQL-Datenbankkonsole zugreifen, das standardmäßig im Serverpaket enthalten ist. Alternativ können Sie auch grafische Tools verwenden, die eine direkte Verbindung zu Ihrer PostgreSQL-Instanz herstellen. Befolgen Sie die folgenden Schritte, um sich anzumelden und eine Beispieldatenbank für einen nicht privilegierten Benutzer zu erstellen.
Beispieldatenbank erstellen
Erstellen Sie eine neue PostgreSQL-Datenbank mit dem Namen amusement_park und weisen Sie dem Benutzer park_admin den Besitz zu.
$ sudo -u postgres createdb amusement_park -O park_admin
Wenn Sie dazu aufgefordert werden, geben Sie das zuvor erstellte Passwort des postgres-Benutzers ein.
Als Benutzer park_admin anmelden
Melden Sie sich mit den Zugangsdaten des Benutzers park_admin an der PostgreSQL-Datenbank an.
$ sudo -u postgres psql -U park_admin -d amusement_park
Wenn Sie zur Eingabe aufgefordert werden, geben Sie das Passwort des Benutzers park_admin ein und drücken Sie Enter, um auf die Datenbank zuzugreifen.
Neue Tabelle erstellen
Erstellen Sie eine Tabelle namens visitors in der Datenbank amusement_park.
amusement_park=> CREATE TABLE visitors (
    visitor_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    entry_date DATE
);
Dieser SQL-Befehl erstellt eine Tabelle mit den folgenden Spalten:
- visitor_id: Primärschlüssel, der jeden Datensatz eindeutig identifiziert.
- SERIAL: Generiert automatisch eine fortlaufende ID für neue Einträge.
- first_name und last_name: Speichern den Namen des Besuchers.
- entry_date: Speichert das Datum des Besuchseintritts.
Beispieldaten einfügen
Fügen Sie Beispielbesucherdaten in die Tabelle visitors ein.
amusement_park=> INSERT INTO visitors
    (first_name, last_name, entry_date)
    VALUES
    ('Alice', 'Wong', '2024-11-15'),
    ('Brian', 'Taylor', '2024-02-28'),
    ('Clara', 'Nguyen', '2024-04-10');
Tabelle „visitors“ abfragen
Rufen Sie alle Datensätze aus der Tabelle visitors ab.
amusement_park=> SELECT * FROM visitors;
Beispielausgabe:
 visitor_id | first_name | last_name | entry_date 
------------+------------+-----------+------------
          1 | Alice      | Wong      | 2024-11-15
          2 | Brian      | Taylor    | 2024-02-28
          3 | Clara      | Nguyen    | 2024-04-10
(3 rows)
PostgreSQL-Konsole beenden
Beenden Sie die psql-Konsole, wenn Sie fertig sind.
amusement_park=> EXIT;
Fazit
Sie haben erfolgreich PostgreSQL auf Ihrem Ubuntu-25.04-Server installiert, die Datenbank abgesichert und mit dem Dienstprogramm psql eine Beispieldatenbank mit einer Tabelle erstellt. Sie können PostgreSQL nun in Ihre Anwendungen integrieren, um Daten sicher zu verwalten. Weitere Informationen und Konfigurationsoptionen finden Sie in der offiziellen PostgreSQL-Dokumentation.


