Je to proto, že každé nové oprávnění rozšiřuje nspacl
sloupec pg_namespace
záznam pro toto schéma.
Nyní mají bloky tabulky v PostgreSQL velikost 8 kB a každý řádek tabulky se musí vejít do jednoho bloku, proto je limit.
V normálních tabulkách by to nebyl problém, protože PostgreSQL ukládá nadrozměrná pole proměnné délky „mimo čáru“ v tzv. TOAST tabulky. Ale pro systémové katalogy nejsou žádné tabulky TOAST, takže tato úniková cesta je uzavřena.
Řekl bych, že na tento limit narážíte kvůli špatnému designu. Namísto udělování přístupu každé z rolí ke schématu jednotlivě použijte hierarchii rolí, přiřaďte své mnoho rolí skupinám a udělujte oprávnění schématu na úrovni skupiny.