Repository: hive Updated Branches: refs/heads/master 7f3e4811e -> 70631bb4c
HIVE-11498: HIVE Authorization v2 should not check permission for dummy entity (Dapeng Sun via Dong Chen) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/70631bb4 Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/70631bb4 Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/70631bb4 Branch: refs/heads/master Commit: 70631bb4cff0c0cbd7055e843e091bfd4fae8e4e Parents: 7f3e481 Author: Dapeng Sun <s...@apache.org> Authored: Tue Aug 11 00:56:13 2015 -0400 Committer: Dong Chen <dong1.c...@intel.com> Committed: Tue Aug 11 01:37:16 2015 -0400 ---------------------------------------------------------------------- ql/src/java/org/apache/hadoop/hive/ql/Driver.java | 5 ++++- .../queries/clientpositive/authorization_1_sql_std.q | 4 ++++ .../results/clientpositive/authorization_1_sql_std.q.out | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/70631bb4/ql/src/java/org/apache/hadoop/hive/ql/Driver.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java index cc85f31..e7b7b55 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java @@ -787,7 +787,10 @@ public class Driver implements CommandProcessor { for(Entity privObject : privObjects){ HivePrivilegeObjectType privObjType = AuthorizationUtils.getHivePrivilegeObjectType(privObject.getType()); - + if(privObject.isDummy()) { + //do not authorize dummy readEntity or writeEntity + continue; + } if(privObject instanceof ReadEntity && !((ReadEntity)privObject).isDirect()){ // In case of views, the underlying views or tables are not direct dependencies // and are not used for authorization checks. http://git-wip-us.apache.org/repos/asf/hive/blob/70631bb4/ql/src/test/queries/clientpositive/authorization_1_sql_std.q ---------------------------------------------------------------------- diff --git a/ql/src/test/queries/clientpositive/authorization_1_sql_std.q b/ql/src/test/queries/clientpositive/authorization_1_sql_std.q index 82896a4..b7b6710 100644 --- a/ql/src/test/queries/clientpositive/authorization_1_sql_std.q +++ b/ql/src/test/queries/clientpositive/authorization_1_sql_std.q @@ -6,6 +6,10 @@ set user.name=hive_admin_user; create table src_autho_test (key STRING, value STRING) ; set hive.security.authorization.enabled=true; + +--select dummy table +select 1; + set role ADMIN; --table grant to user http://git-wip-us.apache.org/repos/asf/hive/blob/70631bb4/ql/src/test/results/clientpositive/authorization_1_sql_std.q.out ---------------------------------------------------------------------- diff --git a/ql/src/test/results/clientpositive/authorization_1_sql_std.q.out b/ql/src/test/results/clientpositive/authorization_1_sql_std.q.out index 44c2fbd..2315fd4 100644 --- a/ql/src/test/results/clientpositive/authorization_1_sql_std.q.out +++ b/ql/src/test/results/clientpositive/authorization_1_sql_std.q.out @@ -6,6 +6,17 @@ POSTHOOK: query: create table src_autho_test (key STRING, value STRING) POSTHOOK: type: CREATETABLE POSTHOOK: Output: database:default POSTHOOK: Output: default@src_autho_test +PREHOOK: query: --select dummy table +select 1 +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +#### A masked pattern was here #### +POSTHOOK: query: --select dummy table +select 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +#### A masked pattern was here #### +1 PREHOOK: query: set role ADMIN PREHOOK: type: SHOW_ROLES POSTHOOK: query: set role ADMIN