Sicherheit & Authentifizierung
PgArachne verlässt sich vollständig auf das PostgreSQL-Berechtigungssystem. Es erfindet keine Access
Control Lists (ACLs) neu. Alle Abfragen werden unter der spezifischen Datenbankrolle
des authentifizierten Benutzers mit
SET LOCAL ROLE ausgeführt.
1. Interaktives Login (JWT)
Benutzer authentifizieren sich über die Login-Funktion mit ihrem echten PostgreSQL-Benutzernamen und -Passwort. Bei Erfolg erhalten sie ein generisches JWT. Wenn dieses Token verwendet wird, wechselt PgArachne die aktive Rolle für die Dauer der Anfrage zu diesem Benutzer.
2. Service-Konten (API-Token)
Für automatisierte Systeme oder Skripte können Sie langlebige API-Schlüssel verwenden.
- Token werden in der Tabelle
pgarachne.api_tokensgespeichert. - Jedes Token ist einem bestimmten Datenbankbenutzer/-rolle zugeordnet.
- Senden Sie das Token über den Header
Authorization: Bearer <token>.
Das Erstellen von API‑Tokens erfordert pgarachne_admin. Verwende pgarachne.add_api_token(...) mit einer Rolle, die Mitglied von pgarachne_admin ist.
Kritische Konfiguration: Proxy-Privilegien
Da sich PgArachne als der in DB_USER definierte Benutzer (z. B. pgarachne)
verbindet und die Identität zu anderen Benutzern wechselt, muss der Proxy-Benutzer
Mitglied dieser Zielrollen sein.
Führen Sie dieses SQL für jeden Benutzer/jede Rolle aus, die sich anmelden muss:
-- Erlaube 'pgarachne' zu 'demo_user' zu wechseln
GRANT demo_user TO pgarachne;