docs: document is_admin recursion bypass in grand functions
Some checks failed
Staging Build / build (push) Has been cancelled
Some checks failed
Staging Build / build (push) Has been cancelled
This commit is contained in:
@@ -16,4 +16,5 @@ RLS ist auf Datenbankebene in Postgres implementiert und erzwingt Datenisolierun
|
|||||||
|
|
||||||
- **Systembenutzer (`users`) & Rollen-Schutz**:
|
- **Systembenutzer (`users`) & Rollen-Schutz**:
|
||||||
- Authentifizierte Nutzer dürfen nur ihr eigenes Profil lesen.
|
- Authentifizierte Nutzer dürfen nur ihr eigenes Profil lesen.
|
||||||
|
- Admins dürfen alle Benutzer lesen. Zur Vermeidung von unendlichen RLS-Rekursionen auf der Tabelle `users` wird die Admin-Zuweisung über die Security-Definer-Funktion `public.is_admin(user_id)` geprüft, welche RLS auf Datenbank-Ebene umgeht.
|
||||||
- Rollenschutz-Trigger (`check_user_role_escalation`): Jegliche Änderung der Spalte `role` oder Zuweisung der Rolle `'admin'` ist auf API-Ebene für normale Nutzer gesperrt. Updates/Inserts der Rolle werden ausschließlich von der `service_role` (Backend Admin-Client) akzeptiert, um Privilegien-Eskalation zu verhindern.
|
- Rollenschutz-Trigger (`check_user_role_escalation`): Jegliche Änderung der Spalte `role` oder Zuweisung der Rolle `'admin'` ist auf API-Ebene für normale Nutzer gesperrt. Updates/Inserts der Rolle werden ausschließlich von der `service_role` (Backend Admin-Client) akzeptiert, um Privilegien-Eskalation zu verhindern.
|
||||||
|
|||||||
Reference in New Issue
Block a user