[ 
https://issues.apache.org/jira/browse/HAWQ-24?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ruilong Huo updated HAWQ-24:
----------------------------
    Description: 
It raises error "Cannot support GRANT/REVOKE on TABLESPACE statement" while 
following the HAWQ guide 
(http://hawq.docs.pivotal.io/docs-gpdb/admin_guide/ddl/ddl-tablespace.html) to 
GRANT/REVOKE CREATION privilege to/from non-superuser on TABLESPACE.

{code}
gpadmin=# GRANT CREATE ON TABLESPACE fstbs TO tstuser;
ERROR:  Cannot support GRANT/REVOKE on TABLESPACE statement
{code}

As a consequence, with the user as SUPERUSER is possible to create tables on 
top of the tablespace, but with a user as NOSUPERUSER its not possible:

{code}
tstuser=> CREATE TABLE testfs3 ( col01 INTEGER ) TABLESPACE fstbs;
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 
'col01' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
sure column(s) chosen are the optimal data distribution key to minimize skew.
ERROR:  permission denied for tablespace fstbs
{code}
 
{code}
gpadmin=# alter user tstuser with superuser;
ALTER ROLE

[gpadmin@ai2hdm1 ~]$ psql -d tstuser -U tstuser
Password for user tstuser: 
psql (8.2.15)
Type "help" for help.

tstuser=# CREATE TABLE testfs3 ( col01 INTEGER ) TABLESPACE fstbs;
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 
'col01' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
{code}

Due to security consideration, it is not acceptable for some HAWQ users to 
always use SUPERUSER to create TABLESPACE.  Thus, we need to support:
1. Superuser can GRANT/REVOKE CREATION privilege to/from non-superuser on 
TABLESPACE.
2. Non-supuser can create TABLESPACE once it is granted with creation privilege.
3. Non-superuser to GRANT/REVOKE CREATION privilege on TABLESPACE to other 
users.

  was:
It raises error "Cannot support GRANT/REVOKE on TABLESPACE statement" while 
following the HAWQ guide 
(http://hawq.docs.pivotal.io/docs-gpdb/admin_guide/ddl/ddl-tablespace.html) to 
GRANT/REVOKE CREATION privilege to/from non-superuser on TABLESPACE.

{code}
gpadmin=# GRANT CREATE ON TABLESPACE fstbs TO tstuser;
ERROR:  Cannot support GRANT/REVOKE on TABLESPACE statement
{code}

As a consequence, with the user as SUPERUSER is possible to create tables on 
top of the tablespace, but with a user as NOSUPERUSER its not possible:

{code}
tstuser=> CREATE TABLE testfs3 ( col01 INTEGER ) TABLESPACE fstbs;
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 
'col01' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
sure column(s) chosen are the optimal data distribution key to minimize skew.
ERROR:  permission denied for tablespace fstbs
{code}
 
{code}
gpadmin=# alter user tstuser with superuser;
ALTER ROLE

[gpadmin@ai2hdm1 ~]$ psql -d tstuser -U tstuser
Password for user tstuser: 
psql (8.2.15)
Type "help" for help.

tstuser=# CREATE TABLE testfs3 ( col01 INTEGER ) TABLESPACE fstbs;
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 
'col01' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE
{code}

Due to security consideration, it is not acceptable for some HAWQ users to 
always use SUPERUSER to create TABLESPACE.  Thus, we need to support:
1. Superuser can GRANT/REVOKE CREATION privilege to/from non-superuser on 
TABLESPACE.
2. Non-supuser can create TABLESPACE once it is granted with creation privilege.


> Support superuser to GRANT/REVOKE CREATION privilege to/from non-superuser on 
> TABLESPACE
> ----------------------------------------------------------------------------------------
>
>                 Key: HAWQ-24
>                 URL: https://issues.apache.org/jira/browse/HAWQ-24
>             Project: Apache HAWQ
>          Issue Type: New Feature
>          Components: DDL, Storage
>            Reporter: Ruilong Huo
>            Assignee: Lei Chang
>
> It raises error "Cannot support GRANT/REVOKE on TABLESPACE statement" while 
> following the HAWQ guide 
> (http://hawq.docs.pivotal.io/docs-gpdb/admin_guide/ddl/ddl-tablespace.html) 
> to GRANT/REVOKE CREATION privilege to/from non-superuser on TABLESPACE.
> {code}
> gpadmin=# GRANT CREATE ON TABLESPACE fstbs TO tstuser;
> ERROR:  Cannot support GRANT/REVOKE on TABLESPACE statement
> {code}
> As a consequence, with the user as SUPERUSER is possible to create tables on 
> top of the tablespace, but with a user as NOSUPERUSER its not possible:
> {code}
> tstuser=> CREATE TABLE testfs3 ( col01 INTEGER ) TABLESPACE fstbs;
> NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 
> 'col01' as the Greenplum Database data distribution key for this table.
> HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
> sure column(s) chosen are the optimal data distribution key to minimize skew.
> ERROR:  permission denied for tablespace fstbs
> {code}
>  
> {code}
> gpadmin=# alter user tstuser with superuser;
> ALTER ROLE
> [gpadmin@ai2hdm1 ~]$ psql -d tstuser -U tstuser
> Password for user tstuser: 
> psql (8.2.15)
> Type "help" for help.
> tstuser=# CREATE TABLE testfs3 ( col01 INTEGER ) TABLESPACE fstbs;
> NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 
> 'col01' as the Greenplum Database data distribution key for this table.
> HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make 
> sure column(s) chosen are the optimal data distribution key to minimize skew.
> CREATE TABLE
> {code}
> Due to security consideration, it is not acceptable for some HAWQ users to 
> always use SUPERUSER to create TABLESPACE.  Thus, we need to support:
> 1. Superuser can GRANT/REVOKE CREATION privilege to/from non-superuser on 
> TABLESPACE.
> 2. Non-supuser can create TABLESPACE once it is granted with creation 
> privilege.
> 3. Non-superuser to GRANT/REVOKE CREATION privilege on TABLESPACE to other 
> users.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to