Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung

Wie man Datenbanken in PostgreSQL verwaltet: Ein vollständiger Leitfaden für Linux VPS-Benutzer

PostgreSQL (commonly called Postgres) ist eines der leistungsstärksten, funktionsreichsten Open-Source-Verwaltungssysteme für relationale Datenbanken, das heute verfügbar ist. Vertraut von Startups und Enterprise-Teams gleichermaßen, zeichnet es sich durch die Verarbeitung komplexer Abfragen, großer Datenmengen und skalierbarer Anwendungsarchitekturen aus. Egal ob Sie eine SaaS-Plattform, einen E-Commerce-Shop oder ein datenintensives API-Backend aufbauen – PostgreSQL bietet die Zuverlässigkeit und Leistung, die Ihr Projekt benötigt.

Das Ausführen von PostgreSQL in einer hochperformanten VPS Hosting-Umgebung – mit NVMe SSD-Speicher, vollständigem Root-Zugriff und integriertem DDoS-Schutz – gibt Ihnen vollständige Kontrolle über Ihre Datenbankinfrastruktur ohne den Overhead verwalteter Cloud-Lösungen. Dieser Leitfaden führt Sie durch jede wesentliche PostgreSQL-Verwaltungsaufgabe, von der ersten Anmeldung und Datenbankerstellung bis hin zu Benutzerberechtigungen, Sicherungen und Sicherheitshärtung.

Voraussetzungen

Stellen Sie vor dem Fortfahren sicher, dass Sie über Folgendes verfügen:

  • Ein Linux VPS mit Ubuntu, Debian oder CentOS und installiertem PostgreSQL
  • Root- oder sudo-Zugriff auf Ihren Server
  • Grundlegende Vertrautheit mit der Linux-Befehlszeile

Falls Sie Ihre Serverumgebung noch nicht eingerichtet haben, machen AlexHost's VPS Control Panels es einfach, Ihren Stack schnell zu konfigurieren.

1. Zugriff auf die PostgreSQL-Befehlszeilenschnittstelle

Alle PostgreSQL-Verwaltungsaufgaben beginnen an der Befehlszeilenschnittstelle (CLI), auch bekannt als psql. Standardmäßig erstellt PostgreSQL während der Installation einen Systembenutzer namens postgres, und dieses Konto wird zur Authentifizierung bei der Datenbank-Engine verwendet.

Schritt 1: Zum PostgreSQL-Systembenutzer wechseln

sudo -i -u postgres

Schritt 2: Starten Sie die PostgreSQL CLI

psql

Nach der Verbindung wird die interaktive Eingabeaufforderung angezeigt:

postgres=#

Dies bestätigt, dass Sie sich in der PostgreSQL-Umgebung befinden und bereit sind, SQL-Befehle und Meta-Befehle auszuführen.

> Pro-Tipp: Sie können sich auch direkt verbinden, ohne Benutzer zu wechseln, indem Sie sudo -u postgres psql aus Ihrer regulären Shell-Sitzung ausführen.

2. Erstellen einer neuen Datenbank

Datenbanken sind die Top-Level-Container für alle Ihre Tabellen, Indizes und gespeicherten Daten. Verwenden Sie die CREATE DATABASE Anweisung, um eine neue Datenbank bereitzustellen.

Syntax

CREATE DATABASE database_name;

Beispiel

CREATE DATABASE my_database;

Dies erstellt eine Datenbank namens my_database im Besitz der aktuell aktiven PostgreSQL-Rolle.

Überprüfen Sie, ob die Datenbank erstellt wurde

Verwenden Sie den l Meta-Befehl, um alle Datenbanken auf dem Server aufzulisten:

l

Sie sehen eine Tabelle mit Datenbanknamen, Besitzern, Codierungen und Zugriffsprivilegien.

3. Erstellen und Verwalten von Datenbankbenutzern

Eine ordnungsgemäße Benutzerverwaltung ist für die Datenbanksicherheit von entscheidender Bedeutung. Anstatt allen Anwendungen Zugriff unter dem postgres Superuser-Konto zu gewähren, sollten Sie dedizierte Benutzer mit eingeschränkten Berechtigungen erstellen.

Neuen Benutzer erstellen

CREATE USER username WITH PASSWORD 'your_secure_password';

Beispiel

CREATE USER dbuser WITH PASSWORD 'StrongP@ssword123';

Vollständigen Zugriff auf eine bestimmte Datenbank gewähren

GRANT ALL PRIVILEGES ON DATABASE database_name TO username;

Beispiel

GRANT ALL PRIVILEGES ON DATABASE my_database TO dbuser;

Dies gewährt dbuser vollständigen Lese- und Schreibzugriff auf my_database, einschließlich der Möglichkeit, Tabellen zu erstellen und zu löschen.

Alle Benutzer auflisten

Um alle vorhandenen Rollen und Benutzer anzuzeigen:

du

4. Verbindung zu einer Datenbank herstellen

Sobald eine Datenbank vorhanden ist, müssen Sie sich mit ihr verbinden, bevor Sie Tabellen erstellen oder Abfragen ausführen können.

Zu einer Datenbank wechseln

c my_database

Die Eingabeaufforderung wird aktualisiert, um die aktive Datenbank widerzuspiegeln:

my_database=#

Sie arbeiten jetzt innerhalb von my_database und können alle DDL- und DML-Anweisungen dagegen ausführen.

5. Erstellen und Verwalten von Tabellen

Tabellen sind die grundlegende strukturelle Einheit jeder relationalen Datenbank. Jede Tabelle definiert ein Schema — einen Satz benannter Spalten mit spezifischen Datentypen und Einschränkungen.

Tabelle erstellen

CREATE TABLE table_name (
    column1 data_type PRIMARY KEY,
    column2 data_type,
    column3 data_type
);

Praktisches Beispiel: Tabelle für Mitarbeiterdatensätze

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    department  VARCHAR(50),
    salary      NUMERIC(10, 2)
);

Hier erhöht SERIAL die employee_id automatisch bei jeder neuen Zeile, und NOT NULL stellt sicher, dass jeder Mitarbeiter einen Namen haben muss.

6. Einfügen, Abfragen, Aktualisieren und Löschen von Daten

Einen Datensatz einfügen

INSERT INTO employees (name, department, salary)
VALUES ('Jane Smith', 'Engineering', 72000);

Alle Datensätze abfragen

SELECT * FROM employees;

Ergebnisse mit einer WHERE-Klausel filtern

SELECT name, salary FROM employees WHERE department = 'Engineering';

Einen vorhandenen Datensatz aktualisieren

UPDATE employees
SET salary = 78000
WHERE name = 'Jane Smith';

Einen bestimmten Datensatz löschen

DELETE FROM employees
WHERE name = 'Jane Smith';

> Best Practice: Verwenden Sie immer eine WHERE Klausel mit UPDATE und DELETE Anweisungen. Das Weglassen führt dazu, dass jede Zeile in der Tabelle betroffen ist.

7. Verwaltung von Datenbankzugriff und Sicherheit

Sicherheit ist ein erstrangiges Anliegen bei jeder produktiven PostgreSQL-Bereitstellung. Das Prinzip der minimalen Berechtigung — Benutzern nur die Berechtigungen zu gewähren, die sie tatsächlich benötigen — reduziert Ihre Angriffsfläche drastisch.

Alle Berechtigungen von einem Benutzer widerrufen

REVOKE ALL PRIVILEGES ON DATABASE my_database FROM dbuser;

Schreibgeschützten Zugriff auf eine bestimmte Tabelle gewähren

GRANT SELECT ON TABLE employees TO dbuser;

Dies ermöglicht dbuser die Abfrage der Tabelle employees, verhindert aber alle Einfügungen, Aktualisierungen oder Löschungen.

Spezifische DML-Berechtigungen gewähren

GRANT SELECT, INSERT, UPDATE ON TABLE employees TO dbuser;

Zusätzliche Sicherheitsempfehlungen

  • Verwenden Sie starke, eindeutige Passwörter für jeden Datenbankbenutzer
  • Deaktivieren Sie den Remote-Zugriff für den Superuser postgres in pg_hba.conf
  • Aktivieren Sie SSL-Verbindungen, um Daten während der Übertragung zu verschlüsseln — kombinieren Sie dies mit einem vertrauenswürdigen SSL-Zertifikat auf Ihrem Server
  • Überprüfen Sie regelmäßig Benutzerberechtigungen mit du und dp
  • Halten Sie PostgreSQL aktuell, um bekannte Sicherheitslücken zu beheben

8. Sicherung und Wiederherstellung von Datenbanken

Regelmäßige Sicherungen sind unverzichtbar für jede Produktionsdatenbank. PostgreSQL bietet die pg_dump und psql Dienstprogramme für unkomplizierte Sicherungs- und Wiederherstellungs-Workflows.

Eine Datenbank in einer SQL-Datei sichern

pg_dump my_database > my_database_backup.sql

Dies exportiert das gesamte Datenbankschema und die Daten als ein einfaches SQL-Skript.

Sicherung im komprimierten Format (empfohlen für große Datenbanken)

pg_dump -Fc my_database > my_database_backup.dump

Das benutzerdefinierte Format (-Fc) erzeugt eine komprimierte Binärdatei und unterstützt parallele Wiederherstellung.

Eine Datenbank aus einer SQL-Sicherung wiederherstellen

psql my_database < my_database_backup.sql

Wiederherstellung aus einer benutzerdefinierten Sicherung

pg_restore -d my_database my_database_backup.dump

Sicherungen mit einem Cron-Job automatisieren

Planen Sie tägliche Sicherungen, indem Sie einen Cron-Eintrag hinzufügen:

crontab -e
0 2 * * * pg_dump my_database > /var/backups/postgres/my_database_$(date +%F).sql

Dies führt täglich um 2:00 Uhr eine Sicherung durch und fügt das Datum zum Dateinamen hinzu, um eine einfache Versionierung zu ermöglichen.

9. Tabellen und Datenbanken löschen

Wenn eine Tabelle oder Datenbank nicht mehr benötigt wird, verwenden Sie den DROP Befehl, um sie dauerhaft zu entfernen.

Eine Tabelle löschen

DROP TABLE table_name;

Beispiel

DROP TABLE employees;

Eine Tabelle nur löschen, wenn sie existiert (sicherere Syntax)

DROP TABLE IF EXISTS employees;

Eine Datenbank löschen

Sie müssen die Verbindung zur Zieldatenbank trennen, bevor Sie sie löschen. Wechseln Sie zuerst zur Standard-Datenbank postgres:

c postgres

Dann löschen Sie das Ziel:

DROP DATABASE my_database;

> Warnung: DROP DATABASE ist nicht rückgängig zu machen. Überprüfen Sie immer, dass Sie ein aktuelles Backup haben, bevor Sie diesen Befehl in der Produktion ausführen.

10. Nützliche PostgreSQL Meta-Commands Referenz

Die psql CLI enthält einen umfangreichen Satz von Meta-Commands (mit vorangestellt), die Navigation und Inspektion vereinfachen:

BefehlBeschreibung
lAlle Datenbanken auflisten
c dbnameMit einer Datenbank verbinden
dtAlle Tabellen in der aktuellen Datenbank auflisten
d table_nameSchema einer Tabelle beschreiben
duAlle Benutzer und Rollen auflisten
dpTabellenzugriffsrechte anzeigen
timingAnzeige der Abfrageausführungszeit umschalten
qPostgreSQL CLI beenden

11. Beenden der PostgreSQL CLI

Wenn Sie Ihre Sitzung beendet haben, beenden Sie sie sauber mit:

q

Dies bringt Sie zurück zur Linux Shell-Eingabeaufforderung.

Warum PostgreSQL auf einem AlexHost VPS ausführen?

Performance und Kontrolle sind die zwei wichtigsten Gründe, PostgreSQL auf einem dedizierten VPS selbst zu hosten, anstatt sich auf einen gemeinsamen oder verwalteten Datenbankdienst zu verlassen. Mit AlexHost-Infrastruktur erhalten Sie:

  • NVMe SSD-Speicher für ultraschnelle Lese-/Schreibvorgänge bei großen Datensätzen
  • Vollständiger Root-Zugriff zur genauen Konfiguration von PostgreSQL nach den Anforderungen Ihrer Anwendung
  • DDoS-Schutz um Ihren Datenbankserver unter ungünstigen Netzwerkbedingungen verfügbar zu halten
  • Skalierbare Ressourcen — upgraden Sie Ihre CPU, RAM und Speicher, wenn Ihre Daten wachsen

Für Teams, die mehrere Anwendungen oder Kundenprojekte verwalten, bieten Dedicated Servers noch größere Isolation, rohe Performance und vorhersehbare Latenz für datenbankintensive Workloads.

Wenn Sie Webanwendungen neben Ihren PostgreSQL-Datenbanken hosten, kann die Kombination Ihres VPS mit Shared Web Hosting für statische Assets oder Front-End-Bereitstellung Ihre Architektur weiter optimieren und Kosten senken.

Fazit

Die Beherrschung der PostgreSQL-Datenbankverwaltung auf einem Linux VPS gibt dir vollständige Kontrolle über deine Dateninfrastruktur – von der Schemagestaltung und Benutzergenehmigungen bis zu automatisierten Sicherungen und Sicherheitshärtung. Die in diesem Leitfaden behandelten Befehle und Workflows stellen die grundlegenden Fähigkeiten dar, die jeder Entwickler und Systemadministrator benötigt, um PostgreSQL sicher in der Produktion zu betreiben.

Schnellreferenz-Zusammenfassung:

  • Verwende CREATE DATABASE und CREATE USER um neue Ressourcen bereitzustellen
  • Wende das Prinzip der geringsten Berechtigung mit GRANT und REVOKE an
  • Sichere immer mit pg_dump ab, bevor du destruktive Änderungen vornimmst
  • Verwende l, dt und du um deine Umgebung auf einen Blick zu überprüfen
  • Plane automatisierte Sicherungen über cron, um dich vor Datenverlust zu schützen

Bereit, diese Fähigkeiten in die Praxis umzusetzen? Starten Sie eine vollständig verwaltete Linux-Umgebung auf einem AlexHost VPS Hosting Plan und übernehmen Sie noch heute die vollständige Kontrolle über Ihre PostgreSQL-Bereitstellung.