HanCheol Cho created SENTRY-859:
-----------------------------------

             Summary: Revoking privileges on a DB removes HDFS ACLs on its 
table files even if there is a role for one of its tables.
                 Key: SENTRY-859
                 URL: https://issues.apache.org/jira/browse/SENTRY-859
             Project: Sentry
          Issue Type: Bug
          Components: Hdfs Plugin
    Affects Versions: 1.4.0
         Environment: CDH 5.4.3
            Reporter: HanCheol Cho
            Priority: Minor


This may not be a common use-case, but I think that grant/revoke in Hive and 
HDFS ACLs should be synchronized in this case too.

Assume that you have a DB named test_db with a table customer.
First, create a role db1 with all privileges on test_db and grant it to
the group named user1.
Second, create a role tbl1 with all privileges on the table test_db.customer
and grant it to user1.
Then, revoke db1 role from user1.

As a result, the group user1 still has the role tbl1, but the the table 
directory does not have the ACL entry for the group user1.



You can reproduce this problem as fllows:

// grant all privileges on the database test_db to a user       
 create role db1;       
 grant all on database test_db to role db1;     
 grant role db1 to group `user1`;       
        
 hdfs dfs -getfacl /user/hive/warehouse/test_db.db
        # file: /user/hive/warehouse/test_db.db
        # owner: hive
        # group: hive
        user::rwx
        group::---
        group:user1:rwx
        user:hive:rwx
        group:hive:rwx
        mask::rwx
        other::---
        
// grant all privileges on a specific table of the db to the user       
 create role tbl1;      
 grant all on table test_db.customer to role tbl1;      
 grant role tbl1 to group `user1`;      
        
hdfs dfs -getfacl /user/hive/warehouse/test_db.db       
        # file: /user/hive/warehouse/test_db.db
        # owner: hive
        # group: hive
        user::rwx
        group::---
        group:user1:rwx
        user:hive:rwx
        group:hive:rwx
        mask::rwx
        other::---
        
// revoke the db grant  
revoke role db1 from group `user1`;     
        
// table grant still exists     
show role grant group `user1`;  
        +---------+---------------+-------------+----------+--+
        |  role   | grant_option  | grant_time  | grantor  |
        +---------+---------------+-------------+----------+--+
        | tbl1    | false         | NULL        | --       |
        +---------+---------------+-------------+----------+--+
        
// but hdfs acl on the table, customer, does not exist anymore  
hdfs dfs -getfacl /user/hive/warehouse/test_db.db/customer      
        # file: /user/hive/warehouse/test_db.db/customer
        # owner: hive
        # group: hive
        user::rwx
        group::---
        user:hive:rwx
        group:hive:rwx
        mask::rwx
        other::---




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to