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

Reply via email to