Thread: ALTER TABLE ... SET TABLESPACE pg_default
Greetings, Harking back to 10 years ago when tablespaces were added, it looks like we originally figured that users didn't need permissionsto create tables in the database default, per 2467394e. That strikes me as perfectly fair. Unfortunately, thelater addition of ALTER TABLE ... SET TABLESPACE (af4de814) didn't get the memo about the default tablespace being specialin this regard and refuses to let a user move their tables into the default tablespace, even though they can do sovia '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
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