Skip to content

Commit 4fc0715

Browse files
authored
[fix](auth)fix external catalog cannot use db (#16269)
1 parent 545b91f commit 4fc0715

3 files changed

Lines changed: 8 additions & 2 deletions

File tree

fe/fe-core/src/main/java/org/apache/doris/analysis/UseStmt.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ public void analyze(Analyzer analyzer) throws AnalysisException, UserException {
7878
}
7979
database = ClusterNamespace.getFullName(getClusterName(), database);
8080

81-
if (!Env.getCurrentEnv().getAuth().checkDbPriv(ConnectContext.get(), database, PrivPredicate.SHOW)) {
81+
if (!Env.getCurrentEnv().getAuth()
82+
.checkDbPriv(ConnectContext.get(), ConnectContext.get().getDefaultCatalog(), database,
83+
PrivPredicate.SHOW)) {
8284
ErrorReport.reportAnalysisException(ErrorCode.ERR_DBACCESS_DENIED_ERROR,
8385
analyzer.getQualifiedUser(), database);
8486
}

fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4392,7 +4392,7 @@ public void changeCatalog(ConnectContext ctx, String catalogName) throws DdlExce
43924392

43934393
// Change current database of this session.
43944394
public void changeDb(ConnectContext ctx, String qualifiedDb) throws DdlException {
4395-
if (!auth.checkDbPriv(ctx, qualifiedDb, PrivPredicate.SHOW)) {
4395+
if (!auth.checkDbPriv(ctx, ctx.getDefaultCatalog(), qualifiedDb, PrivPredicate.SHOW)) {
43964396
ErrorReport.reportDdlException(ErrorCode.ERR_DBACCESS_DENIED_ERROR, ctx.getQualifiedUser(), qualifiedDb);
43974397
}
43984398

fe/fe-core/src/test/java/org/apache/doris/mysql/privilege/MockedAuth.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public static void mockedAuth(PaloAuth auth) {
3636
minTimes = 0;
3737
result = true;
3838

39+
auth.checkDbPriv((ConnectContext) any, anyString, anyString, (PrivPredicate) any);
40+
minTimes = 0;
41+
result = true;
42+
3943
auth.checkTblPriv((ConnectContext) any, anyString, anyString, (PrivPredicate) any);
4044
minTimes = 0;
4145
result = true;

0 commit comments

Comments
 (0)