Ramesh Mani created RANGER-3464:
-----------------------------------

             Summary: Handle if exist and if not exist clause commands 
authorization correctly in Ranger Hive authorizer.
                 Key: RANGER-3464
                 URL: https://issues.apache.org/jira/browse/RANGER-3464
             Project: Ranger
          Issue Type: Bug
          Components: Ranger
    Affects Versions: 3.0.0, 2.2.0
            Reporter: Ramesh Mani
            Assignee: Ramesh Mani
             Fix For: 3.0.0, 2.2.0


Certain command like CREATE VIEW / CREATE TABLE / CREATE MATERIALISED VIEW/ 
CREATE FUNCTION / DROP VIEW / DROP MATERIALISED VIEW / DROP DATABASE /  
ALTERVIEW AS have IF EXISTS or IF NOT EXISTS clause and if those commands are 
run again if table is present or not present depending on the command which is 
run result in Authorization failure. This is because hive doesn't send the 
input/output objects for those commands when same command is run and if the 
objects are not present.

E.g Following sequence of operation will result in authorization failure.
create table a(id int);
insert into a values(1);
create materialized view if not exists av as select * from a;
create materialized view if not exists av as select * from a;
drop materialized view if exists av;
drop materialized view if exists av; # Error: Error while compiling statement: 
FAILED: HiveAccessControlException Unable to authorize command: [drop 
materialized view if exists av] , HivePrivilegeObjects are not available to 
authorize this command! (state=42000,code=40000)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to