One related concern with not using hdfs permissions is that there can be 
conflicts between what the hive authorization realm would permit versus what 
hdfs would permit.

For instance a user X (in the hive authorization realm) has create table 
privilege for database db1 but the hdfs directory /user/hive/warehouse/db1 is 
actually not writable by user X - wouldn't this lead to a dfs permissions 
denied error though user X has the create privilege per hive? We can extend the 
same issue to other operations like drop table etc. 

Keep the two worlds in sync so that what is allowed/disallowed in one is the 
same in the other might be difficult - thoughts?

-----Original Message-----
From: John Sichi [mailto:jsi...@facebook.com] 
Sent: Wednesday, October 13, 2010 4:36 PM
To: <dev@hive.apache.org>
Cc: howl...@yahoogroups.com; Pradeep Kamath; <hive-...@hadoop.apache.org>
Subject: Re: [howldev] RE: Howl Authorization proposal

On Oct 13, 2010, at 9:22 AM, Alan Gates wrote:

> Our biggest concern is that HDFS already has a permissions model, why create 
> a whole new one?  It is a lot of duplication.  And that duplication will flow 
> through to things like logging and auditing, all of which Hive/Howl will now 
> need in addition to HDFS.  To justify this we needed to understand what 
> additional benefits a traditional ACL model would get us.  We were not able 
> to come up with compelling use cases where we had to have this traditional 
> model.

Here are some you probably already considered, but I'm listing them for 
consideration anyway...

* table A can only be queried by roles X and Y; table B can only be queried by 
roles Y and Z; managing different groups for all the possible role combinations 
isn't very practical given large numbers of tables and roles
 
* finer-grained access control (e.g. column-level) may not be expressible in 
terms of HDFS permissions without doing things like creating dummy files 
(although in SQL, views can be used to avoid column-level permissions)

* privileges beyond read/write (e.g. delete vs update vs append)

* (Hive-specific):  GRANT/REVOKE is the standard SQL approach and requires 
ACL's (it can't be implemented in terms of HDFS permissions)

> All that said, I see no problem with having two models for now, and seeing 
> which turns out to better provide what users need and/or be easier to 
> maintain.


OK, let us know if the hooks turn out to be insufficient as the implementation 
mechanism.

JVS

Reply via email to