[ 
https://issues.apache.org/jira/browse/HIVE-27285?focusedWorklogId=858958&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-858958
 ]

ASF GitHub Bot logged work on HIVE-27285:
-----------------------------------------

                Author: ASF GitHub Bot
            Created on: 25/Apr/23 14:49
            Start Date: 25/Apr/23 14:49
    Worklog Time Spent: 10m 
      Work Description: jfsii commented on code in PR #4258:
URL: https://github.com/apache/hive/pull/4258#discussion_r1176613457


##########
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/MetaStoreFilterHook.java:
##########
@@ -85,15 +85,13 @@ default List<String> filterCatalogs(List<String> catalogs) 
throws MetaException
   List<String> filterTableNames(String catName, String dbName, List<String> 
tableList)
       throws MetaException;
 
-  // Previously this was handled by filterTableNames.  But it can't be anymore 
because we can no
-  // longer depend on a 1-1 mapping between table name and entry in the list.
   /**
    * Filter a list of TableMeta objects.
    * @param tableMetas list of TableMetas to filter
    * @return filtered table metas
    * @throws MetaException something went wrong
    */
-  List<TableMeta> filterTableMetas(String catName,String 
dbName,List<TableMeta> tableMetas) throws MetaException;
+  List<TableMeta> filterTableMetas(List<TableMeta> tableMetas) throws 
MetaException;

Review Comment:
   I'll make this change. I had hoped to just drop this interface method since 
I didn't see any indication of other systems implementing MetaStoreFilterHooks 
(I generally think less dead code laying around the better), but I guess it is 
better to be safe here.



##########
ql/src/test/queries/clientpositive/authorization_privilege_objects.q:
##########
@@ -0,0 +1,20 @@
+--! qt:authorizer
+set 
hive.security.authorization.manager=org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAuthorizerFactoryForTest;
+set test.hive.authz.sstd.validator.outputPrivObjs=true;
+set hive.test.authz.sstd.hs2.mode=true;
+set user.name=testuser;
+
+CREATE DATABASE test_db;
+CREATE TABLE test_privs(i int);
+set user.name=testuser2;
+CREATE TABLE test_privs2(s string, i int);
+set user.name=testuser;
+SHOW DATABASES;
+SHOW TABLES;

Review Comment:
   I am unsure what you are trying to highlight.
   
   The SHOW TABLEs might hit getTableMeta - however the purpose of this test 
isn't to specifically test getTableMeta, it is to show the actual 
HivePrivilegeObjects that end up getting passed to the authorization 
implementation(s). I couldn't find any other test that verified the 
HivePrivilegeObject being generated for various commands. I added a few other 
query types - SELECTs/INSERTs for example to add some coverage for them, but 
this test could be expanded to include many more statements (I just felt maybe 
trying to cover them all is a bit out of scope for this PR).



##########
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/minihms/AbstractMetaStoreService.java:
##########
@@ -99,7 +99,7 @@ public void start(Map<MetastoreConf.ConfVars, String> 
metastoreOverlay,
    * @return The client connected to this service
    * @throws MetaException if any Exception occurs during client configuration
    */
-  public IMetaStoreClient getClient() throws MetaException {

Review Comment:
   It allows access to methods like setProcessorCapabilities in the children 
tests. I did not see any indication the tests were specifically designed to 
test the IMetaStoreClient, so I felt it was safe to expose HiveMetaStoreClient 
to have better access to HMSClient methods.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 858958)
    Time Spent: 2h  (was: 1h 50m)

> Add TableMeta ownership for filterTableMetas
> --------------------------------------------
>
>                 Key: HIVE-27285
>                 URL: https://issues.apache.org/jira/browse/HIVE-27285
>             Project: Hive
>          Issue Type: Improvement
>          Components: Standalone Metastore
>    Affects Versions: 4.0.0
>            Reporter: John Sherman
>            Assignee: John Sherman
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> Currently TableMeta does not include ownership information which makes it 
> difficult for filterTableMetas to efficiently filter based on ${OWNER} 
> privileges.
> We should add ownership information to TableMeta and utilizing it in 
> filterTableMetas authorization checks.



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

Reply via email to