Excuse me for my bad English.

Let us create test database as superuser:

create table master ( i integer primary key, a text);
        -- I want to protect this table from updating by 'dbuser'
        
create table slave ( j integer references master, b text);
        -- I want to enable updating this table by 'dbuser' 
        
grant select on master to dbuser;
grant select,update on slave to dbuser;

-- populating tables with sample values:
insert into master (i,a) values (1,'one');
insert into master (i,a) values (2,'two');
insert into slave (j,b) values (1,'ONE');

By now, all is ok.


Then, running psql as 'dbuser':

jk=> update slave set b='four';
ERROR:  master: Permission denied.

Why dbuser need 'update' permissions on 'master' table? I only want to
update 'slave' table.

If superuser grants update on master to dbuser, all works.

-- 
jk

Reply via email to