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

So erstellen Sie einen Postgres-Benutzer

Einführung

Die Verwaltung von Benutzerrechten und Zugriffsrechten ist ein entscheidendes Sicherheitskonzept für jeden Datenbanktyp. PostgreSQL übernimmt die Zugriffskontrolle über Rollen und Berechtigungen. Wenn Sie beispielsweise einer Rolle die Berechtigung LOGIN hinzufügen, erhalten Sie einen Benutzer. Postgres bietet mehrere Möglichkeiten zum Erstellen und Verwalten von Benutzerkonten.

Dieses Tutorial zeigt, wie Sie verschiedene Benutzertypen für eine PostgreSQL-Datenbank erstellen und einrichten.

Voraussetzungen

  • Postgres installiert (folgen Sie unserer Anleitung für Ubuntu oder Windows).
  • Zugriff auf das Terminal mit sudo-Berechtigungen.
  • Zugriff auf den Postgres-Benutzer.

Erstellen Sie einen neuen Benutzer in PostgreSQL

Es gibt zwei Möglichkeiten, einen neuen Benutzer in PostgreSQL anzulegen, und in beiden Fällen ist Zugriff auf postgres erforderlich Benutzer.

Methode 1:Verwenden des Client-Dienstprogramms createuser

Die erste Möglichkeit, einen neuen Benutzer zu erstellen, ist mit createuser Client-Dienstprogramm. Diese Methode vermeidet die Verbindung zur PSQL-Befehlszeilenschnittstelle.

Um den Benutzer zu erstellen, führen Sie den folgenden Befehl im Terminal aus:

sudo -u postgres createuser <name>

Das Terminal gibt keine Meldung aus. Um die Servernachricht wiederzugeben, fügen Sie -e hinzu Stichwort:

sudo -u postgres createuser -e <name>

Zum Beispiel:

sudo -u postgres createuser -e john

Teilen Sie den Befehl alternativ in zwei Teile auf:

1. Wechseln Sie zu postgres Benutzer:

sudo su - postgres

2. Führen Sie createuser aus Befehl:

createuser <name>

Postgres erstellt in beiden Fällen automatisch den Benutzer (Rolle mit Anmeldeberechtigungen).

Methode 2:Verwenden von PSQL

Die zweite Möglichkeit, einen neuen Benutzer in PostgreSQL zu erstellen, ist die interaktive PSQL-Shell.

1. Wechseln Sie zu postgres user und starten Sie das interaktive Terminal mit:

sudo -u postgres psql

Die Terminalsitzung ändert sich zu postgres=# , was auf eine erfolgreiche Verbindung zur Postgres-Shell hinweist.

2. Verwenden Sie die folgende Anweisung, um einen Benutzer zu erstellen:

CREATE USER <name>;

Zum Beispiel:

CREATE USER mary;

Das Ausführen des Befehls gibt CREATE ROLE aus zur Konsole. Der Grund dafür ist, dass CREATE USER query ist ein Alias ​​für den folgenden Befehl:

CREATE ROLE <name> WITH LOGIN;

Beide Abfragen liefern dasselbe Ergebnis.

Erstellen Sie einen Superuser in PostgreSQL

Um einen Superuser in PostgreSQL zu erstellen, müssen Sie die Superuser-Rolle haben.

Warnung: Ein Datenbank-Superuser umgeht alle Prüfungen, was aus Sicherheitsaspekten gefährlich ist. Verwenden Sie diese Aktion mit Vorsicht und vermeiden Sie die Arbeit mit einem Superuser-Konto, es sei denn, dies ist unbedingt erforderlich.

Es gibt zwei Möglichkeiten, einen Superuser in PostgreSQL zu erstellen:

1. Erstellen Sie über das Client-Dienstprogramm eine Superuser-Rolle, indem Sie --superuser hinzufügen Stichwort:

sudo -u postgres createuser --superuser <name>

Oder verwenden Sie das Kurz-Tag -s statt --superuser :

sudo -u postgres createuser -s <name>

Im Fehlerfall oder wenn der Benutzer bereits existiert, gibt das Terminal eine Meldung aus. Bei Erfolg erscheint keine Meldung.

2. Verwenden Sie alternativ CREATE USER PSQL-Anweisung:

CREATE USER <name> SUPERUSER;

Der CREATE USER statement ist ein Alias ​​für die folgende Anweisung:

CREATE ROLE <name> LOGIN SUPERUSER;

Die CREATE ROLE -Anweisung erfordert das Hinzufügen von LOGIN Erlaubnis, einen Benutzer zu emulieren.

Erstellen Sie ein Passwort für den Benutzer

Jeder Datenbankbenutzer muss ein starkes Passwort haben, um Brute-Force-Angriffe zu verhindern. PostgreSQL bietet zwei Methoden, um einen Benutzer mit einem Passwort zu erstellen.

Warnung: Von den beiden Methoden ist die erste bevorzugt und sicherer.

1. Verwenden Sie createuser Client-Dienstprogramm und fügen Sie --pwprompt hinzu Option zum automatischen Aufrufen einer Passworterstellungsaufforderung:

sudo -u postgres createuser <name> --pwprompt

Die Kurzversion ist -P Stichwort:

sudo -u postgres createuser <name> -P

Das Terminal fordert Sie auf, das Kennwort zweimal einzugeben. Das Passwort selbst oder die Länge wird verschlüsselt und bei der Kommunikation mit dem Server verborgen.

2. Verwenden Sie PSQL, um einen Benutzer mit einem Passwort zu erstellen:

CREATE USER <name> WITH PASSWORD '<password>';

Wenn der Benutzer bereits vorhanden ist, fügen Sie das Passwort hinzu, indem Sie ALTER USER verwenden :

ALTER USER <name> WITH PASSWORD '<password>';

Die Passwortverwaltung über PSQL weist drei Sicherheitslücken auf:

  • Das Passwort ist auf dem Bildschirm sichtbar.
  • Beim Anzeigen des Befehlsverlaufs wird das Passwort angezeigt.
  • Die Informationen werden unverschlüsselt als Klartext übertragen.

Verwenden Sie diese Methode mit Vorsicht.

Dem Benutzer Berechtigungen erteilen

Standardmäßig haben neue Benutzer keine Rechte außer der Anmeldung. Um beim Erstellen eines Benutzers Berechtigungen hinzuzufügen, führen Sie createuser aus Client-Dienstprogramm im folgenden Format:

createuser <option> <name>

Um dasselbe in PSQL zu tun, führen Sie Folgendes aus:

CREATE USER <name> WITH <option>;

Nachfolgend finden Sie eine Tabelle mit häufig verwendeten Optionen für beide Methoden.

Optionssyntax PSQL Erklärung
-s
--superuser
SUPERUSER Fügen Sie das Superuser-Privileg hinzu.
-S
--no-superuser
NOSUPERUSER Kein Superuser-Privileg (Standard).
-d
--createdb
CREATEDB Erlaubt dem Benutzer, Datenbanken zu erstellen.
-D
--no-createdb
NOCREATEDB Keine Berechtigung zum Erstellen von Datenbanken (Standard).
-r
--createrole
CREATEROLE Erlaubt dem Benutzer, neue Rollen zu erstellen.
-R
--no-createrole
NOCREATEROLE Keine Berechtigung zum Erstellen von Rollen (Standard).
-i
--inherit
INHERIT Rollenrechte automatisch erben (Standard).
-I
--no-inherit
NOINHERIT Erben Sie keine Rechte von Rollen.
-l
--login
LOGIN Erlaubt dem Benutzer, sich mit dem Rollennamen (Standard) bei einer Sitzung anzumelden.
-L
--no-login
NOLOGIN Nicht berechtigt, sich mit dem Rollennamen bei einer Sitzung anzumelden.
--replication REPLICATION Ermöglicht das Initiieren der Streaming-Replikation und das Aktivieren/Deaktivieren des Backup-Modus.
--no-replication NOREPLICATION Nicht berechtigt, die Streaming-Replikation oder den Backup-Modus zu initiieren (Standard).
-P
--pwprompt
PASSWORD '<password>' Initiiert die Eingabeaufforderung zur Passworterstellung oder fügt dem Benutzer das bereitgestellte Passwort hinzu. Verwenden Sie diese Option nicht, um einen passwortlosen Benutzer zu erstellen.
/ PASSWORD NULL Setzt das Passwort speziell auf null. Für diesen Benutzer schlägt jede Kennwortauthentifizierung fehl.
-c <number>
--connection-limit=<number>
CONNECTION LIMIT <number> Legt die maximale Anzahl von Verbindungen für Benutzer fest. Standard ist unbegrenzt.

Erstellen Sie beispielsweise einen Benutzer mit Berechtigungen zum Erstellen von Rollen und Datenbanken und fügen Sie -e hinzu -Tag, um die Ergebnisse wiederzugeben:

sudo -u postgres createuser -d -r -e <name>

Oder verwenden Sie das PSQL-Äquivalent:

CREATE USER <name> WITH CREATEROLE CREATEDB;

In beiden Fällen werden dem neuen Benutzer automatisch die angegebenen Rechte gewährt.

Interaktiv einen PostgreSQL-Benutzer erstellen

Die interaktive Benutzererstellung ist eine praktische Option, die nur für das Client-Dienstprogramm verfügbar ist. Um einen Benutzer interaktiv zu erstellen, führen Sie den folgenden Befehl aus:

sudo -u postgres createuser --interactive

Der Befehl fordert automatisch eine Reihe von Fragen auf, in denen Folgendes gestellt wird:

  • Name der Rolle.
  • Ob die Rolle ein Superuser ist.
  • Wenn der Benutzer berechtigt ist, Datenbanken zu erstellen.
  • Wenn der Benutzer andere Rollen erstellen darf.

Antworten Sie mit Ja (y ) zur Superuser-Frage automatisch hinzufügen, um die Berechtigungen "Datenbank erstellen" und "Rolle erstellen" hinzuzufügen und die Eingabeaufforderung zu beenden.

Alle Benutzer in PostgreSQL auflisten

Ein wesentliches Werkzeug für die Benutzerverwaltung in Datenbanken ist die Auflistung aller Benutzer mit ihren jeweiligen Rollen und Berechtigungen.

Gehen Sie wie folgt vor, um alle Benutzer in PostgreSQL aufzulisten:

1. Verbinden Sie sich als postgres-Benutzer mit der PSQL-Eingabeaufforderung:

sudo -u postgres psql

2. Listen Sie alle Benutzer mit dem folgenden Befehl auf:

\du

Die Ausgabe zeigt eine Tabelle mit den Rollennamen, Attributen (Privilegien) und den Gruppen des Benutzers. Um die Beschreibung für jede Rolle anzuzeigen, fügen Sie das Plus hinzu (+ ) Zeichen:

\du+

Die Ausgabe zeigt gegebenenfalls eine zusätzliche Spalte mit der Rollenbeschreibung.


Ubuntu
  1. So erstellen Sie einen Benutzer unter Linux[Benutzerverwaltung]

  2. Centos – Wie erstelle ich einen Sftp-Benutzer in Centos?

  3. So erstellen Sie einen sudo-Benutzer unter CentOS 7

  4. So erstellen Sie einen Sudo-Benutzer in Rocky Linux 8

  5. Wie erstelle ich eine Crontab über ein Skript

So erstellen Sie einen Sudo-Benutzer unter Debian

So erstellen Sie einen MySQL-Datenbankbenutzer in cPanel

So erstellen Sie einen Sudo-Benutzer in Ubuntu Linux

So erstellen Sie einen Sudo-Benutzer unter CentOS

Erstellen eines E-Mail-Administrators in Plesk

So erstellen Sie einen Benutzer oder Kontakt