Hi Team,

Trying to retrieve the privileges associated with table using Hive
metastore api. But after connection, it retrieves all other properties
associated with table and gives null for privileges.

Configuration Applied:

Enable the SQL Authorization inside the Hive Server and user like hive,root
are 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. [
https://hive.apache.org/javadocs/r1.2.1/api/org/apache/hado
op/hive/metastore/api/Table.html]
Analysis:

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

SNAPSHOT:1 [Privileges]



*[image: Inline image 1]*



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)

Need help to retrieve privileges using getPrivileges() method.

Thank you,

Regards,
Rahul Dhote

Reply via email to