This is a correction to the previously posted bug - please ignore the previous posted bug as this is the corrected version:
 
PostgreSQL 7.4.2 on i386-redhat-linux-gnu, compiled by GCC 2.96
 
I have a simple VIEW such as the following:
 
CREATE OR REPLACE VIEW vu_tbl_useracc AS
 SELECT ua.id_user, ua.id_cmpy, ua.id_contrib, ua.dt_edited, ua.id_editedby
 FROM tbl_useracc ua;
GRANT SELECT, INSERT ON TABLE vu_tbl_useracc TO GROUP grp_cisx_admin;
CREATE OR REPLACE RULE rul_i02 AS 
    ON INSERT TO vu_tbl_useracc DO INSTEAD 
    INSERT INTO tbl_useracc (id_user, id_cmpy, id_contrib)  VALUES (new.id_user, new.id_cmpy, new.id_contrib);
 
If I attempt to INSERT into the view all works as expected.
 
Now when I add the following rule:
 
CREATE OR REPLACE RULE rul_i01 AS
    ON INSERT TO vu_tbl_useracc
   WHERE new.id_contrib = 1 DO  SELECT raise_exception('Cannot insert Companies to access for CISX Users'::text) AS error;
 
Now whenever I attempt to INSERT into the view I get the following error.

ERROR: permission denied for relation vu_tbl_useracc

The error goes away if I grant both INSERT and UPDATE permissions to the above group.
 
I didn't have this problem on version 7.3.4 which is what I have upgraded from.
 
Regards
Donald Fraser

Reply via email to