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]