Dzieje się tak, ponieważ każde nowe uprawnienie rozszerza nspacl
kolumna pg_namespace
wpis dla tego schematu.
Teraz bloki tabeli w PostgreSQL mają rozmiar 8kB, a każdy wiersz tabeli musi zmieścić się w jednym bloku, stąd limit.
W normalnych tabelach nie stanowiłoby to problemu, ponieważ PostgreSQL przechowuje zbyt duże pola o zmiennej długości „out of line” w tzw. TOAST tabele. Ale nie ma tabel TOAST dla katalogów systemowych, więc ta droga ucieczki jest zamknięta.
Powiedziałbym, że zbliżasz się do tego limitu z powodu złego projektu. Zamiast przyznawać każdej z ról indywidualnie dostęp do schematu, użyj hierarchii ról, przypisz wiele ról do grup i nadaj uprawnienia schematu na poziomie grupy.