In response to Magnus Reftel <magnus.ref...@gmail.com>: > > I'm working on a database that will have a very large number of users, and > I'm running in to a problem: when I grant more than about 2500 users access > to a schema, I get > > my_db=# grant usage on schema my_schema to some_user; > ERROR: row is too big: size 8168, maximum size 8164 > > This of course makes access control tricky on high user-count setups. > > On IRC, linuxpoet and andres suggested that the problem is that the nspacl > column in pg_catalog.pg_namespace grows too large. A suggested fix by > linuxpoet adds a toast table to pg_namespace. A potentially dangerous > work-around suggested by andres is to alter the pg_namespace table while > temporarily having allow_system_table_mods on. That seems to have made the > symptom go away for me, but I'm not sure of what consequences the change had. > Spontaneously, it seems to me that ACL entries could be stored as rows in a > table instead of as elements in an array, but I'm definitely not qualified to > comment on PostgreSQL implementation issues. > > Do you agree with linuxpoet's fix? If so, when do you think it is reasonable > to include it?
I would think that a better solution would be to follow best practices and create roles and put users in those roles, so you don't have to have so many grants on objects. -- Bill Moran http://www.potentialtech.com http://people.collaborativefusion.com/~wmoran/ -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general