# Parallele Query endet mit "permission denied for database"

**URL:** https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099
**Category:** Konfiguration & Verwaltung
**Created:** [20. Dezember 2024 um 11:57 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099 "2024-12-20T11:57:58Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![mfl](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/m/bbce88/32.png) [@mfl](https://www.pg-forum.de/u/mfl)
#### Post date: [20. Dezember 2024 um 11:57 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/1 "2024-12-20T11:57:58Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![castorp](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/c/e99b99/32.png) [@castorp](https://www.pg-forum.de/u/castorp)
#### Post date: [20. Dezember 2024 um 12:56 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/2 "2024-12-20T12:56:59Z")

</div>

Hmm, komisch.

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

---

<div class="post-metadata">

### Author: ![mfl](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/m/bbce88/32.png) [@mfl](https://www.pg-forum.de/u/mfl)
#### Post date: [20. Dezember 2024 um 13:29 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/3 "2024-12-20T13:29:27Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![castorp](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/c/e99b99/32.png) [@castorp](https://www.pg-forum.de/u/castorp)
#### Post date: [20. Dezember 2024 um 13:40 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/4 "2024-12-20T13:40:06Z")

</div>

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();`)

---

<div class="post-metadata">

### Author: ![mfl](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/m/bbce88/32.png) [@mfl](https://www.pg-forum.de/u/mfl)
#### Post date: [20. Dezember 2024 um 14:04 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/5 "2024-12-20T14:04:45Z")

</div>

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

---

<div class="post-metadata">

### Author: ![pogomips](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/p/bbe5ce/32.png) [@pogomips](https://www.pg-forum.de/u/pogomips)
#### Post date: [21. Dezember 2024 um 09:40 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/6 "2024-12-21T09:40:29Z")

</div>

> [@mfl](#):
>
> Was könnte der Grund für den Fehler sein.

Benutzt Du AshPostgres?

Hier gibt es einen Hinweis dazu:

> **[ERROR 42501 (insufficient\_privilege) only superuser can define a leakproof...](https://elixirforum.com/t/error-42501-insufficient-privilege-only-superuser-can-define-a-leakproof-function/66074)**
>
> I’m upgrading an app from Ash ~2.x to the latest (3.4) and… overall, not too hard until I tried to run the tests and got this… \*\* (Postgrex.Error) ERROR 42501 (insufficient\_privilege) only superuser can define a leakproof function (ecto\_sql...

---

<div class="post-metadata">

### Author: ![laurenz](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/l/bc79bd/32.png) [@laurenz](https://www.pg-forum.de/u/laurenz)
#### Post date: [23. Dezember 2024 um 06:14 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/7 "2024-12-23T06:14:49Z")

</div>

Hm, ein Kunde hat den selben Fehler beklagt. Ich kann mir vorstellen, daß die Commits [5a2fed911a](https://postgr.es/c/5a2fed911a85ed6d8a015a6bafe3a0d9a69334ae) und [95f5a52372](https://postgr.es/c/95f5a523729f6814c8757860d9a2264148b7b0df) hier irgendein Problem eingebaut haben.

Es wäre interessant zu wissen, was genau der User, der die Abfrage ausführt, vorher gemacht hat.

- Ist `SET SESSION AUTHORIZATION` oder `SET ROLE` ausgeführt worden?
- Hat der User mit `ALTER ROLE ... SET ROLE ...` eine Standardrolle zugewiesen bekommen? Das sieht man mit `\ddp` in `psql`.
- Ist eine Extension wie [set\_user](https://github.com/pgaudit/set_user) in Verwendung, die die aktive Rolle verändert?
- Kann es sein, daß die Anzahl der Datenbankverbindungen an `max_connections - superuser_reserved_connections - reserved_connections` herankommt?

Irgendetwas muß anders sein als normal, sonst würde der Fehler jedesmal bei der Verwendung von Parallel Query kommen.

---

<div class="post-metadata">

### Author: ![mfl](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/m/bbce88/32.png) [@mfl](https://www.pg-forum.de/u/mfl)
#### Post date: [23. Dezember 2024 um 06:22 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/8 "2024-12-23T06:22:22Z")

</div>

Nein ist wird kein Ash verwendet.

---

<div class="post-metadata">

### Author: ![mfl](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/m/bbce88/32.png) [@mfl](https://www.pg-forum.de/u/mfl)
#### Post date: [23. Dezember 2024 um 06:28 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/9 "2024-12-23T06:28:27Z")

</div>

Ja der einloggende User bekommt eine neue Rolle.  
ALTER ROLE role1 IN DATABASE db1 SET role=role2;  
Nachdem ich role2 das Connect privilege gegeben habe funktioniert es auch.  
Vielen Dank für den Hinweis! [95f5a52372](https://postgr.es/c/95f5a523729f6814c8757860d9a2264148b7b0df) scheint mir wohl der Grund zu sein.

---

<div class="post-metadata">

### Author: ![laurenz](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/l/bc79bd/32.png) [@laurenz](https://www.pg-forum.de/u/laurenz)
#### Post date: [23. Dezember 2024 um 10:57 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/10 "2024-12-23T10:57:41Z")

</div>

Danke für die Bestätigung und den Workaround.  
[Ich habe den Bug gemeldet](https://postgr.es/m/8befc845430ba1ae3748af900af298788e579c89.camel@cybertec.at), bin aber nicht sicher, ob mein Fix richtig ist.

---

<div class="post-metadata">

### Author: ![akretschmer](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/a/a6a055/32.png) [@akretschmer](https://www.pg-forum.de/u/akretschmer)
#### Post date: [23. Dezember 2024 um 11:56 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/11 "2024-12-23T11:56:18Z")

</div>

unser Laurenz ist halt echt der Beste!

---

<div class="post-metadata">

### Author: ![mfl](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/m/bbce88/32.png) [@mfl](https://www.pg-forum.de/u/mfl)
#### Post date: [23. Dezember 2024 um 12:10 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/12 "2024-12-23T12:10:10Z")

</div>

Zustimmung meinerseits 😉

---

<div class="post-metadata">

### Author: ![laurenz](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/l/bc79bd/32.png) [@laurenz](https://www.pg-forum.de/u/laurenz)
#### Post date: [28. Dezember 2024 um 22:25 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/13 "2024-12-28T22:25:23Z")

</div>

Der Fehler ist mit Commit [34486b6092](https://postgr.es/c/34486b6092e700089d22586df211c4e8b0412136) behoben. Das Problem wird also mit den nächsten Minor Releases am 13. Februar 2025 behoben sein.

---

<div class="post-metadata">

### Author: ![castorp](https://www.pg-forum.de/letter_avatar_proxy/v4/letter/c/e99b99/32.png) [@castorp](https://www.pg-forum.de/u/castorp)
#### Post date: [13. Februar 2025 um 15:09 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/14 "2025-02-13T15:09:57Z")

</div>

Und die 17.3 ist pünktlich erschienen:

> **[PostgreSQL 17.3, 16.7, 15.11, 14.16, and 13.19 Released!](https://www.postgresql.org/about/news/postgresql-173-167-1511-1416-and-1319-released-3015/)**
>
> The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 17.3, 16.7, 15.11, 14.16, …

---

<div class="post-metadata">

### Author: ![system](https://www.pg-forum.de/uploads/default/original/1X/dc97a981dd26692d5fb52e8b8fc7c090d7b9559a.png) [@system](https://www.pg-forum.de/u/system)
#### Post date: [14. April 2025 um 15:10 UTC](https://www.pg-forum.de/t/parallele-query-endet-mit-permission-denied-for-database/13099/15 "2025-04-14T15:10:23Z")

</div>

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.
