[
https://issues.apache.org/jira/browse/RANGER-3193?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
sneha_surjuse reassigned RANGER-3193:
-------------------------------------
Assignee: sneha_surjuse
> create view as select is denied if the view and select table are in different
> schemas
> -------------------------------------------------------------------------------------
>
> Key: RANGER-3193
> URL: https://issues.apache.org/jira/browse/RANGER-3193
> Project: Ranger
> Issue Type: Bug
> Components: plugins
> Affects Versions: 2.1.0
> Environment: Ranger 2.1.0, prestosql 350
> Reporter: Harish Kumar M
> Assignee: sneha_surjuse
> Priority: Blocker
> Time Spent: 10m
> Remaining Estimate: 0h
>
> create view as select is denied if the view and table are in different
> schema's(db's), though the identity has valid privilege to create view in
> view owned schema.
> For example :-
> CREATE VIEW db2.view1 AS SELECT col1,col2,col3 from db1.tbl1;
> In the above statement,
> Presto plugin validated two major permission on the Identity.
> 1. check on identity to create view under SCHEMA db2 is valid in the method
> checkCanCreateView
> 2. check the identity to select columns col1,col2,col3 on the table tbl1
> under schema db1 in the method checkCanCreateViewWithSelectFromColumns
> Whereas in Ranger Presto Plugin, In the method
> checkCanCreateViewWithSelectFromColumns check is done on the identity to
> create view on schema db1 instead of check on select columns from table.
> When i check the code RangerSystemAccessControl.java
> {code:java}
> /**
> * This check equals the check for checkCanCreateView
> */
> @Override
> public void checkCanCreateViewWithSelectFromColumns(SystemSecurityContext
> context, CatalogSchemaTableName table, Set<String> columns) {
> try {
> checkCanCreateView(context, table);
> } catch (AccessDeniedException ade) {
>
> LOG.debug("RangerSystemAccessControl.checkCanCreateViewWithSelectFromColumns("
> + table.getSchemaTableName().getTableName() + ") denied");
>
> AccessDeniedException.denyCreateViewWithSelect(table.getSchemaTableName().getTableName(),
> context.getIdentity());
> }
> }
> {code}
> Ranger checks the identity to create view on selected table schema.
> Due to this, In the below two scenarios identity is checked incorrectly.
> Scenario 1 :-
> Identity has the privilege to create view in view owned schema and identity
> doesn't have privilege to create view in table owned schema. In this
> scenario, identity will be denied for the create view since the create view
> check is on both view and table owned schema.
> Scenario 2 :-
> identity has the privilege to select and create view, but doesn't have
> privilege to select table. In this scenario, identity still can create view
> and select view though identity doesn't have privilege to select table.
> Please help to check this as this is latest Ranger versions.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)