GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So löschen Sie einen Postgres-Benutzer (Drop User)

Einführung

Das Verwalten einer Datenbank erfordert das Entfernen von Benutzerkonten, insbesondere wenn ein Benutzerkonto nicht mehr benötigt wird. Das Löschen unnötiger Postgres-Benutzer ist eine wesentliche Datenbanksicherheitspraxis. Diese Aktion entfernt auch einen potenziell unbemerkten Zugangspunkt für Hacker.

In diesem Tutorial wird erklärt, wie Sie einen Postgres-Benutzer auf verschiedene Weise löschen können.

Voraussetzungen

  • Zugriff auf die Befehlszeile oder das Terminal mit sudo-Berechtigungen.
  • Postgres installiert, vorzugsweise die neueste Version.
  • Postgres-Benutzer müssen gelöscht werden. Folgen Sie unserem Tutorial, um Postgres-Benutzer zu Testzwecken zu erstellen.

Einen Postgres-Benutzer löschen

Ein Benutzer in PostgreSQL hat standardmäßig Anmeldeberechtigungen. Es gibt zwei Methoden, um einen Benutzer zu entfernen, und beide erfordern Zugriff auf CREATEROLE Rechte. Um einen Superuser zu löschen, den SUPERUSER Privileg ist obligatorisch.

Die postgres Der während der Installation erstellte Benutzer verfügt standardmäßig über alle erforderlichen Berechtigungen. In den folgenden Beispielen wird postgres verwendet Benutzer, um sich mit PostgreSQL zu verbinden.

Methode 1:Löschen Sie einen Postgres-Benutzer mit dem dropuser-Dienstprogramm

Postgres bietet ein Client-Dienstprogramm zum Entfernen eines Benutzers, ohne eine Verbindung zur PSQL-Befehlszeilenschnittstelle herzustellen.

So löschen Sie einen Benutzer in Postgres mit dropuser , führen Sie den folgenden Befehl im Terminal aus:

sudo -u postgres dropuser <user> -e

Teilen Sie den Befehl alternativ in zwei Schritte auf:

1. Wechseln Sie zu postgres Benutzer (oder ein anderer Benutzer mit den richtigen Rechten):

sudo su - postgres

2. Führen Sie den dropuser-Befehl aus:

dropuser <name> -e

In beiden Fällen entfernt Postgres den Benutzer.

Methode 2:Postgres-Benutzer mit DROP USER-Anweisung löschen

Eine andere Möglichkeit, einen Benutzer aus einer Postgres-Datenbank zu löschen, ist die Verwendung einer PSQL-Anweisung.

Führen Sie die folgenden Schritte aus, um einen Benutzer zu löschen:

1. Verbinden Sie sich über das Terminal mit dem folgenden Befehl mit dem PSQL-Client:

sudo -u postgres psql

Das Terminal wechselt zur PSQL-Konsole (postgres=# ).

2. Alle Benutzer und Rollen auflisten mit:

\du

Suchen Sie den zu entfernenden Benutzer und verwenden Sie den Namen im folgenden Schritt.

3. Führen Sie die folgende Abfrage aus, um einen Benutzer zu löschen:

DROP USER <name>;

Um vor dem Löschen zu prüfen, ob ein Benutzer vorhanden ist, geben Sie alternativ Folgendes ein:

DROP USER IF EXISTS <name>;

Der Client benachrichtigt, wenn die Rolle nicht vorhanden ist.

4. Zeigen Sie die Benutzerliste erneut an, um zu bestätigen, dass der Benutzer gegangen ist:

\du

Der Benutzer befindet sich nicht mehr in der Liste der Rollen. Diese Ausgabe zeigt eine erfolgreiche Löschung an.

Mehrere Postgres-Benutzer löschen

Der PSQL-Client ermöglicht das gleichzeitige Löschen von mehr als einem Postgres-Benutzer. Die folgenden Anweisungen erläutern, wie Sie eine Verbindung zum PostgreSQL-Client herstellen und mehrere Benutzer löschen.

1. Verbinden Sie sich mit dem PSQL-Client mit:

sudo -u postgres psql

2. Alle Benutzer auflisten mit:

\du

Suchen Sie die zu löschenden Benutzer und verwenden Sie die Namen im folgenden Schritt.

3. Löschen Sie mehrere Postgres-Benutzer, indem Sie einzelne Benutzer durch ein Komma trennen:

DROP USER [IF EXISTS] <name>, <name>, ... <name>;

Der Befehl entfernt mehrere Rollen auf einmal. Fügen Sie IF EXISTS hinzu um nicht verfügbare Benutzer zu überspringen.

4. Überprüfen Sie die Benutzerliste erneut, um zu bestätigen, dass alle Rollen gelöscht wurden:

\du

Die entfernten Benutzer sind nicht mehr auf der Liste.

Löschen Sie einen Postgres-Benutzer mit Abhängigkeiten

Der Versuch, einen Postgres-Benutzer mit Abhängigkeiten zu entfernen, schlägt fehl und zeigt einen Fehler an.

Gehen Sie wie folgt vor, um den Benutzer sicher zu entfernen:

1. Weisen Sie den Objektbesitz aus dem Fehlerdetail einem anderen Benutzer zu. Zum Beispiel, um die Objekte zu übertragen, die myuser gehören zu postgres , ausführen:

REASSIGN OWNED BY myuser TO postgres;

Die Abfrage ändert den Objektbesitz auf postgres Benutzer.

2. Entfernen Sie die Datenbankobjektverbindungen zum Benutzer mit:

DROP OWNED BY myuser;

Dieser Schritt entfernt auch alle Berechtigungen, die der Benutzer für das Objekt hat.

3. Im Moment hat der Benutzer keine Abhängigkeiten mehr. Um den Benutzer zu löschen, führen Sie Folgendes aus:

DROP USER myuser;

Da keine Abhängigkeiten bestehen, ist die Entfernung erfolgreich.

Eine Postgres-Rolle löschen

Führen Sie zum Löschen einer Postgres-Rolle den folgenden Befehl im PSQL-Client aus:

DROP ROLE [IF EXISTS] <name>;

Der DROP USER -Anweisung ist ein Alias ​​für DROP ROLE . Die Postgres-Benutzer sind Rollen mit LOGIN Berechtigungen. Daher sowohl DROP USER und DROP ROLE sind austauschbar und funktionieren sowohl für Benutzer als auch für Rollen.


Ubuntu
  1. So wechseln (su) Sie ohne Passwort zu einem anderen Benutzerkonto

  2. So fügen Sie Benutzer in Ubuntu, Debian und LinuxMint hinzu und löschen sie

  3. Wie lösche ich Root-Rechte in Shell-Skripten?

  4. So erstellen und löschen Sie einen Benutzer unter Debian 9

  5. So fügen Sie einen Samba-Benutzer unter Linux hinzu oder löschen ihn

So fügen Sie Benutzer unter CentOS 8 hinzu und löschen sie

So fügen Sie Benutzer unter CentOS 7 hinzu und löschen sie

Wie man Benutzer unter Debian 9 hinzufügt und löscht

So löschen Sie ein Verzeichnis in Ubuntu 20.04

So löschen Sie eine Datei in Ubuntu

So löschen Sie einen MySQL-Datenbankbenutzer in cPanel