Gagan, Correct, that's was a mandatory condition for HCatalog intergration to work properly before the HAWQ-1130 fix.
Regards, Alex. On Mon, Jan 30, 2017 at 11:30 AM, Gagan Brahmi <[email protected]> wrote: > Appreciate that info Alex. Granting SELECT or SUPERUSER only viable > workaround for this problem for now. Is that a right understanding? > > > Regards, > Gagan Brahmi > > On Mon, Jan 30, 2017 at 12:07 PM, Alex (Oleksandr) Diachenko < > [email protected]> wrote: > > > Hi Gagan, > > > > The issue you described was a real limitation before > > https://issues.apache.org/jira/browse/HAWQ-1130 was reported. > > As for now the issue was resolved and targeted for next > 2.1.0.0-incubating > > open-source release. > > > > Regards, Alex. > > > > > > On Mon, Jan 30, 2017 at 10:08 AM, Gagan Brahmi <[email protected]> > > wrote: > > > >> Hi All, > >> > >> I am not sure if anyone has faced issue for a non-privileged HAWQ user > >> while access hive table using HCatalog. The issue is encountered when a > >> non-privileged user tries to query the hive table (hive_table) under any > >> database (default in this example) using hcatalog > >> (hcatalog.default.hive_table). > >> > >> However, when you describe the table (\d) there is no issue encountered. > >> > >> I have tested this on HDB 2.0.0 and HDB 2.0.1. > >> > >> For the non-privileged user the following is the behavior when trying to > >> access the data using SELECT: > >> > >> -------------------- > >> > >> postgres=> SELECT * FROM hcatalog.default.hive_table; > >> ERROR: permission denied for relation pg_authid > >> LINE 1: SELECT COUNT(*) FROM hcatalog.default.hive_table; > >> ^ > >> CONTEXT: SQL statement "SELECT max(oid) FROM (SELECT max(oid) AS oid > FROM > >> pg_extprotocol UNION ALL SELECT max(oid) AS oid FROM pg_partition UNION > >> ALL > >> SELECT max(oid) AS oid FROM pg_partition_rule UNION ALL SELECT max(oid) > AS > >> oid FROM pg_filespace UNION ALL SELECT max(oid) AS oid FROM > pg_compression > >> UNION ALL SELECT max(oid) AS oid FROM pg_filesystem UNION ALL SELECT > >> max(oid) AS oid FROM pg_foreign_data_wrapper UNION ALL SELECT max(oid) > AS > >> oid FROM pg_foreign_server UNION ALL SELECT max(oid) AS oid FROM > >> pg_database UNION ALL SELECT max(oid) AS oid FROM pg_type UNION ALL > SELECT > >> max(oid) AS oid FROM pg_proc UNION ALL SELECT max(oid) AS oid FROM > >> pg_class > >> UNION ALL SELECT max(oid) AS oid FROM pg_attrdef UNION ALL SELECT > max(oid) > >> AS oid FROM pg_constraint UNION ALL SELECT max(oid) AS oid FROM > >> pg_operator > >> UNION ALL SELECT max(oid) AS oid FROM pg_opclass UNION ALL SELECT > max(oid) > >> AS oid FROM pg_am UNION ALL SELECT max(oid) AS oid FROM pg_language > UNION > >> ALL SELECT max(oid) AS oid FROM pg_rewrite UNION ALL SELECT max(oid) AS > >> oid > >> FROM pg_trigger UNION ALL SELECT max(oid) AS oid FROM pg_cast UNION ALL > >> SELECT max(oid) AS oid FROM pg_namespace UNION ALL SELECT max(oid) AS > oid > >> FROM pg_conversion UNION ALL SELECT max(oid) AS oid FROM pg_tablespace > >> UNION ALL SELECT max(oid) AS oid FROM pg_resqueue UNION ALL SELECT > >> max(oid) > >> AS oid FROM pg_authid UNION ALL SELECT max(oid) AS oid FROM > >> pg_user_mapping) AS x" > >> > >> postgres=> SELECT * FROM hcatalog.default.hive_table; > >> ERROR: database does not have enough available Oids to support HCatalog > >> queries > >> LINE 1: SELECT * FROM hcatalog.default.hive_table; > >> ^ > >> HINT: Database VACUUM may recycle unused Oids. > >> > >> > >> postgres=> \d hcatalog.default.hive_table > >> > >> PXF Hive Table > >> "default.hive_table" > >> Column | Type > >> --------+------ > >> id | int4 > >> fname | text > >> lname | text > >> > >> -------------------- > >> > >> I was able to get around this problem by granting SELECT on pg_authid > and > >> pg_user_mapping table which fixes the underlying query to grab the max > >> Oid. > >> > >> Is this is a known issue or is there any better workaround for this > >> behavior? Or anything other than granting the user SUPERUSER privileges? > >> > >> > >> Regards, > >> Gagan Brahmi > >> > > > > >
