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

morningman 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 4fc0715156 [fix](auth)fix external catalog cannot use db (#16269)
4fc0715156 is described below

commit 4fc0715156b53139ea740550a22fc54adc08cfb6
Author: zhangdong <[email protected]>
AuthorDate: Fri Feb 3 10:10:33 2023 +0800

    [fix](auth)fix external catalog cannot use db (#16269)
---
 fe/fe-core/src/main/java/org/apache/doris/analysis/UseStmt.java       | 4 +++-
 fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java            | 2 +-
 .../src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java    | 4 ++++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/UseStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/UseStmt.java
index be516b36f4..bb149ea15e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UseStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UseStmt.java
@@ -78,7 +78,9 @@ public class UseStmt extends StatementBase {
         }
         database = ClusterNamespace.getFullName(getClusterName(), database);
 
-        if (!Env.getCurrentEnv().getAuth().checkDbPriv(ConnectContext.get(), 
database, PrivPredicate.SHOW)) {
+        if (!Env.getCurrentEnv().getAuth()
+                .checkDbPriv(ConnectContext.get(), 
ConnectContext.get().getDefaultCatalog(), database,
+                        PrivPredicate.SHOW)) {
             
ErrorReport.reportAnalysisException(ErrorCode.ERR_DBACCESS_DENIED_ERROR,
                     analyzer.getQualifiedUser(), database);
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index 7446ca6bae..34f0dafdd2 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -4392,7 +4392,7 @@ public class Env {
 
     // Change current database of this session.
     public void changeDb(ConnectContext ctx, String qualifiedDb) throws 
DdlException {
-        if (!auth.checkDbPriv(ctx, qualifiedDb, PrivPredicate.SHOW)) {
+        if (!auth.checkDbPriv(ctx, ctx.getDefaultCatalog(), qualifiedDb, 
PrivPredicate.SHOW)) {
             
ErrorReport.reportDdlException(ErrorCode.ERR_DBACCESS_DENIED_ERROR, 
ctx.getQualifiedUser(), qualifiedDb);
         }
 
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java 
b/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java
index 06bcd91038..a621321f63 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java
@@ -36,6 +36,10 @@ public class MockedAuth {
                 minTimes = 0;
                 result = true;
 
+                auth.checkDbPriv((ConnectContext) any, anyString, anyString, 
(PrivPredicate) any);
+                minTimes = 0;
+                result = true;
+
                 auth.checkTblPriv((ConnectContext) any, anyString, anyString, 
(PrivPredicate) any);
                 minTimes = 0;
                 result = true;


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

Reply via email to