PostgreSQL Installation und Absicherung auf Ubuntu 20.04
PostgreSQL ist ein leistungsstarkes, quelloffenes relationales Datenbankmanagementsystem (RDBMS), das für vielfältige Datenanforderungen geeignet ist. Mit Hilfe von Structured Query Language (SQL) verwaltet es Daten effizient in Anwendungen jeder Größe – von Analyseplattformen über GIS-Systeme und Lösungen im Gesundheitswesen bis hin zu dynamischen Webanwendungen.
In dieser Anleitung erfahren Sie, wie Sie PostgreSQL auf einem Ubuntu 20.04 Server installieren, den Datenbankdienst aktivieren und für den Produktionseinsatz absichern.
Voraussetzungen
Bevor Sie beginnen, stellen Sie Folgendes sicher:
- Ein Ubuntu 20.04 Server ist verfügbar.
- Sie haben SSH-Zugriff auf den Server als Nicht-Root-Benutzer mit
sudo-Rechten. - Der Server ist mit den neuesten Paketinformationen aktualisiert.
PostgreSQL installieren
PostgreSQL kann aus den Standard-APT-Repositories von Ubuntu installiert werden. Befolgen Sie diese Schritte, um die Datenbankserver-Pakete einzurichten und den Dienst so zu konfigurieren, dass er beim Systemstart automatisch startet.
Paketindex des Servers aktualisieren
$ sudo apt update
Abhängigkeit postgresql-common installieren
$ sudo apt install -y postgresql-common -y
PostgreSQL APT-Repository aktivieren
$ sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
Drücken Sie Enter, wenn Sie aufgefordert werden, das neue Repository zu den Systemquellen hinzuzufügen.
Dieses Skript aktiviert das PostgreSQL APT-Repository (apt.postgresql.org) auf Ihrem System. Der verwendete Distributionscodename ist noble-pgdg.
Drücken Sie Enter zum Fortfahren oder Strg-C zum Abbrechen.
Datenbankserver-Paket installieren
$ sudo apt install -y postgresql
PostgreSQL-Dienst starten
$ sudo systemctl start 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 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-Server absichern
PostgreSQL verwendet standardmäßig das privilegierte Benutzerkonto postgres. Um die Sicherheit zu erhöhen, aktivieren Sie die Passwortauthentifizierung und stellen Sie sicher, dass nur autorisierte Nutzer Zugriff haben.
Installierte PostgreSQL-Version prüfen
$ psql --version
Erwartete Ausgabe:
psql (PostgreSQL) 17.4 (Ubuntu 17.4-1.pgdg20.04+2)
Als Benutzer postgres anmelden
$ sudo -u postgres psql
Sicheres Passwort für Standardbenutzer setzen
postgres=# ALTER USER postgres WITH ENCRYPTED PASSWORD 'strong_password';
Neuen Benutzer mit Passwort erstellen
postgres=# CREATE USER db_manager ENCRYPTED PASSWORD 'strong_password';
PostgreSQL-Konsole verlassen
postgres=# quit;
Passwortauthentifizierung aktivieren
Um die Peer-Authentifizierung durch scram-sha-256 zu ersetzen, bearbeiten Sie die Hauptkonfigurationsdatei pg_hba.conf:
$ sudo sed -i '/^local/s/peer/scram-sha-256/' /etc/postgresql/17/main/pg_hba.conf
Falls Ihre installierte Version abweicht, ersetzen Sie 17 im Pfad durch die richtige Versionsnummer.
PostgreSQL-Dienst neu starten
$ sudo systemctl restart postgresql
Zugriff auf den PostgreSQL-Server
Das Dienstprogramm psql, das mit dem Serverpaket vorinstalliert ist, ermöglicht den Zugriff auf die PostgreSQL-Konsole. Alternativ können auch grafische Datenbank-Clients verwendet werden. Im Folgenden sehen Sie die Schritte, um sich mit PostgreSQL zu verbinden und eine Beispieldatenbank für einen nicht privilegierten Benutzer anzulegen.
Beispieldatenbank erstellen
Erstellen Sie eine neue Datenbank mit dem Namen hospital und geben Sie dem Benutzer db_manager Eigentumsrechte:
$ sudo -u postgres createdb hospital -O db_manager
Geben Sie bei Aufforderung das zuvor vergebene Postgres-Benutzerpasswort ein.
Datenbankzugriff testen
Melden Sie sich als db_manager bei PostgreSQL an und verbinden Sie sich mit der Datenbank hospital:
$ sudo -u postgres psql -U db_manager -d hospital
Geben Sie das Passwort für db_manager ein und drücken Sie Enter, um Zugriff zu erhalten.
Tabelle doctors erstellen
Erstellen Sie in der Datenbank eine Tabelle mit dem Namen doctors:
hospital=> CREATE TABLE doctors (
doctor_id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
appointment_date DATE
);
Diese SQL-Anweisung erstellt eine Tabelle mit folgender Struktur:
doctor_idist der Primärschlüssel und stellt sicher, dass jeder Eintrag eindeutig ist.first_nameundlast_namespeichern die Namen der Ärzte.appointment_dateerfasst das Datum der Patienten-Termine.SERIALgeneriert automatisch IDs für neue Datensätze.
Beispieldaten einfügen
Fügen Sie Beispiel-Datensä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');
Abfrage der Tabelle doctors
Rufen Sie alle Datensätze aus der Tabelle doctors ab:
hospital=> SELECT * FROM doctors;
Erwartete Ausgabe:
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)
Konsole beenden
Um die PostgreSQL-Konsole zu verlassen, führen Sie folgenden Befehl aus:
hospital=> quit;
Fazit
PostgreSQL ist nun vollständig auf Ihrem Ubuntu 20.04 Server installiert und betriebsbereit. Sie haben mit psql auf die Datenbank zugegriffen, eine Beispieldatenbank erstellt, Tabellen definiert und Datensätze eingefügt. PostgreSQL kann jetzt in Ihre Anwendungen integriert werden, um Daten sicher zu verwalten. Weitere Informationen finden Sie in der offiziellen PostgreSQL-Dokumentation.


