diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java index 69ddcafaebed7c..896f7520683e86 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java @@ -128,7 +128,14 @@ public void run(ConnectContext ctx, StmtExecutor executor) throws Exception { LogicalPlanAdapter logicalPlanAdapter = new LogicalPlanAdapter(logicalQuery, ctx.getStatementContext()); updateSessionVariableForDelete(ctx.getSessionVariable()); NereidsPlanner planner = new NereidsPlanner(ctx.getStatementContext()); - planner.plan(logicalPlanAdapter, ctx.getSessionVariable().toThrift()); + boolean originalIsSkipAuth = ctx.isSkipAuth(); + // delete not need select priv + ctx.setSkipAuth(true); + try { + planner.plan(logicalPlanAdapter, ctx.getSessionVariable().toThrift()); + } finally { + ctx.setSkipAuth(originalIsSkipAuth); + } executor.setPlanner(planner); executor.checkBlockRules(); // if fe could do fold constant to get delete will do nothing for table, just return. diff --git a/regression-test/suites/auth_call/test_dml_delete_table_auth.groovy b/regression-test/suites/auth_call/test_dml_delete_table_auth.groovy index aec3ee4a9947e5..caac3568c2e263 100644 --- a/regression-test/suites/auth_call/test_dml_delete_table_auth.groovy +++ b/regression-test/suites/auth_call/test_dml_delete_table_auth.groovy @@ -64,15 +64,6 @@ suite("test_dml_delete_table_auth","p0,auth_call") { assertTrue(del_res.size() == 0) } sql """grant load_priv on ${dbName}.${tableName} to ${user}""" - connect(user, "${pwd}", context.config.jdbcUrl) { - test { - sql """DELETE FROM ${dbName}.${tableName} WHERE id = 3;""" - exception "denied" - } - def del_res = sql """show DELETE from ${dbName}""" - assertTrue(del_res.size() == 0) - } - sql """grant select_priv on ${dbName}.${tableName} to ${user}""" connect(user, "${pwd}", context.config.jdbcUrl) { sql """DELETE FROM ${dbName}.${tableName} WHERE id = 3;""" def del_res = sql """show DELETE from ${dbName}"""