Direkt zum Inhalt
Urkunden
JSON-FunktionenTabellen & Schema ManagementMathe-FunktionenDatenbankenString-FunktionenAuslöserIndizesDatum FunktionenBasic Syntax

PostgreSQL CREATE ROLE

PostgreSQL ist ein fortschrittliches, quelloffenes relationales Datenbankmanagementsystem, das komplexe Abfragen und umfangreiche Datenoperationen unterstützt. Aufgrund ihrer Zuverlässigkeit und Skalierbarkeit wird sie häufig für die Verwaltung von Daten in Web- und Anwendungsservern eingesetzt.

Verwendung

PostgreSQL ermöglicht es dir, Rollen zu erstellen, d.h. Entitäten, die Datenbankobjekte besitzen und über Datenbankprivilegien verfügen können. Rollen können für die Authentifizierung, die Rechteverwaltung und die Festlegung von Benutzerzugriffsebenen verwendet werden. In PostgreSQL kann eine Rolle als Benutzer oder als eine Gruppe von Benutzern fungieren.


CREATE ROLE role_name
[WITH option [option ...]];

In dieser Syntax ist role_name der Name der Rolle, die du erstellen möchtest, und option gibt die Attribute und Privilegien an, die dieser Rolle zugewiesen sind, wie z.B. LOGIN, SUPERUSER, CREATEDB oder CREATEROLE. Beachte, dass die Option PASSWORD das LOGIN Privileg benötigt, um wirksam zu sein.

Beispiele

1. Grundlegende Rollenerstellung


CREATE ROLE readonly_user;

In diesem Beispiel wird eine einfache Rolle namens readonly_user ohne zusätzliche Privilegien erstellt. Er kann sich nicht anmelden und keine Aktionen durchführen, bis weitere Attribute zugewiesen werden.

2. Rolle mit Login-Privileg


CREATE ROLE editor_user WITH LOGIN PASSWORD 'securepassword';

Hier wird eine Rolle mit dem Namen editor_user erstellt, die über Login-Fähigkeiten und ein bestimmtes Passwort verfügt, damit sie sich authentifizieren und mit der Datenbank verbinden kann.

3. Rolle mit mehreren Privilegien


CREATE ROLE admin_user WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD 'adminpassword';

In diesem Beispiel erhält admin_user mehrere Privilegien, darunter SUPERUSER (volle Kontrolle über die Datenbank), CREATEDB (Fähigkeit, Datenbanken zu erstellen) und CREATEROLE (Fähigkeit, andere Rollen zu erstellen, zu ändern und zu löschen).

Tipps und bewährte Praktiken

  • Erteile nur die notwendigen Privilegien. Vermeide es, mehr Privilegien als nötig zu vergeben, um Sicherheitsrisiken zu minimieren.
  • Verwende beschreibende Rollennamen. Klar benannte Rollen helfen dabei, ihren Zweck und die damit verbundenen Privilegien zu erkennen.
  • Überprüfe regelmäßig die Rollenberechtigungen. Aktualisiere die Rollen regelmäßig, um sicherzustellen, dass sie den aktuellen Sicherheits- und Betriebsrichtlinien entsprechen.
  • Sichere Passwörter. Verwende immer starke, komplexe Passwörter, besonders für Rollen mit Login-Funktionen.
  • Betrachte die Rollenvererbung. Verwende die Rollenvererbung, um komplexe Berechtigungsstrukturen zu verwalten, indem du Rollen an andere Rollen vergibst.

Zusätzliche Informationen

  • Um eine bestehende Rolle zu ändern, verwende den Befehl ALTER ROLE. Zum Beispiel:
    
        ALTER ROLE role_name WITH NEW_OPTION;
        
  • Um eine Rolle zu entfernen, verwende den Befehl DROP ROLE:
    
        DROP ROLE role_name;
        
  • Rollen können an andere Rollen vergeben werden, was eine Rollenvererbung ermöglicht und die Rechteverwaltung in größeren Systemen vereinfacht.

Rollen können auch mit Schemas verknüpft und in mandantenfähigen Datenbankumgebungen verwendet werden. Dies ermöglicht eine effektive Trennung und Verwaltung der Zugriffskontrolle innerhalb gemeinsam genutzter Datenbanken.