The following bug has been logged online:
Bug reference: 2278
Logged by: Tomasz Kliczak
Email address: tklimczak@atsisa.com
PostgreSQL version: 8.0.3
Operating system: RedHat
Description: problem with grants
Details:
example of database structure :
CREATE TABLE dt_a
(
id int4 NOT NULL DEFAULT nextval('dt_a_seq'::text),
name varchar(40) NOT NULL,
sy_b_id int4,
CONSTRAINT dt_a_pkey PRIMARY KEY (id),
CONSTRAINT sy_task_priority FOREIGN KEY (sy_b_id)
REFERENCES sy_b (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
)
WITH OIDS;
ALTER TABLE dt_task OWNER TO "server";
CREATE TABLE sy_b
(
id int4 NOT NULL,
name varchar(40) NOT NULL,
CONSTRAINT sy_b_pkey PRIMARY KEY (id)
)
WITH OIDS;
ALTER TABLE sy_b OWNER TO "server";
GRANT SELECT ON TABLE sy_b TO "\""server\""";
When i try to add something into table dt_a I get error :
ERROR: permission denied for relation sy_task_priority
CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."sy_b" x WHERE "id" = $1
FOR UPDATE OF x"
I want to have constraint on table dt_a, and for table sy_b only SELECT
grant.
But when I add UPDATE grant on sy_b it works.