This is an automated email from the ASF dual-hosted git repository. morningman pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
commit e6fedf3caec3391dd63e20d325ded8949ec73b0a 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 42368f40da..fdb3bd738d 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 @@ -4471,7 +4471,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]
