You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hive.apache.org by Shunichi Otsuka <so...@yahoo-corp.jp> on 2013/07/04 07:27:31 UTC

metastore security issue

I am trying to setup hive securely doing authorization at the metastore. However there is a problem.
I have relied on hive JIRA HIVE-3705 to decide the configuration which were set as below:

javax.jdo.option.ConnectionURL                    jdbc
javax.jdo.option.ConnectionDriverName             java.database.jdbc.mysql
javax.jdo.option.ConnectionUserName               hive
javax.jdo.option.ConnectionPassword               userpass
hive.metastore.execute.setugi                     true
hive.metastore.uris                               thrift://thriftserver.example.com:9083
hive.metastore.sasl.enabled                       true
hive.metastore.kerberos.keytab.file               /etc/grid-keytabs/hive.keytab
hive.metastore.kerberos.principal                 hive/thriftserver.example.com@example.com
hive.security.metastore.authorization.enabled     true
hive.security.metastore.authenticator.manager     org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
hive.security.metastore.authorization.manager     org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider
hive.security.authorization.enabled               false


However this does authorize an unauthorized user to drop a table or database from the metastore as below:

alice> create database db1 location '/user/alice/warehouse/db1.db';
[The permission of db1.db is drwx------ alice:users]
However,
bob> drop database db1;
OK

This should not happen, so why is it happening? Is my setting wrong or is it that the code has not covered this case?
If it is that it has not been implemented yet, what measures have you taken to avoid malicious users from dropping other users' database/tables?

Java version  is 1.6.0_33
hive version is 0.11

Thanks

RE: metastore security issue

Posted by Shunichi Otsuka <so...@yahoo-corp.jp>.
One setting was missing:
hive.metastore.authorization.storage.checks   true

This solves the problem



-----Original Message-----
From: Shunichi Otsuka [mailto:sotsuka@yahoo-corp.jp] 
Sent: Thursday, July 04, 2013 2:28 PM
To: user@hive.apache.org
Subject: metastore security issue

I am trying to setup hive securely doing authorization at the metastore. However there is a problem.
I have relied on hive JIRA HIVE-3705 to decide the configuration which were set as below:

javax.jdo.option.ConnectionURL                    jdbc
javax.jdo.option.ConnectionDriverName             java.database.jdbc.mysql
javax.jdo.option.ConnectionUserName               hive
javax.jdo.option.ConnectionPassword               userpass
hive.metastore.execute.setugi                     true
hive.metastore.uris                               thrift://thriftserver.example.com:9083
hive.metastore.sasl.enabled                       true
hive.metastore.kerberos.keytab.file               /etc/grid-keytabs/hive.keytab
hive.metastore.kerberos.principal                 hive/thriftserver.example.com@example.com
hive.security.metastore.authorization.enabled     true
hive.security.metastore.authenticator.manager     org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator
hive.security.metastore.authorization.manager     org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider
hive.security.authorization.enabled               false


However this does authorize an unauthorized user to drop a table or database from the metastore as below:

alice> create database db1 location '/user/alice/warehouse/db1.db';
[The permission of db1.db is drwx------ alice:users] However,
bob> drop database db1;
OK

This should not happen, so why is it happening? Is my setting wrong or is it that the code has not covered this case?
If it is that it has not been implemented yet, what measures have you taken to avoid malicious users from dropping other users' database/tables?

Java version  is 1.6.0_33
hive version is 0.11

Thanks