[ 
https://issues.apache.org/jira/browse/HBASE-9973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13825131#comment-13825131
 ] 

Matteo Bertozzi commented on HBASE-9973:
----------------------------------------

the compaction looks unnecessary to me, and not related to snapshot.. since 
there is no modification in place, a new file will be flushed.

patch looks good to me, I'll give it a try tomorrow, few minor fixes on the 
patch:
Replace the Put rowKey with AccessControlLists.ACL_GLOBAL_NAME
Move the if (r == null || r.size() == 0) that checks the result before the 
Delete
does the region.close() trigger a flush? (I guess..) add a note about it before 
the close call.


> [ACL]: Users with 'Admin' ACL permission will lose permissions after upgrade 
> to 0.96.x from 0.94.x or 0.92.x
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-9973
>                 URL: https://issues.apache.org/jira/browse/HBASE-9973
>             Project: HBase
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 0.96.0, 0.96.1
>            Reporter: Aleksandr Shulman
>            Assignee: Himanshu Vashishtha
>              Labels: acl
>             Fix For: 0.96.1
>
>         Attachments: 9973.patch
>
>
> In our testing, we have uncovered that the ACL permissions for users with the 
> 'A' credential do not hold after the upgrade to 0.96.x.
> This is because in the ACL table, the entry for the admin user is a 
> permission on the '_acl_' table with permission 'A'. However, because of the 
> namespace transition, there is no longer an '_acl_' table. Therefore, that 
> entry in the hbase:acl table is no longer valid.
> Example:
> {code}hbase(main):002:0> scan 'hbase:acl'
> ROW                   COLUMN+CELL                                             
>   
>  TestTable            column=l:hdfs, timestamp=1384454830701, value=RW        
>   
>  TestTable            column=l:root, timestamp=1384455875586, value=RWCA      
>   
>  _acl_                column=l:root, timestamp=1384454767568, value=C         
>   
>  _acl_                column=l:tableAdmin, timestamp=1384454788035, value=A   
>   
>  hbase:acl            column=l:root, timestamp=1384455875786, value=C         
>   
> {code}
> In this case, the following entry becomes meaningless:
> {code} _acl_                column=l:tableAdmin, timestamp=1384454788035, 
> value=A     {code}
> As a result, 
> Proposed fix:
> I see the fix being relatively straightforward. As part of the migration, 
> change any entries in the '_acl_' table with key '_acl_' into a new row with 
> key 'hbase:acl', all else being the same. And the old entry would be deleted.
> This can go into the standard migration script that we expect users to run.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to