[ 
https://issues.apache.org/jira/browse/HIVE-24413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17289803#comment-17289803
 ] 

Alexey Vishnevskiy commented on HIVE-24413:
-------------------------------------------

Hi [~dengzh], this is true - HMS does not have much exposure to what the client 
is going to do next with the result of getTable call - list fields, select 
table, or even write to the table location.

Metastore is not able to control or authorize those actions. The goal of this 
enhancement is to have a proper implementation of MetaStorePreEventListener 
functionality.

The suggested approach is to call such a listener in the subclasses of 
org.apache.thrift.ProcessFunction - all classes added to the 
ThriftHiveMetastore.processMap. Such listener could be wrapped around 
ProcessFunction.getResult(I iface, T args)

Please let me know what do you think.

> MetaStorePreEventListener is incomplete
> ---------------------------------------
>
>                 Key: HIVE-24413
>                 URL: https://issues.apache.org/jira/browse/HIVE-24413
>             Project: Hive
>          Issue Type: Improvement
>          Components: Metastore
>    Affects Versions: 3.1.2
>            Reporter: Alexey Vishnevskiy
>            Priority: Major
>             Fix For: All Versions
>
>
> According to Hive documentation, MetaStorePreEventListener should be used to 
> perform authorization and/or additional actions for every metastore call. 
> MetaStorePreEventListener is implemented and works for some calls, but does 
> not work for others. For example, It does work for calls: getTable, 
> createDatabase, createTable, alterTable, alterPartition, etc... but does not 
> get called for alterDatabase, getFields, getDatabases, getTableStatistics, 
> etc...
> Proper implementation of MetaStorePreEventListener would require a lot of 
> changes in different classes so it seems that it is better to add a similar 
> listener in the descendant of org.apache.thrift.ProcessFunction and change 
> ThriftHiveMetastore generated by thrift compiler to descend all 
> auto-generated classes from it, not from the  ProcessFunction directly. This 
> applies to all versions of HiveMetastore with  MetaStorePreEventListener 
> implemented. 
> I would like to contribute code for this functionality for the trunk - please 
> let me know your suggestions and thoughts.
> Thanks!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to