Wie man Benutzer in PostgreSQL auflistet
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
- Verwenden Sie
\du
oder\du+
inpsql
, um PostgreSQL-Benutzer und -Rollen aufzulisten. - SQL-Abfragen auf
pg_user
bieten anpassbare Berichte zu Benutzerdetails. - Das Anzeigen aktueller Benutzer und Superuser hilft bei der Überwachung von Zugriffen und Berechtigungen.
Die Verwaltung von Benutzerkonten ist ein grundlegender Aspekt der PostgreSQL-Administration. Ob Sie Zugriffe prüfen, Rollen zuweisen oder die Einhaltung von Sicherheitsrichtlinien sicherstellen, das Wissen, wie man Benutzer und ihre Attribute auflistet, ist unerlässlich. Dieser Leitfaden umreißt zwei primäre Methoden, um Benutzerinformationen in PostgreSQL abzurufen: die Verwendung der psql
-Kommandozeilenschnittstelle und das Ausführen von SQL-Abfragen.
1. Auflisten von Benutzern mit der psql
-Kommandozeilenschnittstelle
Das psql
-Tool bietet integrierte Meta-Befehle zur Interaktion mit dem PostgreSQL-Server.
Schritt 1: Verbinden Sie sich mit dem PostgreSQL-Server
Öffnen Sie Ihr Terminal und verbinden Sie sich mit Ihrem PostgreSQL-Server mit dem psql
-Befehl:
psql -U postgres
Ersetzen Sie postgres
durch Ihren Benutzernamen, falls dieser abweicht. Sie werden aufgefordert, Ihr Passwort einzugeben.
Schritt 2: Alle Benutzer auflisten
Sobald Sie verbunden sind, verwenden Sie den Befehl \du
, um alle Benutzerkonten (Rollen) im aktuellen PostgreSQL-Datenbankcluster anzuzeigen:
\du
Dieser Befehl präsentiert eine Tabelle mit den folgenden Spalten:
- Rollenname: Der Name des Benutzers oder der Rolle.
- Attribute: Rollenattribute wie
Superuser
,Create role
,Create DB
usw. - Mitglied von: Listet alle Rollen auf, denen der Benutzer angehört.
Für detailliertere Informationen, einschließlich Beschreibungen, verwenden Sie den Befehl \du+
:
\du+
2. Auflisten von Benutzern mit SQL-Abfragen
Alternativ können Sie Benutzerinformationen abrufen, indem Sie Systemkataloge abfragen.
Abfragen der pg_user
-Ansicht
Die pg_user
-Ansicht bietet Informationen über Datenbankbenutzer. Führen Sie die folgende SQL-Anweisung aus:
SELECT usename AS role_name, CASE WHEN usesuper AND usecreatedb THEN CAST('superuser, create database' AS pg_catalog.text) WHEN usesuper THEN CAST('superuser' AS pg_catalog.text) WHEN usecreatedb THEN CAST('create database' AS pg_catalog.text) ELSE CAST('' AS pg_catalog.text) END role_attributes FROM pg_catalog.pg_user ORDER BY role_name DESC;
Diese Abfrage gibt Folgendes zurück:
- role_name: Der Name des Benutzers.
- role_attributes: Eine textuelle Darstellung der Berechtigungen des Benutzers.
Zusätzliche Tipps
-
Anzeigen des aktuellen Benutzers: Um den aktuell verbundenen Benutzer zu identifizieren, führen Sie Folgendes aus:
SELECT current_user;
oder
SELECT session_user;
-
Auflisten von Superusern: Um alle Superuser aufzulisten, führen Sie Folgendes aus:
SELECT usename FROM pg_catalog.pg_user WHERE usesuper = true;
-
Überprüfen aktiver Verbindungen: Um aktuell aktive Benutzer und ihre Sitzungen anzuzeigen:
SELECT * FROM pg_catalog.pg_stat_activity WHERE state = 'active';
Zusammenfassung
- Verwenden Sie
\du
oder\du+
inpsql
, um alle Benutzer und ihre Attribute aufzulisten. - Führen Sie SQL-Abfragen auf
pg_catalog.pg_user
aus, um detaillierte Benutzerinformationen zu erhalten. - Verwenden Sie zusätzliche Abfragen, um aktuelle Benutzer und aktive Verbindungen zu überwachen.
Durch die Anwendung dieser Methoden können Datenbankadministratoren Benutzerkonten effektiv verwalten und die Sicherheit und Integrität von PostgreSQL gewährleisten.
FAQs
Verwenden Sie den Befehl \du
oder \du+
im psql
-Terminal.
Ja, fragen Sie pg_catalog.pg_user
ab, um Benutzernamen und ihre Rollenattribute anzuzeigen.
Führen Sie SELECT current_user;
oder SELECT session_user;
in SQL aus.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Backend-Projekten.
Leapcell ist die Serverless-Plattform der nächsten Generation für Webhosting, asynchrone Aufgaben und Redis:
Multi-Language Support
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- Zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 US-Dollar unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Einblicke.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung, um hohe Parallelität problemlos zu bewältigen.
- Kein Betriebsaufwand – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ