From 46dfb65b6b7df2b8df7a2575c6a1379135c89ed5 Mon Sep 17 00:00:00 2001 From: zhangdong <493738387@qq.com> Date: Wed, 31 Jul 2024 22:34:35 +0800 Subject: [PATCH] [fix](auth)fix show routine load db is null (#38574) pick: https://github.com/apache/doris/pull/38365 --- .../doris/analysis/ShowRoutineLoadStmt.java | 4 +-- .../java/org/apache/doris/load/ExportMgr.java | 4 +-- .../doris/analysis/CancelExportStmtTest.java | 26 ------------------- 3 files changed, 4 insertions(+), 30 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java index 5fce5f3796..05ce8be6ad 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java +++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowRoutineLoadStmt.java @@ -125,8 +125,8 @@ public class ShowRoutineLoadStmt extends ShowStmt { } private void checkLabelName(Analyzer analyzer) throws AnalysisException { - String dbName = labelName == null ? null : labelName.getDbName(); - if (Strings.isNullOrEmpty(dbName)) { + dbFullName = labelName == null ? null : labelName.getDbName(); + if (Strings.isNullOrEmpty(dbFullName)) { dbFullName = analyzer.getContext().getDatabase(); if (Strings.isNullOrEmpty(dbFullName)) { ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR); diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java b/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java index 9a3e0d9948..7c2351fba5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java @@ -141,7 +141,7 @@ public class ExportMgr { public void checkCancelExportJobAuth(String ctlName, String dbName, List jobs) throws AnalysisException { if (jobs.size() > 1) { - if (Env.getCurrentEnv().getAccessManager() + if (!Env.getCurrentEnv().getAccessManager() .checkDbPriv(ConnectContext.get(), ctlName, dbName, PrivPredicate.SELECT)) { ErrorReport.reportAnalysisException(ErrorCode.ERR_DB_ACCESS_DENIED_ERROR, @@ -152,7 +152,7 @@ public class ExportMgr { if (tableName == null) { return; } - if (Env.getCurrentEnv().getAccessManager() + if (!Env.getCurrentEnv().getAccessManager() .checkTblPriv(ConnectContext.get(), ctlName, dbName, tableName.getTbl(), PrivPredicate.SELECT)) { diff --git a/fe/fe-core/src/test/java/org/apache/doris/analysis/CancelExportStmtTest.java b/fe/fe-core/src/test/java/org/apache/doris/analysis/CancelExportStmtTest.java index 0b4ecad12e..8808597ac3 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/analysis/CancelExportStmtTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/analysis/CancelExportStmtTest.java @@ -350,30 +350,4 @@ public class CancelExportStmtTest extends TestWithFeService { exportMgr.cancelExportJob(stmt); Assert.assertTrue(job8.getState() == ExportJobState.CANCELLED); } - - @Test - public void testCancelAuth() { - ExportMgr exportMgr = new ExportMgr(); - List jobs = Lists.newArrayList(); - ExportJob job1 = new ExportJob(); - job1.setTableName(new TableName("ctl1", "db1", "table1")); - jobs.add(job1); - try { - // should check table auth - exportMgr.checkCancelExportJobAuth("ctl1", "db1", jobs); - throw new RuntimeException("should exception"); - } catch (AnalysisException e) { - Assert.assertTrue(e.getMessage().contains("Admin_priv,Select_priv")); - Assert.assertTrue(e.getMessage().contains("table1")); - } - jobs.add(new ExportJob()); - try { - // should check db auth - exportMgr.checkCancelExportJobAuth("ctl1", "db1", jobs); - throw new RuntimeException("should exception"); - } catch (AnalysisException e) { - Assert.assertTrue(e.getMessage().contains("Admin_priv,Select_priv")); - Assert.assertTrue(e.getMessage().contains("db1")); - } - } }