From 8a575d0891b2060316a71a6eddbcf445a3210f54 Mon Sep 17 00:00:00 2001 From: Jibing-Li <64681310+Jibing-Li@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:36:50 +0800 Subject: [PATCH] [improvement](statistics)User admin instead of root to run stats sql. (#40867) (#40898) backport: https://github.com/apache/doris/pull/40867 --- .../org/apache/doris/common/util/InternalDatabaseUtil.java | 3 ++- .../java/org/apache/doris/statistics/util/StatisticsUtil.java | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/InternalDatabaseUtil.java b/fe/fe-core/src/main/java/org/apache/doris/common/util/InternalDatabaseUtil.java index f255b794cb..4b915a9171 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/common/util/InternalDatabaseUtil.java +++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/InternalDatabaseUtil.java @@ -30,7 +30,8 @@ public class InternalDatabaseUtil { if (!FeConstants.INTERNAL_DB_NAME.equals(dbName)) { return; } - if (ctx == null || ctx.getCurrentUserIdentity() == null || !ctx.getCurrentUserIdentity().isRootUser()) { + if (ctx == null || ctx.getCurrentUserIdentity() == null + || !ctx.getCurrentUserIdentity().isRootUser() && !ctx.getCurrentUserIdentity().isAdminUser()) { throw new AnalysisException("Not allowed to operate database: " + dbName); } } diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java index 0794b35659..dc1dba5d98 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java @@ -202,8 +202,8 @@ public class StatisticsUtil { sessionVariable.enableUniqueKeyPartialUpdate = false; connectContext.setEnv(Env.getCurrentEnv()); connectContext.setDatabase(FeConstants.INTERNAL_DB_NAME); - connectContext.setQualifiedUser(UserIdentity.ROOT.getQualifiedUser()); - connectContext.setCurrentUserIdentity(UserIdentity.ROOT); + connectContext.setQualifiedUser(UserIdentity.ADMIN.getQualifiedUser()); + connectContext.setCurrentUserIdentity(UserIdentity.ADMIN); connectContext.setStartTime(); return new AutoCloseConnectContext(connectContext); }