Re: [HACKERS] ALTER TABLE ... SET TABLESPACE pg_default

2014-01-19 Thread Craig Ringer
On 01/17/2014 05:28 AM, Stephen Frost wrote:
> Greetings,
> 
> Harking back to 10 years ago when tablespaces were added, it looks 
> like we originally figured that users didn't need permissions to 
> create tables in the database default, per 2467394e.  That strikes
> me as perfectly fair.  Unfortunately, the later addition of ALTER
> TABLE ... SET TABLESPACE (af4de814) didn't get the memo about the
> default tablespace being special in this regard and refuses to let 
> a user move their tables into the default tablespace, even though
> they can do so via 'CREATE TABLE ... AS SELECT * FROM ...'.
> 
> Barring objections, I'll add the same conditional around the
> AclCheck in ATPrepSetTableSpace() as exists in DefineRelation() to
> allow users to ALTER TABLE ... SET TABLESPACE into the database's
> default tablespace and backpatch accordingly.

Sounds sensible. I just stumbled across a report of this bug, too:

http://stackoverflow.com/questions/21193127/avoid-users-to-create-tables-on-default-tablespace


-- 
 Craig Ringer   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


[HACKERS] ALTER TABLE ... SET TABLESPACE pg_default

2014-01-16 Thread Stephen Frost
Greetings,

  Harking back to 10 years ago when tablespaces were added, it looks
  like we originally figured that users didn't need permissions to
  create tables in the database default, per 2467394e.  That strikes me
  as perfectly fair.  Unfortunately, the later addition of
  ALTER TABLE ... SET TABLESPACE (af4de814) didn't get the memo about
  the default tablespace being special in this regard and refuses to let
  a user move their tables into the default tablespace, even though they
  can do so via 'CREATE TABLE ... AS SELECT * FROM ...'.

  Barring objections, I'll add the same conditional around the AclCheck
  in ATPrepSetTableSpace() as exists in DefineRelation() to allow users
  to ALTER TABLE ... SET TABLESPACE into the database's default
  tablespace and backpatch accordingly.

Thanks,

Stephen


signature.asc
Description: Digital signature