Ruslan Dautkhanov created SENTRY-1967:
-----------------------------------------

             Summary: query to regenerate hdfs ACLs
                 Key: SENTRY-1967
                 URL: https://issues.apache.org/jira/browse/SENTRY-1967
             Project: Sentry
          Issue Type: Improvement
          Components: Docs
    Affects Versions: 1.8.0, 2.0.0
            Reporter: Ruslan Dautkhanov


A Confluence wiki page might be a better place for the below query? cc [~akolb]

We used below query to temporarily workaround broken Sentry HDFS plugin.
It generates set of {{hdfs dfs -setfacl -m group: ...}} commands that produce 
ACLs similar to what Sentry HDFS plugin generates.

{code:sql}
SELECT 'hdfs dfs -setfacl -m group:'||g.group_name||':'||
        CASE dp.action    
            WHEN 'all'    THEN 'rwx'
            WHEN '*'      THEN 'rwx'
            WHEN 'select' THEN 'r-x'
            WHEN 'insert' THEN '-wx'
        END
      ||' /hivewarehouse/'
      ||CASE dp.db_name
            WHEN 'default' THEN ''
            ELSE             dp.db_name||'.db'
        END
      ||'/'
      ||CASE dp.PRIVILEGE_SCOPE 
            WHEN 'DATABASE' THEN ''
            WHEN 'TABLE'    THEN dp.table_name || '/'
        END
      as hdfs_dfs_command
FROM SENTRY_DB_PRIVILEGE dp
   , SENTRY_ROLE_DB_PRIVILEGE_MAP m 
   , SENTRY_ROLE r
   , SENTRY_ROLE_GROUP_MAP rgm
   , SENTRY_GROUP g
WHERE DP.DB_PRIVILEGE_ID=M.DB_PRIVILEGE_ID
  AND M.ROLE_ID=R.ROLE_ID
  AND RGM.ROLE_ID=R.ROLE_ID 
  AND RGM.GROUP_ID=G.GROUP_ID
  AND DP.PRIVILEGE_SCOPE IN ('DATABASE', 'TABLE', 'COLUMN')
  AND DP.DB_NAME NOT LIKE 'file:%'
{code}

Hint: test output before you run.. but we actually had to run this in 
production (with Oracle backend but should work the same way with other sql 
dialects).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to