pgsql-bugs@postgresql.org writes:
> It is not possible to grant insert for a single table. Granting this
> right only works if grant all is used.
Works for me:
<< as postgres >>
regression=# create user foo;
CREATE USER
regression=# create table zz (f1 int);
CREATE
<< as foo >>
regression=> select * from zz;
ERROR: zz: Permission denied.
regression=> insert into zz values(22);
ERROR: zz: Permission denied.
<< as postgres >>
regression=# grant insert on zz to foo;
CHANGE
<< as foo >>
regression=> insert into zz values(22);
INSERT 939431 1
regression=> select * from zz;
ERROR: zz: Permission denied.
regression=> update zz set f1 = 33;
ERROR: zz: Permission denied.
regression=>
If you think there's a problem you're going to have to be more
specific.
regards, tom lane