Parallele Query endet mit "permission denied for database"

Folgendes Szenario:
Ein select hat einen Ausführungsplan mit parallelen Anteilen.

Wenn ich diese Query ausführe erhalte ich ein
SQL-Fehler [42501]:
ERROR: permission denied for database “xyz”
DETAIL: User does not have CONNECT privilege.
CONTEXT: parallel worker

Setze ich nun max_parallel_workers_per_gather=0 kann die Query ausgeführt werden.
Aber ich möchte nicht die Parallelisierung ausschalten.

Was könnte der Grund für den Fehler sein. Mir ist nicht klar was ich an den Berechtigungen ändern muss, damit es mit Parallelisierung funktioniert?

Hmm, komisch.

Sind da evtl “foreign table”, DB links oder selbstgeschriebene Funktionen mit in der Abfrage?

Hi Castor, nein es wird nur auf lokale Tables zugegriffen.
Aber wieso sollten unterschiedliche Berechtigungen auf DB-Ressourcen bei paralleler und sequentieller Ausführung ziehen?

Mein - zugegeben sehr schwacher - Verdacht war etwas in der Richtung: der Benutzer der für die Anmeldung an dem foreign server (oder DbLink) verwendet wird, hat ein connection limit.

Aber wenn weder foreign tables, noch DbLink beteiligt sind, kann man das wohl ausschliessen.

Was ist denn die exakte Postgres Version? (Ausgabe von select version();)

Die Version ist PostgreSQL 16.6 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-22), 64-bit

Benutzt Du AshPostgres?

Hier gibt es einen Hinweis dazu: