This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 45f03ca4ab8 [fix](auth) show routine load db is null (#38365)
45f03ca4ab8 is described below

commit 45f03ca4ab8ae3ec51b0e24bdcd95bf00ca82285
Author: zhangdong <[email protected]>
AuthorDate: Tue Jul 30 17:42:19 2024 +0800

    [fix](auth) show routine load db is null (#38365)
    
    fix
    
    - when label contains dbName, will loss
    intro by #27861
    
    - show routine load for xxx.yyy can export authentication error
    intro by #33347
    
    Note: Cases will be added uniformly in other PRs
---
 .../apache/doris/analysis/ShowRoutineLoadStmt.java |  7 ++++--
 .../main/java/org/apache/doris/load/ExportMgr.java |  4 ++--
 .../doris/analysis/CancelExportStmtTest.java       | 26 ----------------------
 3 files changed, 7 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 73335d33020..05ce8be6ade 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,9 +125,12 @@ public class ShowRoutineLoadStmt extends ShowStmt {
     }
 
     private void checkLabelName(Analyzer analyzer) throws AnalysisException {
-        dbFullName = analyzer.getContext().getDatabase();
+        dbFullName = labelName == null ? null : labelName.getDbName();
         if (Strings.isNullOrEmpty(dbFullName)) {
-            ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
+            dbFullName = analyzer.getContext().getDatabase();
+            if (Strings.isNullOrEmpty(dbFullName)) {
+                ErrorReport.reportAnalysisException(ErrorCode.ERR_NO_DB_ERROR);
+            }
         }
         name = labelName == null ? null : labelName.getLabelName();
     }
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 6c02c75a698..bce0c5c4d9f 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
@@ -145,7 +145,7 @@ public class ExportMgr {
 
     public void checkCancelExportJobAuth(String ctlName, String dbName, 
List<ExportJob> 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,
@@ -156,7 +156,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 0b4ecad12e2..8808597ac3e 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<ExportJob> 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"));
-        }
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to