Detta beror på att varje ny behörighet utökar nspacl
kolumnen i pg_namespace
post för detta schema.
Nu har tabellblock i PostgreSQL en storlek på 8kB, och varje tabellrad måste passa in i ett block, därav gränsen.
I normala tabeller skulle det inte vara ett problem, eftersom PostgreSQL lagrar överdimensionerade fält med variabel längd "out of line" i så kallade ROSTA tabeller. Men det finns inga TOAST-tabeller för systemkataloger, så denna utrymningsväg är stängd.
Jag skulle säga att du går in i denna gräns på grund av en dålig design. Istället för att ge var och en av rollerna åtkomst till schemat individuellt, använd en hierarki av roller, tilldela dina många roller till grupper och ge schemabehörigheter på gruppnivå.