[ 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)