Re: BUG #8512: Can't use columns I can't read in the where clause of a select

From: Stephen Frost <sfrost(at)snowman(dot)net>
To: kurt(at)roeckx(dot)be
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8512: Can't use columns I can't read in the where clause of a select
Date: 2013-10-08 19:02:01
Message-ID: 20131008190200.GE2706@tamriel.snowman.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

* kurt(at)roeckx(dot)be (kurt(at)roeckx(dot)be) wrote:
> Allows SELECT from any column, or the specific columns listed, of the
> specified table, view, or sequence. Also allows the use of COPY TO. This
> privilege is also needed to reference existing column values in UPDATE or
> DELETE.
>
>
> I read that as "SELECT field1 from table where field2 = 1" should work if I
> have grant select(field1), but not on field2. I'm getting a "permission
> denied". If I remove the where clause it of course works.

You have to have SELECT rights on a column to be able to use it in a
conditional (eg: with WHERE).

> I'm not sure if the behaviour is expected or not. Maybe I'm reading the
> documentation wrong, or maybe the documentation is just wrong. Could
> someone please clarify?

It's expected. The documentation could perhaps be improved, but the
second sentence ("This privilege is also needed..") is intended to cover
the case where the column is being referred to *anywhere* in the query,
basically, and that applies to SELECT as much as UPDATE or DELETE.

Thanks,

Stephen

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message David Johnston 2013-10-08 19:15:39 Re: BUG #8512: Can't use columns I can't read in the where clause of a select
Previous Message kurt 2013-10-08 18:52:18 BUG #8512: Can't use columns I can't read in the where clause of a select