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

Istvan Toth reassigned PHOENIX-7474:
------------------------------------

    Assignee: Richárd Antal

> Migrate IndexTool tables and make sure they are created
> -------------------------------------------------------
>
>                 Key: PHOENIX-7474
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-7474
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Richárd Antal
>            Assignee: Richárd Antal
>            Priority: Major
>
> IndexTool uses 2 native HBase tables PHOENIX_INDEX_TOOL and 
> PHOENIX_INDEX_TOOL_RESULT that were not under SYSTEM namespace/scheme
> When creating an ASYNC index and running the indexTool with a user that have 
> 'RX' premission ON SCHEMA SYSTEM and 'RWX' ON SYSTEM.CATALOG
> We could face a AccessDeniedException (action=create)
> It is because IndexTool tries to create the above tables if they are not yet 
> present.
> Some user don't have permission for that but they would have permission to 
> create and index on a give table otherwise.
> To solve this we should create these tables similarly to other system tables.
> Also we should have these under SYSTEM schema/namespace.
> Steps to reproduce the issue:
>  # Create test user (testuser2) on cluster
>  # With admin permissions in phoenix:
>  ** Create SCHEMA:
>  *** CREATE SCHEMA IF NOT EXISTS test_schema2;
>  ** Grants for testuser2:
>  *** GRANT 'RX' ON SCHEMA SYSTEM TO 'testuser2';
> GRANT 'CRW' ON SCHEMA test_schema2 TO 'testuser2';
>  # With testuser2:
>  ** Create Table:
>  *** CREATE TABLE test_schema2.table2 (id BIGINT not null primary key, date 
> Date, amount INTEGER);
>  *** {color:#ff0000}Error{color}: 
> org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient 
> permissions for user ‘testus...@root.comops.site',action: delete, 
> tableName:SYSTEM:CATALOG, family:0, column: TRANSACTION_PROVIDER
>  # With admin:
>  ** Grant testuser2:
>  *** GRANT 'RWX' ON SYSTEM.CATALOG TO 'testuser2';
>  # testuser2:
>  ** Create Table and Indices:
>  *** CREATE TABLE test_schema2.table2 (id BIGINT not null primary key, date 
> Date, amount INTEGER);
>  *** CREATE INDEX test_index3 ON test_schema2.table2(date DESC);
>  *** CREATE INDEX test_index4 ON test_schema2.table2(date DESC) ASYNC;
>  ** Run IndexTool:
>  *** hbase org.apache.phoenix.mapreduce.index.IndexTool --schema test_schema2 
> --data-table table2 --index-table test_index4 --output-path /tmp/
>  *** {color:#ff0000}Error{color}: An exception occurred while performing the 
> indexing job: AccessDeniedException: 
> org.apache.hadoop.hbase.security.AccessDeniedException: Insufficient 
> permissions for user 'testu...@root.comops.site' (action=create)
> Creating a dummy ASYNC index with admin or GRANT 'C' TO 'testuser2'; resolves 
> this error
>  * 
>  ** IndexTool Again:
>  *** {color:#ff0000}Error{color}: Caused by: 
> org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException):
>  Permission denied: user=testuser2, access=WRITE, 
> inode="/user":hdfs:supergroup:drwxr-xr-x
>  # hdfs admin:
>  ** hdfs dfs -mkdir /user/testuser2
> hdfs dfs -chown testuser2 /user/testuser2
> hdfs dfs -chmod -R 770 /user/testuser2
>  # testuser2:
>  ** IndexTool Again
> Job sumbitted and run succesfully. TEST_INDEX4 is shown as "ACTIVE" in 
> phoenix.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to