Madhan Neethiraj created RANGER-4810:
----------------------------------------

             Summary: Move Trino authorizer implementation from Ranger git repo 
to Trino repo
                 Key: RANGER-4810
                 URL: https://issues.apache.org/jira/browse/RANGER-4810
             Project: Ranger
          Issue Type: Improvement
          Components: plugins
            Reporter: Madhan Neethiraj
            Assignee: Madhan Neethiraj


Moving Trino authorizer implementation from Ranger git repo to Trino repo has 
several advantages, including:
 # Keeping the authorizer in sync with the updates in SystemAccessControl 
interface. For example, following changes in the latest Trino repo are not 
compatible with the Trino authorizer in Ranger repo:
 ## SystemAccessControl.checkCanAccessCatalog(): removed
 ## 
SystemAccessControl.getRowFilter(): replaced with getRowFilters()
 ## 
 SystemAccessControl.getColumnMasks(): replaced with getColumnMask()
 ## 
SystemAccessControl.checkCanSetSystemSessionProperty(): removed
 ## 
SystemAccessControl.checkCanImpersonateUser(): signature changed
 ## 
SystemAccessControl.checkCanAccessCatalog(): removed
 ## SystemAccessControl.checkCanCreateSchema(): signature changed
 ## 
SystemAccessControl.checkCanExecuteQuery(): removed
 ## 
SystemAccessControl.checkCanViewQueryOwnedBy(): removed
 ## 
SystemAccessControl.filterViewQueryOwnedBy(): signature changed
 ## 
SystemAccessControl.checkCanKillQueryOwnedBy(): removed
 ## 
SystemAccessControl.checkCanGrantExecuteFunctionPrivilege(): removed/replaced
 ## 
SystemAccessControl.checkCanExecuteFunction(): signature changed
 ## 
ViewExpression(): constructor changed
 ## 
AccessDeniedException.denyGrantExecuteFunctionPrivilege(): removed
 # Trino requires more recent JDK versions (currently JDK 22) than Ranger repo 
(which still supports JDK 8). Trino authorizer is built separately, as a second 
phase, in Ranger repo using higher JDK versions. Moving the authorizer to Trino 
repo will avoid this additional step.

 

Trino seems to have a class loader isolation in place for its plugins, which 
can eliminate the need for the shim layer used in Ranger plugin. This needs to 
be considered along with this move.

Though the authorizer implementation would move to Trino repp, Ranger repo will 
continue to have modules used in Ranger admin server for resource look up and 
default policy creation (class RangerServiceTrino).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to