Zum Hauptinhalt springen

Entfernen eines Postgres-Benutzers: Eine einfache und effektive Methode

PostgreSQL – es ist ein leistungsfähiges und weit verbreitetes Datenbankmanagementsystem, das in verschiedenen Projekten weit verbreitet ist. Es ermöglicht Ihnen, Datenbankbenutzer zu erstellen, zu aktualisieren, zu löschen und zu verwalten. Es kann jedoch manchmal notwendig sein, den Postgres-Benutzer zu entfernen.

Das Entfernen eines Postgres-Benutzers kann beispielsweise erforderlich sein, wenn sich die Sicherheitsanforderungen ändern oder die Datenbank endgültig bereinigt wird. Aber bevor Sie mit der Entfernung beginnen, ist es wichtig, die Auswirkungen dieser Aktion zu verstehen.

Durch das Löschen eines Postgres-Benutzers werden alle Berechtigungen und Datenbankzugriff sowie alle Objekte, die von diesem Benutzer erstellt wurden, verloren gehen. Daher wird empfohlen, alle erforderlichen Daten vor dem Löschen eines Postgres-Benutzers zu sichern und anderen Benutzern oder Administratoren den Zugriff darauf zu ermöglichen.

In dieser Anleitung wird beschrieben, wie Sie einen Postgres-Benutzer mithilfe des Befehls dropuser entfernen. Dies ist die einfachste und zuverlässigste Methode, um einen Benutzer aus dem PostgreSQL-System zu entfernen. Beachten Sie, dass für diese Aktionen Root-Rechte erforderlich sind.

Postgres-Benutzer entfernen

Führen Sie die folgenden Schritte aus, um einen Postgres-Benutzer zu entfernen:

  1. Öffnen Sie eine Eingabeaufforderung oder ein Terminal.
  2. Geben Sie den Befehl sudo su - postgres ein und drücken Sie die Eingabetaste, um sich beim Postgres-Superuser anzumelden.
  3. Geben Sie den Befehl dropuser Benutzername ein, wobei Benutzername der Name des Benutzers ist, den Sie löschen möchten.
  4. Drücken Sie die Eingabetaste, um den Befehl auszuführen und das Löschen des Benutzers zu bestätigen.
  5. Geben Sie bei Bedarf das Postgres-Root-Passwort ein.
  6. Der Postgres-Benutzer wurde erfolgreich gelöscht!

Nachdem ein Postgres-Benutzer gelöscht wurde, werden alle mit diesem Benutzer verknüpften Daten und Einstellungen ebenfalls gelöscht. Seien Sie vorsichtig, wenn Sie diese Operation durchführen, da sie irreversibel ist.

Erstellen einer Punktsicherung

Das Erstellen einer Punktsicherungskopie einer PostgreSQL-Datenbank (Postgres) kann für die Datensicherheit oder für die Übertragung der Datenbank auf einen anderen Server nützlich sein. Befolgen Sie zum Erstellen einer Punktsicherung die folgenden Anweisungen:

  1. Öffnen Sie ein Terminal und führen Sie den Befehl sudo su - postgres aus, um sich bei Ihrem postgres-Benutzerkonto anzumelden.
  2. Führen Sie den Befehl pg_dump dbname > backup aus.sql , wobei dbname der Name der Datenbank ist, die Sie kopieren möchten, und backup.sql ist der Name der Datei, in der die Sicherung gespeichert werden soll.
  3. Geben Sie bei Bedarf das Postgres-Benutzerpasswort ein.
  4. Warten Sie, bis der Sicherungsvorgang abgeschlossen ist. Dies kann je nach Größe der Datenbank einige Zeit in Anspruch nehmen.

Wenn Sie diese Schritte ausführen, wird eine Backup-Datei erstellt.sql, das eine Punktsicherung der Datenbank enthält. Denken Sie daran, diese Datei an einem sicheren Ort für die spätere Verwendung zu speichern.

Mithilfe einer Punktsicherung können Sie die Datenbank wiederherstellen, wenn sie beschädigt ist oder Daten verloren gehen. Verwenden Sie die entsprechenden Anweisungen, um die Datenbank aus einer Sicherung wiederherzustellen.

Überprüfen, ob Postgres-abhängige Benutzer vorhanden sind

Bevor Sie einen Postgres-Benutzer löschen, müssen Sie sicherstellen, dass keine anderen Benutzer davon abhängig sind. Sie können den folgenden Befehl verwenden, um diese Prüfung durchzuführen:

Das TeamDie Beschreibung
SELECT datname FROM pg_stat_activity WHERE usesysid=(SELECT usesysid FROM pg_user WHERE usename='postgres');Dieser Befehl zeigt eine Liste der Datenbanken an, in denen aktive Verbindungen vorhanden sind, die im Kontext des Postgres-Benutzers eingerichtet wurden.

Wenn der Befehl keine Ergebnisse zurückgibt, bedeutet dies, dass keine anderen Benutzer vom Postgres-Benutzer abhängig sind. In diesem Fall können Sie den Postgres-Benutzer weiterhin löschen.

Deaktivieren aller Postgres-verknüpften Benutzer

In diesem Abschnitt werden wir uns mit dem Vorgang befassen, wie alle Benutzer, die mit der PostgreSQL-Datenbank (Postgres) verbunden sind, getrennt werden.

Zuerst müssen Sie über den Superuser eine Verbindung zur Postgres-Datenbank herstellen. Öffnen Sie eine Eingabeaufforderung oder ein Terminal und führen Sie den folgenden Befehl aus:

psql -U postgres

Nachdem Sie den Befehl eingegeben haben, müssen Sie möglicherweise das Root-Passwort eingeben.

Nach erfolgreicher Autorisierung können Sie die Benutzer trennen. Führen Sie dazu die folgende SQL-Abfrage aus:

SELECT pg_terminate_backend(pg_stat_activity.pid)FROM pg_stat_activityWHERE datname = 'postgres'AND pid <> pg_backend_pid();

Diese Anforderung beendet alle aktiven Verbindungen zur Postgres-Datenbank mit Ausnahme der aktuellen Verbindung.

Nachdem Sie die Abfrage ausgeführt haben, können Sie sicherstellen, dass alle Benutzer deaktiviert sind, indem Sie die folgende Abfrage ausführen:

SELECT * FROM pg_stat_activity WHERE datname = 'postgres';

Wenn das Abfrageergebnis leer ist, wurden alle Benutzer erfolgreich deaktiviert.

Jetzt können Sie den Löschvorgang des Postgres-Benutzers fortsetzen.

Löschen von Datenbanken, die dem Postgres-Benutzer gehören

Wenn Sie einen Postgres-Benutzer aus dem System entfernen, müssen Sie alle Datenbanken löschen, die diesem Benutzer gehören. Führen Sie die folgenden Schritte aus, um die Datenbanken erfolgreich zu löschen:

Schritt 1: Beenden Sie alle aktiven Sitzungen, die dem Postgres-Benutzer zugeordnet sind. Führen Sie dazu den Befehl aus:

sudo su - postgres

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE usename = 'postgres';

Schritt 2: Melden Sie sich vom Postgres-Benutzer ab und wechseln Sie zum Superuser:

Schritt 3: Löschen Sie die Datenbanken, die dem Postgres-Benutzer gehören. Führen Sie dazu den Befehl aus:

dropdb --username=postgres --no-password [name der Datenbank];

Anmerkung: Wiederholen Sie diesen Befehl für jede Datenbank, die dem Postgres-Benutzer gehört.

Schritt 4: Entfernen Sie den Postgres-Benutzer. Führen Sie dazu den Befehl aus:

Anmerkung: Überprüfen Sie sorgfältig, ob alle Datenbanken, die dem Postgres-Benutzer gehören, erfolgreich gelöscht wurden, bevor Sie den Benutzer selbst löschen.

Entfernen des Postgres-Benutzers selbst

Wenn Sie den Postgres-Benutzer selbst löschen, müssen Sie vorsichtig sein, da dies zu Problemen mit der Funktion der PostgreSQL-Datenbank führen kann. Wenn jedoch alle anderen Benutzer Superuser sind und postgres entfernt werden müssen, können Sie Folgendes tun:

SchrittDie Beschreibung
1Melden Sie sich bei einem Superuser oder Benutzer an, der über Berechtigungen zum Löschen von Benutzern verfügt.
2Öffnen Sie eine Eingabeaufforderung oder ein Terminal.
3Geben Sie den folgenden Befehl ein: sudo -u postgres dropuser postgres
4Drücken Sie die Eingabetaste und geben Sie das Root- oder Benutzerpasswort ein, das Sie in Schritt 1 verwendet haben.
5Bestätigen Sie den Löschvorgang mit der Eingabetaste.

Nachdem Sie diese Schritte ausgeführt haben, wird der Postgres-Benutzer aus dem System entfernt und kann nicht mehr auf die PostgreSQL-Datenbank zugreifen. Stellen Sie sicher, dass das Löschen eines Postgres-Benutzers keine Probleme mit anderen Benutzern und Anwendungen verursacht, die von diesem Benutzer abhängen.

Überprüfen, ob der Benutzer erfolgreich gelöscht wurde

Nachdem Sie den Befehl zum Löschen des Benutzers ausgeführt haben postgres auf dem System können Sie überprüfen, ob der Benutzer erfolgreich gelöscht wurde, wie folgt:

1. Überprüfen des Löschens eines Benutzers in der Postgres-Datenbank:

1.1. Öffnen Sie eine Eingabeaufforderung, und führen Sie den Befehl aus sudo -u postgres psql, um eine interaktive PostgreSQL-Shell zu öffnen.

1.2. Geben Sie den Befehl ein \du, um eine Liste der Datenbankbenutzer anzuzeigen.

1.3. Überprüfen Sie, ob der Benutzer postgres wird nicht mehr in der Benutzerliste angezeigt.

2. Überprüfen, ob ein Benutzer im System gelöscht wird:

2.1. Öffnen Sie eine Eingabeaufforderung, und führen Sie den Befehl aus sudo -u postgres bash, um zu einem benutzerdefinierten Konto zu wechseln postgres.

2.2. Geben Sie den Befehl ein whoami, um sicherzustellen, dass der aktuelle Benutzer - postgres.

2.3. Schließen Sie die Eingabeaufforderung, um sich vom Konto abzumelden postgres.

Wenn der Benutzer postgres wurde nicht in den Datenbank- und Systembenutzerlisten angezeigt, daher wurde der Benutzer erfolgreich gelöscht.

Wiederherstellen einer Datenbank, die einem Postgres-Benutzer gehört

Wenn Sie einen Postgres-Benutzer aus dem System entfernen, bleiben seine Datenbanken möglicherweise ohne den richtigen Besitzer. Dies kann zu Problemen bei der Arbeit mit Datenbanken führen und zu Datenverlusten führen. Folgen Sie den Anweisungen, um Datenbanken wiederherzustellen, die einem Postgres-Benutzer gehören:

  1. Überprüfen Sie, ob eine Datenbanksicherung vorhanden ist: Wenn Sie eine Sicherung der postgres-Benutzerdatenbanken haben, stellen Sie sie mit dem Befehl pg_restore wieder her.
  2. Weisen Sie den Datenbankbesitzer neu zu: Melden Sie sich mit einem Konto an, das über Superuser-Berechtigungen in PostgreSQL verfügt. Öffnen Sie eine Eingabeaufforderung oder ein Terminal, und führen Sie den Befehl psql aus, um sich bei der interaktiven PostgreSQL-Shell anzumelden.
  3. Ändern Sie den Besitzer jeder Datenbank: Führen Sie für jede Datenbank, die zu einem Postgres-Benutzer gehört, den folgenden Befehl aus:
    ALTER DATABASE OWNER TO ;
    Hier ist der Name der Datenbank und der Name des Benutzers, dem Sie den Besitz der Datenbank zuweisen möchten.
  4. Überprüfen Sie das Ergebnis: Führen Sie den Befehl \l in der interaktiven PostgreSQL-Shell aus, um sicherzustellen, dass die Datenbankbesitzer erfolgreich geändert wurden.

Mit diesen Schritten können Sie Datenbanken wiederherstellen, die zuvor im Besitz eines Postgres-Benutzers waren, und ohne Datenverlust weiterarbeiten.