[improvement](statistics)User admin instead of root to run stats sql. (#40867) (#40898)

backport: https://github.com/apache/doris/pull/40867
This commit is contained in:
Jibing-Li
2024-09-18 13:36:50 +08:00
committed by GitHub
parent c176c9feb0
commit 8a575d0891
2 changed files with 4 additions and 3 deletions

View File

@ -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);
}
}

View File

@ -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);
}