Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id D10ED200B73 for ; Mon, 29 Aug 2016 15:22:00 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id CF830160AB8; Mon, 29 Aug 2016 13:22:00 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 7D2A0160AA7 for ; Mon, 29 Aug 2016 15:21:59 +0200 (CEST) Received: (qmail 39048 invoked by uid 500); 29 Aug 2016 13:21:57 -0000 Mailing-List: contact user-help@hive.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@hive.apache.org Delivered-To: mailing list user@hive.apache.org Received: (qmail 39038 invoked by uid 99); 29 Aug 2016 13:21:57 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd3-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Aug 2016 13:21:57 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd3-us-west.apache.org (ASF Mail Server at spamd3-us-west.apache.org) with ESMTP id 78FBC18014C for ; Mon, 29 Aug 2016 13:21:57 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd3-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.182 X-Spam-Level: * X-Spam-Status: No, score=1.182 tagged_above=-999 required=6.31 tests=[DC_PNG_UNO_LARGO=0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=2, HTML_OBFUSCATE_05_10=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, WEIRD_PORT=0.001] autolearn=disabled Authentication-Results: spamd3-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx2-lw-us.apache.org ([10.40.0.8]) by localhost (spamd3-us-west.apache.org [10.40.0.10]) (amavisd-new, port 10024) with ESMTP id Cbw8Q-ZKquOQ for ; Mon, 29 Aug 2016 13:21:55 +0000 (UTC) Received: from mail-it0-f54.google.com (mail-it0-f54.google.com [209.85.214.54]) by mx2-lw-us.apache.org (ASF Mail Server at mx2-lw-us.apache.org) with ESMTPS id 1CCC55FAE0 for ; Mon, 29 Aug 2016 13:21:55 +0000 (UTC) Received: by mail-it0-f54.google.com with SMTP id g62so95881706ith.1 for ; Mon, 29 Aug 2016 06:21:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=9ObIjJJ8zTJcRwYKqiPnWSAaiHSe0KwQfCbAbGSlTo4=; b=NSmTH1wMoOTrSYV7bVik0Ly4A+zt18LdFRe8qNPjb3bg/wlHEM6gngnmJ/ffKFVTeb QVBSYY6OtcNagSq+nWNX6H1F/5sfcpUSc0Hyn3QnG4zjO02HwOqdsX0BFRBOf45UxEZE bdSFe0IBU6HEBcjDQmCAJAqRcTBfpfyuHAxTnZVw0L+Oh0ryRGpRjfPuSd7//yrIhURu 7X5RePboshWW3Jc0AAogju3kZEXuXMALgNxQ8ekG5IOtxfpE3xVL1Mgd7xNM0z/M5Ujj dypw60K807JHbVcqqOTr9/3XhdeW31MAEfCA5B45gnjR9RBVBgpHbBPYFX8oabjxWOz0 CP1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=9ObIjJJ8zTJcRwYKqiPnWSAaiHSe0KwQfCbAbGSlTo4=; b=f5sEsjZoBR33V7SmfqV7prKVNhfr4doHS/LGAXxb8GbNUPBmRvbdKQHYOV+bJhabLu K5o3BWWANnimPv1Dt+EpOrhgE4OugHvtr5TGZk6wGKnaX7wH+jcKY2FkTH5knbPCKrEP RkkBDcMk7EjcDaaAxrgcC/0MXsZO4tuZODxr0B6orQ//JHWKZ75YoDbaHc6J0kMHjDS/ O/V2pCJLanZsS9fx4xbo1tlerlSPqBZTU1EMzfdy3Ho+trGNQqAz9tU29zJMmbOJmxZ3 MWIavbqCsvS0Govvl00jGCUfvrUTpZ9gUdn96WhyYF8Y02s7j+yZvoAk5RGmYYS+F7Qq dNuw== X-Gm-Message-State: AE9vXwO5iVyMFypf/3Y3xvSqJGnrV1OlJeaITdquzoN4wZ5vpPsFFmhFQEAfspIeVveZxOiFfuKuaWenXGHo4A== X-Received: by 10.36.25.144 with SMTP id b138mr15097424itb.29.1472476914298; Mon, 29 Aug 2016 06:21:54 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.119.88 with HTTP; Mon, 29 Aug 2016 06:21:53 -0700 (PDT) From: rahul dhote Date: Mon, 29 Aug 2016 18:51:53 +0530 Message-ID: Subject: Retrieval of Privileges using getPrivileges() inside metastore Table class give Null value To: user@hive.apache.org Content-Type: multipart/related; boundary=001a114057966b7050053b35bf94 archived-at: Mon, 29 Aug 2016 13:22:01 -0000 --001a114057966b7050053b35bf94 Content-Type: multipart/alternative; boundary=001a114057966b704d053b35bf93 --001a114057966b704d053b35bf93 Content-Type: text/plain; charset=UTF-8 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 --001a114057966b704d053b35bf93 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Team,

<= div style=3D"font-size:12.8px">Trying to retrieve the privileges associated= with table using Hive metastore api. But after connection, it retrieves al= l other properties associated with table and gives null for privileges.

Configuration Applied:

=
Enable the SQL Authorization inside the Hive Server and user li= ke hive,root are added inside admin role through hive configuration.
<= div style=3D"font-size:12.8px">
Problem:

Unable to retrieve the privileges for t= able using getPrivileges() method after connecting through HiveMetastoreCli= ent api. getPrivileges
methods return null whereas other properties = of table are retrieved. [htt= ps://hive.apache.org/javadocs/r1.2.1/api/org/apache/hadoop/hive/m= etastore/api/Table.html]
Analysis:

I created th= e table using Hive user after connecting to HiveServer2 using JDBC. By Defa= ult, after creating the table the default=C2=A0
privileges are assigned to the current user. It show all the priv= ileges from hive prompt.

SNAPSHOT:1 [Privileges]


<= div style=3D"font-size:12.8px">=3D"Inline



Tried to explore the API, found that Table class is generated by thrift a= nd consist of thrift code. I found that privileges field inside the=C2=A0
Table class is made optional. Also, fou= nd that, the privileges are stored inside the table TBL_PRIVS inside metast= ore database.=C2=A0
Is there any speci= fic configuration to be made to retrieve optional field ?

Options Tri= ed:

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


=
Sample Table Object Output:

Table= (tableName:sr4, dbName:hadoop_schema, owner:hive, createTime:1472192882, la= stAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(na= me: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.apa= che.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.Hiv= eIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo= :SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.l= azy.LazySimpleSerDe, parameters:{serialization.format=3D1}), buck= etCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedCol= Names:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAs= SubDirectories:false), partitionKeys:[], parameters:{totalSize=3D17, sql.ta= ble.io.doAs=3Dfalse, numRows=3D-1, rawDataSize=3D-1, COLUMN_STATS_ACCURATE= =3Dfalse, numFiles=3D2, transient_lastDdlTime=3D1472192963}, viewOrigi= nalText:null, viewExpandedText:null, tableType:MANAGED_TABLE)

Need help= to retrieve privileges using getPrivileges() method.=C2=A0

Thank you,<= /div>

Regards,
Rahul Dhote=C2=A0

--001a114057966b704d053b35bf93-- --001a114057966b7050053b35bf94 Content-Type: image/png; name="default_grant_on_table.png" Content-Disposition: inline; filename="default_grant_on_table.png" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: ii_156c6133456714d1 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 RK5CYII= --001a114057966b7050053b35bf94--