Foreign table permissions and cloning - Mailing list pgsql-hackers

From Thom Brown
Subject Foreign table permissions and cloning
Date
Msg-id AANLkTi=rdu0Nrxa+wtqVLzWR=tvh3rzQoNS43i5DDkLN@mail.gmail.com
Whole thread Raw
Responses Re: Foreign table permissions and cloning
Re: Foreign table permissions and cloning
List pgsql-hackers
Hi,

I've noticed some weirdness when trying to grant various types of
permissions on a foreign table and thought I'd report it here:

postgres=# \d stuffForeign table "public.stuff"Column |  Type   | Modifiers
--------+---------+-----------id     | integer |colour | text    |animal | text    |
Server: file

postgres=# GRANT SELECT (colour) ON FOREIGN TABLE stuff TO user_a;
ERROR:  column privileges are only valid for relations
postgres=# GRANT SELECT (colour) ON TABLE stuff TO user_a;
GRANT
postgres=# GRANT SELECT ON ALL FOREIGN TABLES IN SCHEMA public TO user_a;
ERROR:  syntax error at or near "FOREIGN"
LINE 1: GRANT SELECT ON ALL FOREIGN TABLES IN SCHEMA public TO user_...                           ^
Granting select for all tables in a schema to a user will affect
foreign tables however.  And column-level permissions work with
foreign tables if you refer to them as regular tables in the
GRANT/REVOKE statement.

Using the term FOREIGN TABLE in a GRANT statement isn't documented.
I suspect this will need its own entry in the syntax definition
section of the GRANT and REVOKE reference pages.

I also noticed this doesn't work:

postgres=# CREATE TABLE animals (LIKE stuff);
ERROR:  inherited relation "stuff" is not a table

Since LIKE doesn't maintain any sort of link with the table like
INHERITS does, it would be nice if this could work in future.

Thanks

-- 
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Greg Smith
Date:
Subject: Re: 2nd Level Buffer Cache
Next
From: Joshua Berkus
Date:
Subject: Re: Should psql support URI syntax?