Harish Kumar M created RANGER-3193:
--------------------------------------
Summary: 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
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 crate 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.3.4#803005)