Hive Erstellen, Berechtigungen, w/ Security Aktiviert

Habe ich das setup von Kerberos security model für hive, aber ich bin kämpfen, um die Berechtigungen richtig. Jetzt können Benutzer erstellen und löschen einer Datenbank in Ordnung, aber nicht die Tabelle erstellen:

hive> show databases;
OK
cpenney
default
Time taken: 0.051 seconds, Fetched: 2 row(s)
hive> drop database cpenney;
OK
Time taken: 0.098 seconds
hive> create database cpenney;
OK
Time taken: 0.062 seconds
hive> create table test ( hostgroup STRING );
Authorization failed:No privilege 'Create' found for outputs { database:cpenney}. Use show grant to get more details.
hive> show grant user cpenney on database cpenney;
OK
Time taken: 0.016 seconds
hive> grant all on database cpenney to user cpenney;
OK
Time taken: 0.022 seconds
hive> show grant user cpenney on database cpenney;
OK

database        cpenney
principalName   cpenney
principalType   USER
privilege       All
grantTime       Thu Sep 05 11:07:59 EDT 2013
grantor [email protected]
Time taken: 0.02 seconds, Fetched: 7 row(s)
hive> create table test ( hostgroup STRING );
Authorization failed:No privilege 'Create' found for outputs { database:cpenney}. Use show grant to get more details.

Verwende ich die folgenden Einstellungen (einige beschnitten aus dieser paste):

<property>
  <name>hive.security.authorization.enabled</name>
  <value>true</value>
</property>

<property>
  <name>hive.security.authorization.createtable.owner.grants</name>
  <value>ALL</value>
</property>

<property>
  <name>hive.security.metastore.authorization.enabled</name>
  <value>true</value>
 </property>

<property>
  <name>hive.metastore.authorization.storage.checks</name>
  <value>true</value>
 </property>

<property>
  <name>hive.security.metastore.authorization.manager</name>
  <value>org.apache.hadoop.hive.ql.security.authorization.DefaultHiveMetastoreAuthorizationProvider</value>
 </property>

<property>
  <name>hive.security.metastore.authenticator.manager</name>
  <value>org.apache.hadoop.hive.ql.security.HadoopDefaultMetastoreAuthenticator</value>
</property>

Es scheint nicht, wie ein Bienenkorb.Sicherheit.die Autorisierung.createtable.Besitzer.gewährt Möglichkeit etwas zu tun. Wenn ich mir in /user/hive/warehouse wird die Datei dem gleichen Benutzer gehören, so dass als richtig erscheint.

Ich bin mit hadoop 1.1.1 und hive 0.11.

Dank!

InformationsquelleAutor Ojo | 2013-09-05

Schreibe einen Kommentar