Re: ALTER DEFAULT PRIVILEGES FOR ROLE is broken

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: ALTER DEFAULT PRIVILEGES FOR ROLE is broken
Date: 2013-04-29 00:11:13
Message-ID: 517DBAA1.9040608@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


> ... in fact, there is no combination of actions which will make "FOR
> ROLE" work. Any invokation of "FOR ROLE" inevitably results in a
> "permission denied" message:
>
> analytics2=> \c - webui
> You are now connected to database "analytics2" as user "webui".
> analytics2=> ALTER DEFAULT PRIVILEGES FOR ROLE webui IN SCHEMA web
> GRANT SELECT ON TABLES TO dbreader;
> ERROR: permission denied for schema web

Actually, the problem is worse than I thought. It looks like I can't
set default privs for any role which is not the owner of the schema:

[jberkus(at)pgx-test ~]$ psql -U webui analytics2
psql (9.2.4)
Type "help" for help.

analytics2=> ALTER DEFAULT PRIVILEGES IN SCHEMA web GRANT SELECT ON
TABLES TO dbreader;
ERROR: permission denied for schema web

In other words, ALTER DEFAULT PRIVs only works if you are the role
you're trying to grant, and that role is the owner of the schema. It
doesn't work for any other role or any schema you don't own.

This means that I have NO WAY to set default privs for the majority of
users on my system. WTF? How did we break this so badly?

--
Josh Berkus
PostgreSQL Experts Inc.
http://pgexperts.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2013-04-29 00:40:02 Re: Remaining beta blockers
Previous Message Josh Berkus 2013-04-29 00:00:42 ALTER DEFAULT PRIVILEGES FOR ROLE is broken