Re: Thousands of users using one schema -> ERROR: row is too big - Mailing list pgsql-general

From Bill Moran
Subject Re: Thousands of users using one schema -> ERROR: row is too big
Date
Msg-id 20110301155715.85b82c4a.wmoran@potentialtech.com
Whole thread Raw
In response to Thousands of users using one schema -> ERROR: row is too big  (Magnus Reftel <magnus.reftel@gmail.com>)
Responses Re: Thousands of users using one schema -> ERROR: row is too big
Re: Thousands of users using one schema -> ERROR: row is too big
Re: Thousands of users using one schema -> ERROR: row is too big
List pgsql-general
In response to Magnus Reftel <magnus.reftel@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
morethan 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
toolarge. A suggested fix by linuxpoet adds a toast table to pg_namespace. A potentially dangerous work-around
suggestedby andres is to alter the pg_namespace table while temporarily having allow_system_table_mods on. That seems
tohave made the symptom go away for me, but I'm not sure of what consequences the change had. Spontaneously, it seems
tome that ACL entries could be stored as rows in a table instead of as elements in an array, but I'm definitely not
qualifiedto 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/

pgsql-general by date:

Previous
From: Magnus Reftel
Date:
Subject: Thousands of users using one schema -> ERROR: row is too big
Next
From: Magnus Reftel
Date:
Subject: Re: Thousands of users using one schema -> ERROR: row is too big