@Override
  public final List<TableMeta> filterTableMetas(List<TableMeta> tableMetas)
      throws MetaException {
    LOG.debug("==> HiveMetaStoreAuthorizer.filterTableMetas()");
    if (!CollectionUtils.isEmpty(tableMetas)) {
      Map<String, List<TableMeta>> metaGroupByCatDb = new HashMap<>();
      tableMetas.forEach(tableMeta -> {
        String key = MetaStoreUtils.prependCatalogToDbName(tableMeta.getCatName(),
            tableMeta.getDbName(), getConf()).toLowerCase();
        metaGroupByCatDb.computeIfAbsent(key, s -> new ArrayList<>()).add(tableMeta);
      });
      List<TableMeta> filteredTabs = new ArrayList<>();
      for (Map.Entry<String, List<TableMeta>> entry : metaGroupByCatDb.entrySet()) {
        TableMeta firstTabMeta = entry.getValue().get(0);
        filteredTabs.addAll(filterTableMetas(firstTabMeta.getCatName(),
            firstTabMeta.getDbName(), entry.getValue()));
      }
      return filteredTabs;
    }
    LOG.info("<== HiveMetaStoreAuthorizer.filterTableMetas() : returning empty set");
    return Collections.emptyList();
  }
HiveMetaStoreAuthorizer :  Do authorization checks on MetaStore Events in MetaStorePreEventListener
ql/src/java/org/apache/hadoop/hive/ql/security/authorization/plugin/metastore/HiveMetaStoreAuthorizer.java