| PREHOOK: query: -- create a table owned by user1 |
| |
| create table exchange_partition_test_1(a int) partitioned by (b int) |
| PREHOOK: type: CREATETABLE |
| PREHOOK: Output: database:default |
| PREHOOK: Output: default@exchange_partition_test_1 |
| POSTHOOK: query: -- create a table owned by user1 |
| |
| create table exchange_partition_test_1(a int) partitioned by (b int) |
| POSTHOOK: type: CREATETABLE |
| POSTHOOK: Output: database:default |
| POSTHOOK: Output: default@exchange_partition_test_1 |
| PREHOOK: query: show grant user user1 on table exchange_partition_test_1 |
| PREHOOK: type: SHOW_GRANT |
| POSTHOOK: query: show grant user user1 on table exchange_partition_test_1 |
| POSTHOOK: type: SHOW_GRANT |
| default exchange_partition_test_1 user1 USER DELETE true -1 user1 |
| default exchange_partition_test_1 user1 USER INSERT true -1 user1 |
| default exchange_partition_test_1 user1 USER SELECT true -1 user1 |
| default exchange_partition_test_1 user1 USER UPDATE true -1 user1 |
| PREHOOK: query: set role admin |
| PREHOOK: type: SHOW_ROLES |
| POSTHOOK: query: set role admin |
| POSTHOOK: type: SHOW_ROLES |
| PREHOOK: query: -- add data to exchange_partition_test_1 |
| |
| insert overwrite table exchange_partition_test_1 partition (b=1) select key from src |
| PREHOOK: type: QUERY |
| PREHOOK: Input: default@src |
| PREHOOK: Output: default@exchange_partition_test_1@b=1 |
| POSTHOOK: query: -- add data to exchange_partition_test_1 |
| |
| insert overwrite table exchange_partition_test_1 partition (b=1) select key from src |
| POSTHOOK: type: QUERY |
| POSTHOOK: Input: default@src |
| POSTHOOK: Output: default@exchange_partition_test_1@b=1 |
| POSTHOOK: Lineage: exchange_partition_test_1 PARTITION(b=1).a EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] |
| PREHOOK: query: set role all |
| PREHOOK: type: SHOW_ROLES |
| POSTHOOK: query: set role all |
| POSTHOOK: type: SHOW_ROLES |
| PREHOOK: query: -- switch user |
| |
| -- create a table owned by user2 (as a result user2 will have insert privilege on exchange_partition_test_2 but no select + delete previlege on exchange_partition_test_1) |
| |
| create table exchange_partition_test_2(a int) partitioned by (b int) |
| PREHOOK: type: CREATETABLE |
| PREHOOK: Output: database:default |
| PREHOOK: Output: default@exchange_partition_test_2 |
| POSTHOOK: query: -- switch user |
| |
| -- create a table owned by user2 (as a result user2 will have insert privilege on exchange_partition_test_2 but no select + delete previlege on exchange_partition_test_1) |
| |
| create table exchange_partition_test_2(a int) partitioned by (b int) |
| POSTHOOK: type: CREATETABLE |
| POSTHOOK: Output: database:default |
| POSTHOOK: Output: default@exchange_partition_test_2 |
| PREHOOK: query: show grant user user2 on table exchange_partition_test_2 |
| PREHOOK: type: SHOW_GRANT |
| POSTHOOK: query: show grant user user2 on table exchange_partition_test_2 |
| POSTHOOK: type: SHOW_GRANT |
| default exchange_partition_test_2 user2 USER DELETE true -1 user1 |
| default exchange_partition_test_2 user2 USER INSERT true -1 user1 |
| default exchange_partition_test_2 user2 USER SELECT true -1 user1 |
| default exchange_partition_test_2 user2 USER UPDATE true -1 user1 |
| PREHOOK: query: -- execute alter table exchange partition to add data to exchange_partition_test_2 (this should fail) |
| |
| explain authorization alter table exchange_partition_test_2 exchange partition (b=1) with table exchange_partition_test_1 |
| PREHOOK: type: ALTERTABLE_EXCHANGEPARTITION |
| POSTHOOK: query: -- execute alter table exchange partition to add data to exchange_partition_test_2 (this should fail) |
| |
| explain authorization alter table exchange_partition_test_2 exchange partition (b=1) with table exchange_partition_test_1 |
| POSTHOOK: type: ALTERTABLE_EXCHANGEPARTITION |
| INPUTS: |
| default@exchange_partition_test_1 |
| OUTPUTS: |
| default@exchange_partition_test_2 |
| CURRENT_USER: |
| user2 |
| OPERATION: |
| ALTERTABLE_EXCHANGEPARTITION |
| AUTHORIZATION_FAILURES: |
| Permission denied: Principal [name=user2, type=USER] does not have following privileges for operation ALTERTABLE_EXCHANGEPARTITION [[SELECT, DELETE] on Object [type=TABLE_OR_VIEW, name=default.exchange_partition_test_1]] |
| FAILED: HiveAccessControlException Permission denied: Principal [name=user2, type=USER] does not have following privileges for operation ALTERTABLE_EXCHANGEPARTITION [[SELECT, DELETE] on Object [type=TABLE_OR_VIEW, name=default.exchange_partition_test_1]] |