diff --git a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/AuthorizationPreEventListener.java b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/AuthorizationPreEventListener.java index fc9d0bd..b44f99e 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/AuthorizationPreEventListener.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/security/authorization/AuthorizationPreEventListener.java @@ -305,19 +305,18 @@ private void authorizeAlterTable(PreAlterTableEvent context) private void authorizeAddPartition(PreAddPartitionEvent context) throws InvalidOperationException, MetaException { try { + TableWrapper table = new TableWrapper(context.getTable()); for (org.apache.hadoop.hive.metastore.api.Partition mapiPart : context.getPartitions()) { - org.apache.hadoop.hive.ql.metadata.Partition wrappedPartiton = new PartitionWrapper( - mapiPart, context); - for(HiveMetastoreAuthorizationProvider authorizer : tAuthorizers.get()){ - authorizer.authorize(wrappedPartiton, + org.apache.hadoop.hive.ql.metadata.Partition wrappedPartition = new PartitionWrapper( + table, mapiPart); + for(HiveMetastoreAuthorizationProvider authorizer : tAuthorizers.get()){ + authorizer.authorize(wrappedPartition, HiveOperation.ALTERTABLE_ADDPARTS.getInputRequiredPrivileges(), HiveOperation.ALTERTABLE_ADDPARTS.getOutputRequiredPrivileges()); } } } catch (AuthorizationException e) { throw invalidOperationException(e); - } catch (NoSuchObjectException e) { - throw invalidOperationException(e); } catch (HiveException e) { throw metaException(e); }