Re: Resetting priveleges on a table

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Bryan White <bryan(at)arcamax(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Resetting priveleges on a table
Date: 2006-03-14 19:19:43
Message-ID: 21997.1142363983@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Bryan White <bryan(at)arcamax(dot)com> writes:
> ec=# \z bulkuploadcfg
> Access privileges for database "ec"
> Schema | Table | Access privileges
> --------+---------------+------------------------------------------------------------------
> public | bulkuploadcfg |
> {pconner=a*r*w*d*R*x*t*/pconner,=arwdRxt/pconner,=arwdRxt/bryan}
> (1 row)

Hm, this is 7.4.what exactly? The above should be an illegal state
(assuming pconner is the table owner) because there is no grant option
to bryan allowing him to grant anything to public.

There was an old bug that would allow you to get into this state if
bryan was a superuser (the system would allow him to grant privileges
anyway), but according to the CVS logs we fixed that in 7.4RC1. This
table wouldn't happen to be a holdover from a 7.4 beta version would it?

Another possibility is that you did an ALTER TABLE OWNER after assigning
some initial permissions. 7.4 had that command but it didn't do
anything about changing the ACL list to match. I think you could have
gotten to the above state if pconner were the original table owner and
had done GRANT ALL TO PUBLIC, and then you altered table ownership to
bryan and he also did GRANT ALL TO PUBLIC.

Best solution might be to forcibly set the table's pg_class.relacl field
to null (resetting all the permissions to default) and then grant what
you want.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message CSN 2006-03-14 20:10:49 What's a good default encoding?
Previous Message Michael Fuhr 2006-03-14 18:26:17 Re: Dynamic function execution?