Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-14687

Metastore API - Retrieving PrincipalPrivilegeSet Object using getPrivileges() method inside metastore Table class give Null value

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Not A Problem
    • 1.2.1
    • None
    • Authorization
    • RHEL 6

    Description

      During retrieving the privileges associated with table using Hive metastore api, it retrieves all other properties associated with table and gives null for privileges set .https://hive.apache.org/javadocs/r1.2.1/api/org/apache/hadoop/hive/metastore/api/Table.html

      Configuration Applied:

      Enable the SQL Authorization inside the Hive Server and user like hive,rootcare added inside admin role through hive configuration.

      Problem:

      Unable to retrieve the privileges for table using getPrivileges() method after connecting through HiveMetastoreClient api. getPrivileges methods return null whereas other properties of table are retrieved.

      Analysis:

      I created the table using Hive user after connecting to HiveServer2 usingJDBC. By Default, after creating the table the default
      privileges are assigned to the current user. It show all the privileges to table from hive prompt using sql.

      Tried to explore the API, found that Table class is generated by thrift and consist of thrift code. I found that privileges field inside the Table class is made optional. Also, found that, the privileges are stored inside the table TBL_PRIVS inside metastore database.

      Is there any specific configuration to be made to retrieve optional field ?

      Options Tried:

      1. Tried to print the isSetPrivilege() property, but it returns null.
      2. Tried to add user in admin role which is connecting to hive metastore. Still it gives the getPrivileges() as null.

      Sample Table Object Output:

      Table(tableName:sr4, dbName:hadoop_schema, owner:hive,
      createTime:1472192882, lastAccessTime:0, retention:0,
      sd:StorageDescriptor(cols:[FieldSchema(name:id, type:int, comment:null),
      FieldSchema(name:status, type:varchar(20), comment:null)], location:hdfs://
      loco1.fyre.com:8020/apps/hive/warehouse/hadoop_schema.db/sr4,
      inputFormat:org.apache.hadoop.mapred.TextInputFormat,
      outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat,
      compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null,
      serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe,
      parameters:

      {serialization.format=1}

      ), bucketCols:[], sortCols:[],
      parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[],
      skewedColValueLocationMaps:{}), storedAsSubDirectories:false),
      partitionKeys:[], parameters:

      {totalSize=17, sql.table.io.doAs=false, numRows=-1, rawDataSize=-1, COLUMN_STATS_ACCURATE=false, numFiles=2, transient_lastDdlTime=1472192963}

      , viewOriginalText:null,
      viewExpandedText:null, tableType:MANAGED_TABLE)

      Attachments

        Activity

          People

            Unassigned Unassigned
            rahuldhote Rahul Dhote
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: