permissions & foreign keys - Mailing list pgsql-general

From Tamsin
Subject permissions & foreign keys
Date
Msg-id NEBBKHBOBMJCHDMGKCNJIEPBCCAA.tg_mail@bryncadfan.co.uk
Whole thread Raw
Responses Re: permissions & foreign keys  (Jan Wieck <janwieck@Yahoo.com>)
List pgsql-general
Hi,

I am having some problems setting up security on my database:

I have a table 'feedback', with a foriegn key to a table 'feedback_type'
(tables at end).  I want to give the user all permissions on feedback, but
to only be able to select the possible values from the feedback_type table.
So, I have granted select, insert, update, delete on feedback, and only
select on feedback_type.  But...

When I try to update feedback, (e.g. update feedback set fb_type = 'bug'
where fb_id = 1011)
I get ERROR: feedback_type: permission denied, and looking at the debug
output, its doing:
'select oid from "feedback_type" where "fb_type" = $1 for update of
"feedback_type".
When I created the constraint, I just did:
ALTER TABLE feedback
       ADD CONSTRAINT fk_feedback_type
              FOREIGN KEY (fb_type)
                             REFERENCES feedback_type;

I don't really see why it wants to update feedback_type?  Can anyone tell me
what I'm doing wrong, or will I just have to grant update on feedback_type
(and all other tables referenced by FKs)?

Thanks for any help,
Tamsin

----------------------------
The tables are (abbreviated):

CREATE TABLE feedback (
       fb_id                INTEGER NOT NULL,
       usr_id               INTEGER NOT NULL,
       fb_type              VARCHAR(20) DEFAULT 'bug' NOT NULL,
       CONSTRAINT XPKfeedback
              PRIMARY KEY (fb_id)
);



CREATE TABLE feedback_type (
       fb_type              VARCHAR(20) NOT NULL,
       CONSTRAINT XPKfeedback_type
              PRIMARY KEY (fb_type)
);






pgsql-general by date:

Previous
From: "Enrico Comini"
Date:
Subject: Test
Next
From: "Enrico Comini"
Date:
Subject: test