The following bug has been logged online:
Bug reference: 1610
Logged by: Olleg Samoylov
Email address: olleg@mipt.ru
PostgreSQL version: 7.4.7
Operating system: Linux debian-amd64
Description: rewrite rule and sequence
Details:
Rule on view can't insert in table with "serial" field under not owner. Need
grant privilege on sequence explicitly.
How reproduce:
olleg=> create table f (pk serial, f integer);
NOTICE: CREATE TABLE will create implicit sequence "f_pk_seq" for "serial"
column "f.pk"
CREATE TABLE
olleg=> create view v as select * from t;
ERROR: relation "t" does not exist
olleg=> drop table f;
DROP TABLE
olleg=> create table t (pk serial, f integer);
NOTICE: CREATE TABLE will create implicit sequence "t_pk_seq" for "serial"
column "t.pk"
CREATE TABLE
olleg=> create view v as select * from t;
CREATE VIEW
olleg=> create rule r as on insert to v do instead insert into t(f) values
(new.f);
CREATE RULE
olleg=> grant select,insert on t to bill;
GRANT
olleg=> \c - bill
You are now connected as new user "bill".
olleg=> insert into t (f) values (0);
ERROR: permission denied for sequence t_pk_seq