PostgreSQL auf Ubuntu 22.04 installieren und absichern
PostgreSQL ist ein leistungsstarkes, quelloffenes relationales Datenbankmanagementsystem (RDBMS), das für ein breites Spektrum an Datenaufgaben entwickelt wurde. Es unterstützt SQL und eignet sich sowohl für kleine Projekte als auch für umfangreiche Anwendungen wie Analysen, GIS, Lösungen im Gesundheitswesen und dynamische Webplattformen.
Diese Anleitung erklärt, wie Sie PostgreSQL auf einem Ubuntu-22.04-Server installieren und für den Produktionseinsatz absichern.
Voraussetzungen
Stellen Sie vor dem Start sicher:
- Ein Ubuntu-22.04-Server ist verfügbar.
- Zugriff auf den Server über SSH als Nicht-Root-Benutzer mit Sudo-Rechten.
- Der Server ist mit den neuesten Paketen aktualisiert.
PostgreSQL installieren
PostgreSQL ist in den Standard-APT-Repositories von Ubuntu enthalten. Folgen Sie diesen Schritten, um PostgreSQL zu installieren und so zu konfigurieren, dass es beim Systemstart automatisch gestartet wird.
Server-Paketindex aktualisieren
$ sudo apt update
Abhängigkeit postgresql-common installieren
$ sudo apt install -y postgresql-common -y
PostgreSQL-APT-Repository-Skript ausführen
$ sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
Drücken Sie bei Aufforderung die Eingabetaste, um das neue Repository zu den Serverquellen hinzuzufügen.
Dieses Skript aktiviert das PostgreSQL-APT-Repository (apt.postgresql.org) auf Ihrem System. Der verwendete Distributions-Codename lautet noble-pgdg.
Drücken Sie Enter, um fortzufahren, oder Strg-C, um abzubrechen.
PostgreSQL-Datenbankserver installieren
$ sudo apt install -y postgresql
PostgreSQL-Dienst starten
$ sudo systemctl start postgresql
Status des PostgreSQL-Dienstes prüfen
$ sudo systemctl status postgresql
Beispielausgabe:
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/usr/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Mon 2024-05-27 16:09:21 UTC; 35s ago
Process: 5601 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5601 (code=exited, status=0/SUCCESS)
CPU: 3ms
PostgreSQL-Datenbankserver absichern
PostgreSQL verwendet standardmäßig das Benutzerkonto postgres. Gehen Sie wie folgt vor, um die Passwortauthentifizierung zu aktivieren und den Server zu sichern, sodass nur autorisierte Benutzer Zugriff haben.
Installierte PostgreSQL-Version prüfen
$ psql --version
Beispielausgabe:
psql (PostgreSQL) 17.4 (Ubuntu 17.4-1.pgdg22.04+2)
Als Benutzer postgres anmelden
$ sudo -u postgres psql
Starkes Passwort für den Benutzer postgres setzen
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'strong_password';
Neuen Benutzer mit sicherem Passwort anlegen
postgres=# CREATE USER db_manager ENCRYPTED PASSWORD 'strong_password';
PostgreSQL-Konsole verlassen
postgres=# quit;
Passwortauthentifizierung aktivieren
Führen Sie den folgenden Befehl aus, um den Standardwert peer im Feld scram-sha-256 der Hauptkonfigurationsdatei pg_hba.conf zu ändern. Damit wird die Passwortauthentifizierung auf dem Server aktiviert.
$ sudo sed -i '/^local/s/peer/scram-sha-256/' /etc/postgresql/17/main/pg_hba.conf
Ersetzen Sie 17 durch die installierte PostgreSQL-Versionsnummer, falls sie abweicht.
PostgreSQL neu starten, um Änderungen zu übernehmen
$ sudo systemctl restart postgresql
Auf den PostgreSQL-Datenbankserver zugreifen
Greifen Sie auf die PostgreSQL-Konsole mit dem integrierten psql-Tool oder grafischen Tools für direkte Verbindungen zu. Die folgenden Schritte zeigen, wie Sie eine neue Beispieldatenbank erstellen und einem nicht privilegierten Benutzer zuweisen.
Beispieldatenbank erstellen
Erstellen Sie eine neue PostgreSQL-Datenbank namens hospital und übertragen Sie dem Benutzer db_manager die Eigentumsrechte.
$ sudo -u postgres createdb hospital -O db_manager
Geben Sie bei Aufforderung das zuvor vergebene Postgres-Benutzerpasswort ein.
Als db_manager in die Datenbank einloggen
Testen Sie den Zugriff auf die Datenbank hospital mit dem Benutzer db_manager:
$ sudo -u postgres psql -U db_manager -d hospital
Geben Sie das Passwort des Datenbankbenutzers ein und drücken Sie Enter, um Zugriff zu erhalten.
Tabelle doctors erstellen
Erstellen Sie innerhalb der Datenbank eine Tabelle namens doctors:
hospital=> CREATE TABLE doctors (
doctor_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
appointment_date DATE
);
Dieses SQL-Statement erstellt eine Tabelle mit folgenden Spalten:
- doctor_id als Primärschlüssel zur eindeutigen Identifizierung jedes Arztes.
- first_name und last_name zur Speicherung der Namen.
- appointment_date zur Speicherung des Termindatums.
- SERIAL erzeugt automatisch eine eindeutige ID für jeden Datensatz.
Beispieldaten einfügen
Fügen Sie einige Beispieldatensätze in die Tabelle doctors ein:
hospital=> INSERT INTO doctors
( first_name, last_name, appointment_date)
VALUES
( 'Ben', 'Joe', '2024-11-15'),
( 'Carson', 'Smith', '2024-02-28'),
( 'Donald', 'James', '2024-04-10');
Tabelle doctors abfragen
Rufen Sie alle Datensätze aus der Tabelle ab:
hospital=> SELECT * FROM doctors;
Beispielausgabe:
doctor_id | first_name | last_name | appointment_date
-----------+------------+-----------+------------------
1 | Ben | Joe | 2024-11-15
2 | Carson | Smith | 2024-02-28
3 | Donald | James | 2024-04-10
(3 rows)
PostgreSQL-Konsole beenden
hospital=> \q
Fazit
In diesem Artikel haben Sie PostgreSQL auf Ubuntu 22.04 installiert, es für mehr Sicherheit konfiguriert und mit dem Tool psql eine Datenbank und Tabellen erstellt. PostgreSQL ist nun bereit, sicher und effizient in Ihre Anwendungen integriert zu werden. Weitere Details finden Sie in der offiziellen PostgreSQL-Dokumentation.


