Forgive me if this is not the correct list for this type of
question. I thought I understood PostgreSQL’s privileges well
enough, but I’m running into problems, so I must misunderstand
something. I have a website that I’m adding functionality to, and
therefore need to expand the database. The database already contains
around 30 populated tables with 1 group role (group_reader) and 1 user role
(user_reader). To all existing tables, I’d assigned PUBLIC and group_reader
SELECT privilege. Everything is working fine. Now, I created one more group role (called group_writer) and
another user role (user_writer) and make sure that user_writer is a member of
group_writer. I then explicitly grant group_writer SELECT privilege on all
tables. (I know this is technically not necessary as PUBLIC has already
been assigned SELECT privilege.) I created (tbl_batch) and deliberately decided to not grant PUBLIC
access to this table. Instead, I granted group_writer SELECT, INSERT,
UPDATE, and DELETE privileges to this table. Looking at the ACL list for
this table confirms this. When I attempt to access this table as user_writer, I’m
denied access. I’m access this through Tomcat and verifying the
connected user as user_writer. I shouldn’t have to grant the PUBLIC group full
access to this table as well, should I? From what I understand of the manual, a user’s privileges
are the SUM of the privileges of all groups of which that user is a member.
Therefore, user_writer’s privileges should be {SELECT, INSERT, UPDATE, DELETE}
from group_writer plus {} from PUBLIC, which should yield {SELECT, INSERT,
UPDATE, DELETE}. BTW, I’m running 8.2.6 on WinXP x64 SP2. Thanks, Gord |