Thank you so much for your reply .I already tried this custom/pluggable
authentication , i have implemented a PasswdAuthenticationProvider class
that validates the  given username and password while connecting to hive
from java program,but here the list of usernames and password I saved in
one property file  kind of file , when ever i want to connect to hive it
just checks that the given username & password  with the entries in that
property file, if entry is there then it will allow us to connect otherwise
throws an error. And if we want to add an user simply we can add an user in
that property file.But I don't want to use this property file or anything
,I just want to do it dynamically .Is there any way to do that ?Like we do
entries in LDAP. Please Let me know..

On Fri, Nov 28, 2014 at 10:49 PM, Peyman Mohajerian <mohaj...@gmail.com>
wrote:

> If you don't want to deal with LDAP, I know of one other way:
>
> <property>
>
>     <name>hive.server2.authentication</name>
>
>     <value>CUSTOM</value>
>
>   </property>
>
>   <property>
>
>     <name>hive.server2.custom.authentication.class</name>
>
>     <value>xxxx</value>
>
>   </property>
>
> You can implement: PasswdAuthenticationProvider and you put your
> implementation class in (xxx). I think these guy have some examples:
>
> from http://shiro.apache.org/
> <http://shiro.apache.org/download.html#latestBinary>
>
> But I haven't looked into it myself.
>
>
>
>
>
>
> On Fri, Nov 28, 2014 at 5:05 AM, prasad bezavada <prasadbezav...@gmail.com
> > wrote:
>
>> Hi ,
>>
>>
>>          I am writing a java program to connect with hive and query the
>> data from hive. From  my program i am connecting  to hive as follows
>>  private static String driverName =
>> "org.apache.hadoop.hive.jdbc.HiveDriver";
>> public static void main(String[] args) throws SQLException {
>>     try {
>>       Class.forName(driverName);
>>     } catch (ClassNotFoundException e) {
>>       // TODO Auto-generated catch block
>>       e.printStackTrace();
>>       System.exit(1);
>>     }
>>     Connection con = DriverManager.getConnection(
>> "jdbc:hive://localhost:10000/default", "hive", "any");
>>     Statement stmt = con.createStatement();
>>     ....
>>     My Problem is, the above connection is not taking the password ,i
>> mean with any username and password it is allowing me to connect and ge
>>     get the data from hive. But I want to  restrict this and want to
>> provide security so that
>>     only the  specified user would be able to connect and query hive.
>>     I tried :pluggable authentication and its working fine.
>>     But i want to do it dynamically.
>>  i don't want to use LDAP or Kerberos.
>>
>> is there any way to do that?
>>
>> and can we create users and roles in hive
>> ?if possible then how?
>> when i use the command create role role_name its giving error i.e
>> something like hive authorization incomplete or disabled
>>
>>
>>
>>
>>
>

Reply via email to