You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2026/03/13 06:37:59 UTC

(doris) branch master updated: [cleanup](fe) Remove legacy ClusterNamespace class (#61256)

This is an automated email from the ASF dual-hosted git repository.

morrysnow 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 a14befcffbe [cleanup](fe) Remove legacy ClusterNamespace class (#61256)
a14befcffbe is described below

commit a14befcffbe680f950c1885cddb15eb8e62f21a2
Author: morrySnow <zh...@selectdb.com>
AuthorDate: Fri Mar 13 14:37:50 2026 +0800

    [cleanup](fe) Remove legacy ClusterNamespace class (#61256)
    
    ## Background
    
    `ClusterNamespace` is a legacy artifact from the multi-tenancy era. In
    earlier versions, Apache Doris implemented multi-tenancy by prefixing
    database names with a cluster name using `:` as a separator. This
    functionality has since been completely removed, but the
    `ClusterNamespace` class and related legacy code remained.
    
    ## Changes
    
    - Remove all `ClusterNamespace.getNameFromFullName()` calls (~122 call
    sites), replacing each with its original argument
    - Remove all `import org.apache.doris.cluster.ClusterNamespace`
    statements
    - Delete `ClusterNamespace.java`
    - Clean up dead code left behind (no-op self-assignments, stale comments
    like "should be removed in 3.0", empty `removeClusterPrefix()` methods)
    - Fix import ordering to satisfy checkstyle
    
    Co-authored-by: Copilot <22...@users.noreply.github.com>
---
 .../org/apache/doris/analysis/DataDescription.java |  3 +-
 .../org/apache/doris/analysis/TablePattern.java    |  8 ---
 .../org/apache/doris/analysis/UserIdentity.java    |  9 +---
 .../org/apache/doris/backup/BackupHandler.java     |  3 +-
 .../java/org/apache/doris/catalog/Database.java    |  4 +-
 .../java/org/apache/doris/catalog/TableIf.java     |  5 +-
 .../ranger/doris/RangerDorisAccessController.java  | 17 +++----
 .../ranger/hive/RangerHiveAccessController.java    | 15 +++---
 .../apache/doris/cloud/CacheHotspotManager.java    |  2 +-
 .../cloud/datasource/CloudInternalCatalog.java     |  4 +-
 .../org/apache/doris/cluster/ClusterNamespace.java | 59 ----------------------
 .../org/apache/doris/datasource/CatalogMgr.java    |  5 +-
 .../apache/doris/datasource/ExternalCatalog.java   | 16 +++---
 .../doris/datasource/ExternalMetaCacheMgr.java     |  6 +--
 .../apache/doris/datasource/InternalCatalog.java   |  5 +-
 .../doris/datasource/hive/HMSExternalCatalog.java  |  7 ++-
 .../doris/httpv2/controller/BaseController.java    |  7 +--
 .../apache/doris/httpv2/rest/CancelLoadAction.java |  2 +-
 .../apache/doris/httpv2/rest/CopyIntoAction.java   |  4 +-
 .../apache/doris/httpv2/rest/GetDdlStmtAction.java |  2 +-
 .../doris/httpv2/rest/GetStreamLoadState.java      |  2 +-
 .../org/apache/doris/httpv2/rest/LoadAction.java   |  7 +--
 .../apache/doris/httpv2/rest/MetaInfoAction.java   | 13 ++---
 .../doris/httpv2/rest/RestBaseController.java      |  8 +--
 .../apache/doris/httpv2/rest/RowCountAction.java   |  3 +-
 .../org/apache/doris/httpv2/rest/ShowAction.java   | 19 +++----
 .../doris/httpv2/rest/StmtExecutionAction.java     |  7 ++-
 .../doris/httpv2/rest/StorageTypeCheckAction.java  |  3 +-
 .../doris/httpv2/rest/TableQueryPlanAction.java    | 12 ++---
 .../doris/httpv2/rest/TableRowCountAction.java     |  5 +-
 .../doris/httpv2/rest/TableSchemaAction.java       | 13 ++---
 .../org/apache/doris/httpv2/rest/UploadAction.java | 12 ++---
 .../doris/httpv2/restv2/MetaInfoActionV2.java      | 13 ++---
 .../apache/doris/httpv2/util/LoadSubmitter.java    |  3 +-
 .../org/apache/doris/load/StreamLoadHandler.java   |  3 +-
 .../apache/doris/load/loadv2/MysqlLoadManager.java |  5 +-
 .../mysql/authenticate/ldap/LdapAuthenticator.java |  3 +-
 .../doris/mysql/authenticate/ldap/LdapManager.java |  5 +-
 .../org/apache/doris/mysql/privilege/Auth.java     | 15 +++---
 .../doris/mysql/privilege/ColPrivilegeKey.java     |  8 ++-
 .../apache/doris/mysql/privilege/DbPrivEntry.java  |  3 +-
 .../org/apache/doris/mysql/privilege/Role.java     | 13 -----
 .../apache/doris/mysql/privilege/RoleManager.java  | 23 ++-------
 .../apache/doris/mysql/privilege/UserManager.java  | 24 +--------
 .../doris/mysql/privilege/UserPropertyInfo.java    |  9 +---
 .../doris/mysql/privilege/UserPropertyMgr.java     |  3 +-
 .../doris/mysql/privilege/UserRoleManager.java     | 16 +-----
 .../doris/nereids/load/NereidsDataDescription.java |  3 +-
 .../nereids/rules/analysis/UserAuthentication.java |  3 +-
 .../exploration/mv/MaterializationContext.java     |  9 ++--
 .../expression/rules/FoldConstantRuleOnFE.java     |  3 +-
 .../plans/commands/CleanQueryStatsCommand.java     |  3 +-
 .../trees/plans/commands/ShowClustersCommand.java  |  3 +-
 .../plans/commands/ShowCreateDatabaseCommand.java  |  7 ++-
 .../trees/plans/commands/ShowDatabasesCommand.java |  3 +-
 .../plans/commands/ShowPartitionsCommand.java      |  7 ++-
 .../trees/plans/commands/ShowTableCommand.java     |  5 +-
 .../trees/plans/commands/info/AlterUserInfo.java   |  3 +-
 .../trees/plans/commands/info/CopyIntoInfo.java    |  3 +-
 .../trees/plans/commands/info/CreateUserInfo.java  |  6 +--
 .../plans/commands/load/MysqlDataDescription.java  |  3 +-
 .../doris/persist/AlterDatabasePropertyInfo.java   |  9 +---
 .../org/apache/doris/persist/CreateTableInfo.java  |  9 +---
 .../org/apache/doris/persist/DatabaseInfo.java     | 14 +----
 .../java/org/apache/doris/persist/DropDbInfo.java  |  9 +---
 .../java/org/apache/doris/persist/PrivInfo.java    | 23 +--------
 .../java/org/apache/doris/persist/RecoverInfo.java |  9 +---
 .../java/org/apache/doris/policy/PolicyMgr.java    |  3 +-
 .../java/org/apache/doris/qe/AuditLogHelper.java   |  5 +-
 .../java/org/apache/doris/qe/ConnectContext.java   |  5 +-
 .../apache/doris/service/FrontendServiceImpl.java  | 15 +++---
 .../rules/analysis/NormalizeAggregateTest.java     |  2 +-
 .../rules/analysis/UserAuthenticationTest.java     | 48 ------------------
 .../DecomposeRepeatWithPreAggregationTest.java     |  2 +-
 .../rules/rewrite/EliminateGroupByTest.java        |  2 +-
 .../rules/rewrite/EliminateJoinByFkTest.java       |  2 +-
 .../rules/rewrite/EliminateJoinByUniqueTest.java   |  2 +-
 .../rules/rewrite/MergePercentileToArrayTest.java  |  2 +-
 .../nereids/rules/rewrite/OrExpansionTest.java     |  2 +-
 .../rules/rewrite/PullUpJoinFromUnionTest.java     |  2 +-
 .../rewrite/PushDownAggThroughJoinOnPkFkTest.java  |  2 +-
 .../eageraggregation/EagerAggRewriterTest.java     |  2 +-
 .../bindExpression/bind_dbname_ignore_cluster.out  |  4 --
 .../bind_dbname_ignore_cluster.groovy              | 41 ---------------
 84 files changed, 161 insertions(+), 547 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java
index 08b8141e443..ace1bc5f2be 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DataDescription.java
@@ -24,7 +24,6 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.FunctionSet;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.info.PartitionNamesInfo;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
@@ -753,7 +752,7 @@ public class DataDescription {
             sb.append(" NEGATIVE");
         }
         sb.append(" INTO TABLE ");
-        sb.append(isMysqlLoad ? ClusterNamespace.getNameFromFullName(dbName) + "." + tableName : tableName);
+        sb.append(isMysqlLoad ? dbName + "." + tableName : tableName);
         if (partitionNamesInfo != null) {
             sb.append(" ");
             sb.append(partitionNamesInfo.toSql());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/TablePattern.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/TablePattern.java
index a6e4b688785..d222c200d54 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/TablePattern.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/TablePattern.java
@@ -17,7 +17,6 @@
 
 package org.apache.doris.analysis;
 
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
@@ -119,12 +118,6 @@ public class TablePattern implements Writable, GsonPostProcessable {
         analyze(ctl);
     }
 
-    private void removeClusterPrefix() {
-        if (db != null) {
-            db = ClusterNamespace.getNameFromFullName(db);
-        }
-    }
-
     @Override
     public boolean equals(Object obj) {
         if (!(obj instanceof TablePattern)) {
@@ -155,7 +148,6 @@ public class TablePattern implements Writable, GsonPostProcessable {
 
     @Override
     public void gsonPostProcess() throws IOException {
-        removeClusterPrefix();
         isAnalyzed = true;
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/UserIdentity.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/UserIdentity.java
index 54b59778321..2c2ce9ba07c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/UserIdentity.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/UserIdentity.java
@@ -17,7 +17,6 @@
 
 package org.apache.doris.analysis;
 
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.FeNameFormat;
@@ -284,7 +283,7 @@ public class UserIdentity implements Writable, GsonPostProcessable {
     // return default_role_rbac_username@host or default_role_rbac_username@[domain]
     public String toDefaultRoleName() {
         StringBuilder sb = new StringBuilder(
-                RoleManager.DEFAULT_ROLE_PREFIX + ClusterNamespace.getNameFromFullName(user) + "@");
+                RoleManager.DEFAULT_ROLE_PREFIX + user + "@");
         if (isDomain) {
             sb.append("[");
         }
@@ -295,11 +294,6 @@ public class UserIdentity implements Writable, GsonPostProcessable {
         return sb.toString();
     }
 
-    // should be remove after version 3.0
-    public void removeClusterPrefix() {
-        user = ClusterNamespace.getNameFromFullName(user);
-    }
-
     public static UserIdentity read(DataInput in) throws IOException {
         String json = Text.readString(in);
         UserIdentity userIdentity = GsonUtils.GSON.fromJson(json, UserIdentity.class);
@@ -354,6 +348,5 @@ public class UserIdentity implements Writable, GsonPostProcessable {
     @Override
     public void gsonPostProcess() throws IOException {
         isAnalyzed = true;
-        removeClusterPrefix();
     }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
index f02c7e6e21f..1ae0e75ac10 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
@@ -29,7 +29,6 @@ import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf.TableType;
 import org.apache.doris.catalog.info.PartitionNamesInfo;
 import org.apache.doris.cloud.backup.CloudRestoreJob;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.ErrorCode;
@@ -566,7 +565,7 @@ public class BackupHandler extends MasterDaemon implements Writable {
 
         // Create a backup job
         BackupJob backupJob = new BackupJob(command.getLabel(), db.getId(),
-                ClusterNamespace.getNameFromFullName(db.getFullName()),
+                db.getFullName(),
                 tableRefInfoList, command.getTimeoutMs(), command.getContent(), env, repoId, commitSeq);
         // write log
         env.getEditLog().logBackupJob(backupJob);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java
index 5d5d98ad8c6..12cdba88935 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Database.java
@@ -19,7 +19,6 @@ package org.apache.doris.catalog;
 
 import org.apache.doris.catalog.TableIf.TableType;
 import org.apache.doris.cloud.catalog.CloudEnv;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
@@ -246,8 +245,7 @@ public class Database extends MetaObject implements Writable, DatabaseIf<Table>,
     }
 
     public void setNameWithoutLock(String newName) {
-        // ClusterNamespace.getNameFromFullName should be removed in 3.0
-        this.fullQualifiedName = ClusterNamespace.getNameFromFullName(newName);
+        this.fullQualifiedName = newName;
         for (Table table : idToTable.values()) {
             table.setQualifiedDbName(fullQualifiedName);
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java
index 5af24ed4979..e412e43f815 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableIf.java
@@ -18,7 +18,6 @@
 package org.apache.doris.catalog;
 
 import org.apache.doris.alter.AlterCancelException;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.MetaNotFoundException;
 import org.apache.doris.common.Pair;
@@ -313,7 +312,7 @@ public interface TableIf {
 
     default List<String> getFullQualifiers() {
         return ImmutableList.of(getDatabase().getCatalog().getName(),
-                ClusterNamespace.getNameFromFullName(getDatabase().getFullName()),
+                getDatabase().getFullName(),
                 getName());
     }
 
@@ -324,7 +323,7 @@ public interface TableIf {
             return "null.null." + getName();
         } else {
             return db.getCatalog().getName()
-                    + "." + ClusterNamespace.getNameFromFullName(db.getFullName())
+                    + "." + db.getFullName()
                     + "." + getName();
         }
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/doris/RangerDorisAccessController.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/doris/RangerDorisAccessController.java
index 9ed9daa08f8..02420d2341c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/doris/RangerDorisAccessController.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/doris/RangerDorisAccessController.java
@@ -20,7 +20,6 @@ package org.apache.doris.catalog.authorizer.ranger.doris;
 import org.apache.doris.analysis.ResourceTypeEnum;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.authorizer.ranger.RangerAccessController;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AuthorizationException;
 import org.apache.doris.mysql.privilege.PrivBitSet;
 import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -76,7 +75,7 @@ public class RangerDorisAccessController extends RangerAccessController {
     @Override
     protected RangerAccessRequestImpl createRequest(UserIdentity currentUser) {
         RangerAccessRequestImpl request = new RangerAccessRequestImpl();
-        request.setUser(ClusterNamespace.getNameFromFullName(currentUser.getQualifiedUser()));
+        request.setUser(currentUser.getQualifiedUser());
         request.setClientIPAddress(currentUser.getHost());
         request.setClusterType(CLIENT_TYPE_DORIS);
         request.setClientType(CLIENT_TYPE_DORIS);
@@ -176,13 +175,13 @@ public class RangerDorisAccessController extends RangerAccessController {
     private boolean checkDbPrivInternal(UserIdentity currentUser, String ctl, String db, PrivPredicate wanted,
             PrivBitSet checkedPrivs) {
         RangerDorisResource resource = new RangerDorisResource(DorisObjectType.DATABASE, ctl,
-                ClusterNamespace.getNameFromFullName(db));
+                db);
         return checkPrivilege(currentUser, wanted, resource, checkedPrivs);
     }
 
     private boolean checkAnyPrivWithinDb(UserIdentity currentUser, String ctl, String db) {
         RangerDorisResource resource = new RangerDorisResource(DorisObjectType.DATABASE, ctl,
-                ClusterNamespace.getNameFromFullName(db));
+                db);
         return checkShowPrivilegeByPlugin(currentUser, resource);
     }
 
@@ -204,13 +203,13 @@ public class RangerDorisAccessController extends RangerAccessController {
     private boolean checkTblPrivInternal(UserIdentity currentUser, String ctl, String db, String tbl,
             PrivPredicate wanted, PrivBitSet checkedPrivs) {
         RangerDorisResource resource = new RangerDorisResource(DorisObjectType.TABLE,
-                ctl, ClusterNamespace.getNameFromFullName(db), tbl);
+                ctl, db, tbl);
         return checkPrivilege(currentUser, wanted, resource, checkedPrivs);
     }
 
     private boolean checkAnyPrivWithinTbl(UserIdentity currentUser, String ctl, String db, String tbl) {
         RangerDorisResource resource = new RangerDorisResource(DorisObjectType.TABLE,
-                ctl, ClusterNamespace.getNameFromFullName(db), tbl);
+                ctl, db, tbl);
         return checkShowPrivilegeByPlugin(currentUser, resource);
     }
 
@@ -238,7 +237,7 @@ public class RangerDorisAccessController extends RangerAccessController {
     private boolean checkColPrivInternal(UserIdentity currentUser, String ctl, String db, String tbl, String col,
             PrivPredicate wanted, PrivBitSet checkedPrivs) {
         RangerDorisResource resource = new RangerDorisResource(DorisObjectType.COLUMN,
-                ctl, ClusterNamespace.getNameFromFullName(db), tbl, col);
+                ctl, db, tbl, col);
         return checkPrivilege(currentUser, wanted, resource, checkedPrivs);
     }
 
@@ -312,13 +311,13 @@ public class RangerDorisAccessController extends RangerAccessController {
     @Override
     protected RangerDorisResource createResource(String ctl, String db, String tbl) {
         return new RangerDorisResource(DorisObjectType.TABLE,
-                ctl, ClusterNamespace.getNameFromFullName(db), tbl);
+                ctl, db, tbl);
     }
 
     @Override
     protected RangerDorisResource createResource(String ctl, String db, String tbl, String col) {
         return new RangerDorisResource(DorisObjectType.COLUMN,
-                ctl, ClusterNamespace.getNameFromFullName(db), tbl, col);
+                ctl, db, tbl, col);
     }
 
     @Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/hive/RangerHiveAccessController.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/hive/RangerHiveAccessController.java
index 74be9f24bfe..ae86e1ff14f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/hive/RangerHiveAccessController.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/authorizer/ranger/hive/RangerHiveAccessController.java
@@ -21,7 +21,6 @@ import org.apache.doris.analysis.ResourceTypeEnum;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.authorizer.ranger.RangerAccessController;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AuthorizationException;
 import org.apache.doris.common.ThreadPoolManager;
 import org.apache.doris.datasource.InternalCatalog;
@@ -82,9 +81,9 @@ public class RangerHiveAccessController extends RangerAccessController {
     protected RangerAccessRequestImpl createRequest(UserIdentity currentUser) {
         RangerAccessRequestImpl request = new RangerAccessRequestImpl();
         String user = currentUser.getQualifiedUser();
-        request.setUser(ClusterNamespace.getNameFromFullName(user));
+        request.setUser(user);
         Set<String> roles = Env.getCurrentEnv().getAuth().getRolesByUser(currentUser, false);
-        request.setUserRoles(roles.stream().map(role -> ClusterNamespace.getNameFromFullName(role)).collect(
+        request.setUserRoles(roles.stream().collect(
                 Collectors.toSet()));
         request.setClientIPAddress(currentUser.getHost());
         request.setClusterType(CLIENT_TYPE_DORIS);
@@ -152,14 +151,14 @@ public class RangerHiveAccessController extends RangerAccessController {
     @Override
     public boolean checkDbPriv(UserIdentity currentUser, String ctl, String db, PrivPredicate wanted) {
         RangerHiveResource resource = new RangerHiveResource(HiveObjectType.DATABASE,
-                ClusterNamespace.getNameFromFullName(db));
+                db);
         return checkPrivilege(currentUser, convertToAccessType(wanted), resource);
     }
 
     @Override
     public boolean checkTblPriv(UserIdentity currentUser, String ctl, String db, String tbl, PrivPredicate wanted) {
         RangerHiveResource resource = new RangerHiveResource(HiveObjectType.TABLE,
-                ClusterNamespace.getNameFromFullName(db), tbl);
+                db, tbl);
         return checkPrivilege(currentUser, convertToAccessType(wanted), resource);
     }
 
@@ -169,7 +168,7 @@ public class RangerHiveAccessController extends RangerAccessController {
         List<RangerHiveResource> resources = new ArrayList<>();
         for (String col : cols) {
             RangerHiveResource resource = new RangerHiveResource(HiveObjectType.COLUMN,
-                    ClusterNamespace.getNameFromFullName(db), tbl, col);
+                    db, tbl, col);
             resources.add(resource);
         }
 
@@ -202,13 +201,13 @@ public class RangerHiveAccessController extends RangerAccessController {
     @Override
     protected RangerHiveResource createResource(String ctl, String db, String tbl) {
         return new RangerHiveResource(HiveObjectType.TABLE,
-                ClusterNamespace.getNameFromFullName(db), tbl);
+                db, tbl);
     }
 
     @Override
     protected RangerHiveResource createResource(String ctl, String db, String tbl, String col) {
         return new RangerHiveResource(HiveObjectType.COLUMN,
-                ClusterNamespace.getNameFromFullName(db), tbl, col);
+                db, tbl, col);
     }
 
     @Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
index cac253243ff..500f65de153 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/CacheHotspotManager.java
@@ -528,7 +528,7 @@ public class CacheHotspotManager extends MasterDaemon {
             String dbName = tmp[0];
             Long partitionId = Long.parseLong(line.get(2));
             Long indexId = Long.parseLong(line.get(3));
-            Database db = Env.getCurrentInternalCatalog().getDbNullable("default_cluster:" + dbName);
+            Database db = Env.getCurrentInternalCatalog().getDbNullable(dbName);
             if (db == null) {
                 continue;
             }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
index 173b0a1d57b..1c1c0385c5b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/datasource/CloudInternalCatalog.java
@@ -53,7 +53,6 @@ import org.apache.doris.cloud.proto.Cloud.ObjectFilePB;
 import org.apache.doris.cloud.rpc.MetaServiceProxy;
 import org.apache.doris.cloud.storage.ObjectFile;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.MetaNotFoundException;
@@ -1271,8 +1270,7 @@ public class CloudInternalCatalog extends InternalCatalog {
         if (response.getStatus().getCode() == MetaServiceCode.STATE_ALREADY_EXISTED_FOR_USER
                 || response.getStatus().getCode() == MetaServiceCode.STAGE_NOT_FOUND) {
             Cloud.StagePB.Builder createStageBuilder = Cloud.StagePB.newBuilder();
-            createStageBuilder.addMysqlUserName(ClusterNamespace
-                    .getNameFromFullName(ConnectContext.get().getCurrentUserIdentity().getQualifiedUser()))
+            createStageBuilder.addMysqlUserName(ConnectContext.get().getCurrentUserIdentity().getQualifiedUser())
                 .setStageId(UUID.randomUUID().toString())
                 .setType(Cloud.StagePB.StageType.INTERNAL).addMysqlUserId(userId);
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/cluster/ClusterNamespace.java b/fe/fe-core/src/main/java/org/apache/doris/cluster/ClusterNamespace.java
deleted file mode 100644
index 34a565ef453..00000000000
--- a/fe/fe-core/src/main/java/org/apache/doris/cluster/ClusterNamespace.java
+++ /dev/null
@@ -1,59 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.cluster;
-
-import com.google.common.base.Strings;
-
-/**
- * used to isolate the use for the database name and user name in the catalog,
- * all using the database name and user name place need to call the appropriate
- * method to makeup full name or get real name, full name is made up generally
- * in stmt's analyze.
- *
- */
-public class ClusterNamespace {
-
-    private static final String CLUSTER_DELIMITER = ":";
-
-    public static String getNameFromFullName(String fullName) {
-        if (!checkName(fullName)) {
-            return fullName;
-        }
-        return extract(fullName, 1);
-    }
-
-    private static boolean checkName(String str) {
-        if (Strings.isNullOrEmpty(str)) {
-            return false;
-        }
-
-        char delimiter = CLUSTER_DELIMITER.charAt(0);
-        int delimiterNum = 0;
-        for (int i = 0; i < str.length(); i++) {
-            if (str.charAt(i) == delimiter) {
-                delimiterNum++;
-            }
-        }
-        return delimiterNum >= 1;
-    }
-
-    private static String extract(String fullName, int index) {
-        final String[] ele = fullName.split(CLUSTER_DELIMITER);
-        return ele[index];
-    }
-}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
index ec8cc1f1422..b42e37322a1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/CatalogMgr.java
@@ -22,7 +22,6 @@ import org.apache.doris.catalog.DatabaseIf;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.EnvFactory;
 import org.apache.doris.catalog.TableIf;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.DdlException;
@@ -444,7 +443,7 @@ public class CatalogMgr implements Writable, GsonPostProcessable {
                 throw new AnalysisException("No catalog found with name " + catalogName);
             }
             StringBuilder sb = new StringBuilder();
-            sb.append("\nCREATE CATALOG `").append(ClusterNamespace.getNameFromFullName(catalogName))
+            sb.append("\nCREATE CATALOG `").append(catalogName)
                     .append("`");
             if (!Strings.isNullOrEmpty(catalog.getComment())) {
                 sb.append("\nCOMMENT \"").append(catalog.getComment()).append("\"\n");
@@ -459,7 +458,7 @@ public class CatalogMgr implements Writable, GsonPostProcessable {
                 sb.append("\n);");
             }
 
-            rows.add(Lists.newArrayList(ClusterNamespace.getNameFromFullName(catalogName), sb.toString()));
+            rows.add(Lists.newArrayList(catalogName, sb.toString()));
         } finally {
             readUnlock();
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
index 489710d64e1..27a31ec0e1d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
@@ -29,7 +29,6 @@ import org.apache.doris.catalog.info.CreateOrReplaceTagInfo;
 import org.apache.doris.catalog.info.DropBranchInfo;
 import org.apache.doris.catalog.info.DropTagInfo;
 import org.apache.doris.catalog.info.PartitionNamesInfo;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.FeConstants;
@@ -697,25 +696,24 @@ public abstract class ExternalCatalog
             LOG.warn("failed to get db {} in catalog {}", dbName, name, e);
             return null;
         }
-        String realDbName = ClusterNamespace.getNameFromFullName(dbName);
 
         // information_schema db name is case-insensitive.
         // So, we first convert it to standard database name.
-        if (realDbName.equalsIgnoreCase(InfoSchemaDb.DATABASE_NAME)) {
-            realDbName = InfoSchemaDb.DATABASE_NAME;
-        } else if (realDbName.equalsIgnoreCase(MysqlDb.DATABASE_NAME)) {
-            realDbName = MysqlDb.DATABASE_NAME;
+        if (dbName.equalsIgnoreCase(InfoSchemaDb.DATABASE_NAME)) {
+            dbName = InfoSchemaDb.DATABASE_NAME;
+        } else if (dbName.equalsIgnoreCase(MysqlDb.DATABASE_NAME)) {
+            dbName = MysqlDb.DATABASE_NAME;
         } else {
             // Apply case-insensitive lookup for non-system databases
-            String localDbName = getLocalDatabaseName(realDbName, false);
+            String localDbName = getLocalDatabaseName(dbName, false);
             if (localDbName != null) {
-                realDbName = localDbName;
+                dbName = localDbName;
             }
         }
 
         // must use full qualified name to generate id.
         // otherwise, if 2 catalogs have the same db name, the id will be the same.
-        return metaCache.getMetaObj(realDbName, Util.genIdByName(name, realDbName)).orElse(null);
+        return metaCache.getMetaObj(dbName, Util.genIdByName(name, dbName)).orElse(null);
     }
 
     @Nullable
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalMetaCacheMgr.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalMetaCacheMgr.java
index 9b44833f01a..f9d450f5d8e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalMetaCacheMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalMetaCacheMgr.java
@@ -18,7 +18,6 @@
 package org.apache.doris.datasource;
 
 import org.apache.doris.catalog.Type;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.ThreadPoolManager;
@@ -255,7 +254,6 @@ public class ExternalMetaCacheMgr {
     }
 
     public void invalidateDbCache(long catalogId, String dbName) {
-        dbName = ClusterNamespace.getNameFromFullName(dbName);
         ExternalSchemaCache schemaCache = schemaCacheMgr.getCache(catalogId);
         if (schemaCache != null) {
             schemaCache.invalidateDbCache(dbName);
@@ -306,7 +304,7 @@ public class ExternalMetaCacheMgr {
     }
 
     public void addPartitionsCache(long catalogId, HMSExternalTable table, List<String> partitionNames) {
-        String dbName = ClusterNamespace.getNameFromFullName(table.getDbName());
+        String dbName = table.getDbName();
         HiveMetaStoreCache metaCache = hiveMetaStoreCacheMgr.getCache(catalogId);
         if (metaCache != null) {
             List<Type> partitionColumnTypes;
@@ -324,7 +322,7 @@ public class ExternalMetaCacheMgr {
     }
 
     public void dropPartitionsCache(long catalogId, HMSExternalTable table, List<String> partitionNames) {
-        String dbName = ClusterNamespace.getNameFromFullName(table.getDbName());
+        String dbName = table.getDbName();
         HiveMetaStoreCache metaCache = hiveMetaStoreCacheMgr.getCache(catalogId);
         if (metaCache != null) {
             metaCache.dropPartitionsCache(table, partitionNames, true);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 6a7a2950beb..5cc2918c67c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -88,7 +88,6 @@ import org.apache.doris.clone.DynamicPartitionScheduler;
 import org.apache.doris.cloud.catalog.CloudEnv;
 import org.apache.doris.cloud.transaction.CloudGlobalTransactionMgr;
 import org.apache.doris.cluster.Cluster;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
@@ -256,8 +255,6 @@ public class InternalCatalog implements CatalogIf<Database> {
         if (StringUtils.isEmpty(dbName)) {
             return null;
         }
-        // ATTN: this should be removed in v3.0
-        dbName = ClusterNamespace.getNameFromFullName(dbName);
         if (fullNameToDb.containsKey(dbName)) {
             return fullNameToDb.get(dbName);
         } else {
@@ -3132,7 +3129,7 @@ public class InternalCatalog implements CatalogIf<Database> {
             db.writeLockOrDdlException();
             try {
                 // db name not changed
-                if (!db.getName().equals(ClusterNamespace.getNameFromFullName(createTableInfo.getDbName()))) {
+                if (!db.getName().equals(createTableInfo.getDbName())) {
                     throw new DdlException("Database name renamed, please check the database name");
                 }
                 // register table, write create table edit log
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
index fe86390b581..0784c593b26 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSExternalCatalog.java
@@ -18,7 +18,6 @@
 package org.apache.doris.datasource.hive;
 
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.ThreadPoolManager;
 import org.apache.doris.common.util.Util;
@@ -172,12 +171,12 @@ public class HMSExternalCatalog extends ExternalCatalog {
 
     @Override
     protected List<String> listTableNamesFromRemote(SessionContext ctx, String dbName) {
-        return metadataOps.listTableNames(ClusterNamespace.getNameFromFullName(dbName));
+        return metadataOps.listTableNames(dbName);
     }
 
     @Override
     public boolean tableExist(SessionContext ctx, String dbName, String tblName) {
-        return metadataOps.tableExist(ClusterNamespace.getNameFromFullName(dbName), tblName);
+        return metadataOps.tableExist(dbName, tblName);
     }
 
     @Override
@@ -187,7 +186,7 @@ public class HMSExternalCatalog extends ExternalCatalog {
         if (hmsExternalDatabase == null) {
             return false;
         }
-        return hmsExternalDatabase.getTable(ClusterNamespace.getNameFromFullName(tblName)).isPresent();
+        return hmsExternalDatabase.getTable(tblName).isPresent();
     }
 
     public HMSCachedClient getClient() {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
index 0e17f6d23ae..4f62b2e89e1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
@@ -21,7 +21,6 @@ import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.cloud.proto.Cloud;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AuthenticationException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.util.NetUtils;
@@ -301,10 +300,8 @@ public class BaseController {
             int index = authString.indexOf(":");
             authInfo.fullUserName = authString.substring(0, index);
             final String[] elements = authInfo.fullUserName.split("@");
-            if (elements != null && elements.length < 2) {
-                authInfo.fullUserName = ClusterNamespace.getNameFromFullName(authInfo.fullUserName);
-            } else if (elements != null && elements.length == 2) {
-                authInfo.fullUserName = ClusterNamespace.getNameFromFullName(elements[0]);
+            if (elements != null && elements.length == 2) {
+                authInfo.fullUserName = elements[0];
             }
             authInfo.password = authString.substring(index + 1);
             authInfo.remoteIp = request.getRemoteAddr();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java
index 4cc74e3b4d9..0b693e0e1cd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CancelLoadAction.java
@@ -57,7 +57,7 @@ public class CancelLoadAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("No database selected");
         }
 
-        String fullDbName = getFullDbName(dbName);
+        String fullDbName = dbName;
 
         String label = request.getParameter(LABEL_KEY);
         if (Strings.isNullOrEmpty(label)) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CopyIntoAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CopyIntoAction.java
index ea2c54e1976..ac062ad33fe 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CopyIntoAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/CopyIntoAction.java
@@ -25,7 +25,6 @@ import org.apache.doris.cloud.proto.Cloud.StagePB;
 import org.apache.doris.cloud.proto.Cloud.StagePB.StageType;
 import org.apache.doris.cloud.storage.RemoteBase;
 import org.apache.doris.cloud.storage.RemoteBase.ObjectInfo;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.DorisHttpException;
 import org.apache.doris.datasource.InternalCatalog;
@@ -150,8 +149,7 @@ public class CopyIntoAction extends RestBaseController {
             String host = request.getHeader("Host");
             boolean isInternal = Strings.isNullOrEmpty(eh) ? internalEndpoint(host)
                     : eh.equals(internal) || (!eh.equals(external));
-            String mysqlUserName = ClusterNamespace
-                    .getNameFromFullName(ConnectContext.get().getCurrentUserIdentity().getQualifiedUser());
+            String mysqlUserName = ConnectContext.get().getCurrentUserIdentity().getQualifiedUser();
 
             String userId = Env.getCurrentEnv().getAuth().getUserId(mysqlUserName);
             LOG.info("receive Presigned url request [ user [{}]] for filename [{}], isInternal [{}], userId [{}]",
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java
index f06d31c93a5..07ab347d026 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetDdlStmtAction.java
@@ -61,7 +61,7 @@ public class GetDdlStmtAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Missing params. Need database name and Table name");
         }
 
-        String fullDbName = getFullDbName(dbName);
+        String fullDbName = dbName;
         Table table;
         try {
             Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java
index 42db523dec8..b9f037a0365 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/GetStreamLoadState.java
@@ -50,7 +50,7 @@ public class GetStreamLoadState extends RestBaseController {
             return ResponseEntityBuilder.badRequest("No label selected");
         }
 
-        final String fullDbName = getFullDbName(dbName);
+        final String fullDbName = dbName;
 
         Database db;
         try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
index 571a6dc50de..bcc917ad012 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/LoadAction.java
@@ -23,7 +23,6 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.cloud.qe.ComputeGroupException;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
@@ -199,9 +198,8 @@ public class LoadAction extends RestBaseController {
     }
 
     private boolean isGroupCommitBlock(String db, String table) throws TException {
-        String fullDbName = getFullDbName(db);
         Database dbObj = Env.getCurrentInternalCatalog()
-                .getDbOrException(fullDbName, s -> new TException("database is invalid for dbName: " + s));
+                .getDbOrException(db, s -> new TException("database is invalid for dbName: " + s));
         Table tblObj = dbObj.getTableOrException(table, s -> new TException("table is invalid: " + s));
         return Env.getCurrentEnv().getGroupCommitManager().isBlock(tblObj.getId());
     }
@@ -739,8 +737,7 @@ public class LoadAction extends RestBaseController {
 
         if (!Strings.isNullOrEmpty(request.getHeader("Authorization"))) {
             ActionAuthorizationInfo authInfo = getAuthorizationInfo(request);
-            userInfo = ClusterNamespace.getNameFromFullName(authInfo.fullUserName)
-                    + ":" + authInfo.password;
+            userInfo = authInfo.fullUserName + ":" + authInfo.password;
         }
         try {
             urlObj = new URI(urlStr);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java
index 81216fe2007..0f4eb90d888 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/MetaInfoAction.java
@@ -21,7 +21,6 @@ import org.apache.doris.catalog.Database;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Table;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.FeConstants;
@@ -103,10 +102,9 @@ public class MetaInfoAction extends RestBaseController {
         }
         List<String> dbNames = catalog.getDbNames();
         List<String> dbNameSet = Lists.newArrayList();
-        for (String fullName : dbNames) {
-            final String db = ClusterNamespace.getNameFromFullName(fullName);
+        for (String db : dbNames) {
             if (!Env.getCurrentEnv().getAccessManager()
-                    .checkDbPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, fullName,
+                    .checkDbPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, db,
                             PrivPredicate.SHOW)) {
                 continue;
             }
@@ -144,10 +142,9 @@ public class MetaInfoAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Only support 'default_cluster' now");
         }
 
-        String fullDbName = getFullDbName(dbName);
         Database db;
         try {
-            db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
+            db = Env.getCurrentInternalCatalog().getDbOrMetaException(dbName);
         } catch (MetaNotFoundException e) {
             return ResponseEntityBuilder.okWithCommonError(e.getMessage());
         }
@@ -155,7 +152,7 @@ public class MetaInfoAction extends RestBaseController {
         List<String> tblNames = Lists.newArrayList();
         for (Table tbl : db.getTables()) {
             if (!Env.getCurrentEnv().getAccessManager()
-                    .checkTblPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, fullDbName,
+                    .checkTblPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, dbName,
                             tbl.getName(),
                             PrivPredicate.SHOW)) {
                 continue;
@@ -222,7 +219,7 @@ public class MetaInfoAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Only support 'default_cluster' now");
         }
 
-        String fullDbName = getFullDbName(dbName);
+        String fullDbName = dbName;
         checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.SHOW);
 
         String withMvPara = request.getParameter(PARAM_WITH_MV);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java
index a350f1c5a58..4422ca83ede 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java
@@ -19,7 +19,6 @@ package org.apache.doris.httpv2.rest;
 
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.UserException;
@@ -98,8 +97,7 @@ public class RestBaseController extends BaseController {
         String userInfo = null;
         if (!Strings.isNullOrEmpty(request.getHeader("Authorization"))) {
             ActionAuthorizationInfo authInfo = getAuthorizationInfo(request);
-            userInfo = ClusterNamespace.getNameFromFullName(authInfo.fullUserName)
-                    + ":" + authInfo.password;
+            userInfo = authInfo.fullUserName + ":" + authInfo.password;
         }
         try {
             urlObj = new URI(urlStr);
@@ -193,10 +191,6 @@ public class RestBaseController extends BaseController {
         getFile(request, response, imageFile, imageFile.getName());
     }
 
-    public String getFullDbName(String dbName) {
-        return ClusterNamespace.getNameFromFullName(dbName);
-    }
-
     public boolean needRedirect(String scheme) {
         return Config.enable_https && "http".equalsIgnoreCase(scheme);
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java
index 6ae3576f6b5..39a06d5a4d8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RowCountAction.java
@@ -63,11 +63,10 @@ public class RowCountAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("No table selected");
         }
 
-        String fullDbName = getFullDbName(dbName);
         Map<String, Long> indexRowCountMap = Maps.newHashMap();
         OlapTable olapTable;
         try {
-            Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
+            Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(dbName);
             olapTable = (OlapTable) db.getTableOrMetaException(tableName, Table.TableType.OLAP);
         } catch (MetaNotFoundException e) {
             return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java
index 1633e8514c0..b1001beb751 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/ShowAction.java
@@ -24,7 +24,6 @@ import org.apache.doris.catalog.MysqlCompatibleDatabase;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf.TableType;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.proc.ProcNodeInterface;
@@ -186,13 +185,12 @@ public class ShowAction extends RestBaseController {
         String dbName = request.getParameter(DB_KEY);
         long totalSize = 0;
         if (dbName != null) {
-            String fullDbName = getFullDbName(dbName);
-            DatabaseIf db = Env.getCurrentInternalCatalog().getDbNullable(fullDbName);
+            DatabaseIf db = Env.getCurrentInternalCatalog().getDbNullable(dbName);
             if (db == null) {
-                return ResponseEntityBuilder.okWithCommonError("database " + fullDbName + " not found.");
+                return ResponseEntityBuilder.okWithCommonError("database " + dbName + " not found.");
             }
             totalSize = getDataSizeOfDatabase(db);
-            oneEntry.put(fullDbName, totalSize);
+            oneEntry.put(dbName, totalSize);
         } else {
             for (long dbId : Env.getCurrentInternalCatalog().getDbIds()) {
                 DatabaseIf db = Env.getCurrentInternalCatalog().getDbNullable(dbId);
@@ -222,17 +220,16 @@ public class ShowAction extends RestBaseController {
         boolean singleReplicaBool = Boolean.parseBoolean(singleReplica);
         Map<String, Map<String, Long>> oneEntry = Maps.newHashMap();
         if (dbName != null) {
-            String fullDbName = getFullDbName(dbName);
             if (!StringUtils.isEmpty(tableName) && Config.enable_all_http_auth) {
-                checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tableName, PrivPredicate.SHOW);
+                checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tableName, PrivPredicate.SHOW);
             }
 
-            DatabaseIf db = Env.getCurrentInternalCatalog().getDbNullable(fullDbName);
+            DatabaseIf db = Env.getCurrentInternalCatalog().getDbNullable(dbName);
             if (db == null) {
-                return ResponseEntityBuilder.okWithCommonError("database " + fullDbName + " not found.");
+                return ResponseEntityBuilder.okWithCommonError("database " + dbName + " not found.");
             }
             Map<String, Long> tablesEntry = getDataSizeOfTables(db, tableName, singleReplicaBool);
-            oneEntry.put(ClusterNamespace.getNameFromFullName(fullDbName), tablesEntry);
+            oneEntry.put(dbName, tablesEntry);
         } else {
             for (long dbId : Env.getCurrentInternalCatalog().getDbIds()) {
                 DatabaseIf db = Env.getCurrentInternalCatalog().getDbNullable(dbId);
@@ -246,7 +243,7 @@ public class ShowAction extends RestBaseController {
                     continue;
                 }
                 Map<String, Long> tablesEntry = getDataSizeOfTables(db, tableName, singleReplicaBool);
-                oneEntry.put(ClusterNamespace.getNameFromFullName(db.getFullName()), tablesEntry);
+                oneEntry.put(db.getFullName(), tablesEntry);
             }
         }
         return ResponseEntityBuilder.ok(oneEntry);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StmtExecutionAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StmtExecutionAction.java
index 6ec305b9845..6b58bf420b9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StmtExecutionAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StmtExecutionAction.java
@@ -91,9 +91,8 @@ public class StmtExecutionAction extends RestBaseController {
         }
 
         ActionAuthorizationInfo authInfo = checkWithCookie(request, response, false);
-        String fullDbName = getFullDbName(dbName);
         if (Config.enable_all_http_auth) {
-            checkDbAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, PrivPredicate.ADMIN);
+            checkDbAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, PrivPredicate.ADMIN);
         }
 
         if (ns.equalsIgnoreCase(SystemInfoService.DEFAULT_CLUSTER)) {
@@ -111,7 +110,7 @@ public class StmtExecutionAction extends RestBaseController {
                 stmtRequestBody.limit);
 
         ConnectContext.get().changeDefaultCatalog(ns);
-        ConnectContext.get().setDatabase(fullDbName);
+        ConnectContext.get().setDatabase(dbName);
 
         String streamHeader = request.getHeader("X-Doris-Stream");
         boolean isStream = !("false".equalsIgnoreCase(streamHeader));
@@ -146,7 +145,7 @@ public class StmtExecutionAction extends RestBaseController {
         }
         LOG.info("sql: {}", sql);
         ConnectContext.get().changeDefaultCatalog(ns);
-        ConnectContext.get().setDatabase(getFullDbName(dbName));
+        ConnectContext.get().setDatabase(dbName);
         return getSchema(sql);
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java
index 349dc24c2d1..cba42aa471c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/StorageTypeCheckAction.java
@@ -52,10 +52,9 @@ public class StorageTypeCheckAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("No database selected");
         }
 
-        String fullDbName = getFullDbName(dbName);
         Database db;
         try {
-            db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
+            db = Env.getCurrentInternalCatalog().getDbOrMetaException(dbName);
         } catch (MetaNotFoundException e) {
             return ResponseEntityBuilder.okWithCommonError(e.getMessage());
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
index 87d1eedaa95..8c734b26980 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
@@ -23,7 +23,6 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf;
 import org.apache.doris.cloud.qe.ComputeGroupException;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DorisHttpException;
 import org.apache.doris.common.MetaNotFoundException;
@@ -135,12 +134,11 @@ public class TableQueryPlanAction extends RestBaseController {
             LOG.info("receive SQL statement [{}] from external service [ user [{}]] for database [{}] table [{}]",
                     sql, ConnectContext.get().getCurrentUserIdentity(), dbName, tblName);
 
-            String fullDbName = getFullDbName(dbName);
             // check privilege for select, otherwise return HTTP 401
-            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.SELECT);
+            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tblName, PrivPredicate.SELECT);
             Table table;
             try {
-                Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
+                Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(dbName);
                 table = db.getTableOrMetaException(tblName, TableIf.TableType.OLAP);
             } catch (MetaNotFoundException e) {
                 return ResponseEntityBuilder.okWithCommonError(e.getMessage());
@@ -157,7 +155,7 @@ public class TableQueryPlanAction extends RestBaseController {
                     ConnectContext.get().getCloudCluster();
                 }
                 // parse/analysis/plan the sql and acquire tablet distributions
-                handleQuery(ConnectContext.get(), fullDbName, tblName, sql, resultMap);
+                handleQuery(ConnectContext.get(), dbName, tblName, sql, resultMap);
             } finally {
                 table.readUnlock();
             }
@@ -358,10 +356,10 @@ public class TableQueryPlanAction extends RestBaseController {
                 .setQueryId(DebugUtil.printId(ctx.queryId()))
                 .setTimestamp(ctx.getStartTime())
                 .setClientIp(ctx.getClientIP())
-                .setUser(ClusterNamespace.getNameFromFullName(ctx.getQualifiedUser()))
+                .setUser(ctx.getQualifiedUser())
                 .setFeIp(FrontendOptions.getLocalHostAddress())
                 .setCtl(catalog == null ? InternalCatalog.INTERNAL_CATALOG_NAME : catalog.getName())
-                .setDb(ClusterNamespace.getNameFromFullName(ctx.getDatabase()))
+                .setDb(ctx.getDatabase())
                 .setState(ctx.getState().toString())
                 .setErrorCode(ctx.getState().getErrorCode() == null ? 0 : ctx.getState().getErrorCode().getCode())
                 .setErrorMessage((ctx.getState().getErrorMessage() == null ? "" :
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java
index f753c872b62..69a0210ceba 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableRowCountAction.java
@@ -57,12 +57,11 @@ public class TableRowCountAction extends RestBaseController {
         // just allocate 2 slot for top holder map
         Map<String, Object> resultMap = new HashMap<>(4);
         try {
-            String fullDbName = getFullDbName(dbName);
             // check privilege for select, otherwise return HTTP 401
-            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.SELECT);
+            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tblName, PrivPredicate.SELECT);
             OlapTable olapTable;
             try {
-                Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
+                Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(dbName);
                 olapTable = (OlapTable) db.getTableOrMetaException(tblName, Table.TableType.OLAP);
             } catch (MetaNotFoundException e) {
                 return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java
index a3d766f1c6f..fc486d43c5d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableSchemaAction.java
@@ -111,15 +111,14 @@ public class TableSchemaAction extends RestBaseController {
         }
 
         try {
-            String fullDbName = getFullDbName(dbName);
             // check privilege for select, otherwise return 401 HTTP status
-            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), catalogName, fullDbName, tblName,
+            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), catalogName, dbName, tblName,
                     PrivPredicate.SELECT);
             TableIf table;
             try {
                 CatalogIf catalog = StringUtils.isNotBlank(catalogName) ? Env.getCurrentEnv().getCatalogMgr()
                         .getCatalogOrAnalysisException(catalogName) : Env.getCurrentInternalCatalog();
-                DatabaseIf db = catalog.getDbOrMetaException(fullDbName);
+                DatabaseIf db = catalog.getDbOrMetaException(dbName);
                 table = db.getTableOrMetaException(tblName);
             } catch (MetaNotFoundException | AnalysisException e) {
                 return ResponseEntityBuilder.okWithCommonError(e.getMessage());
@@ -207,10 +206,9 @@ public class TableSchemaAction extends RestBaseController {
             @PathVariable(value = TABLE_KEY) String tableName,
             HttpServletRequest request, HttpServletResponse response, @RequestBody String body) {
         executeCheckPassword(request, response);
-        String fullDbName = getFullDbName(dbName);
         OlapTable table;
         try {
-            Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(fullDbName);
+            Database db = Env.getCurrentInternalCatalog().getDbOrMetaException(dbName);
             table = (OlapTable) db.getTableOrMetaException(tableName, Table.TableType.OLAP);
         } catch (MetaNotFoundException e) {
             return ResponseEntityBuilder.okWithCommonError(e.getMessage());
@@ -259,14 +257,13 @@ public class TableSchemaAction extends RestBaseController {
         }
 
         try {
-            String fullDbName = getFullDbName(dbName);
-            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), catalogName, fullDbName, tblName,
+            checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), catalogName, dbName, tblName,
                     PrivPredicate.SELECT);
             TableIf table;
             try {
                 CatalogIf catalog = StringUtils.isNotBlank(catalogName) ? Env.getCurrentEnv().getCatalogMgr()
                         .getCatalogOrAnalysisException(catalogName) : Env.getCurrentInternalCatalog();
-                DatabaseIf db = catalog.getDbOrMetaException(fullDbName);
+                DatabaseIf db = catalog.getDbOrMetaException(dbName);
                 table = db.getTableOrMetaException(tblName);
             } catch (MetaNotFoundException | AnalysisException e) {
                 return ResponseEntityBuilder.okWithCommonError(e.getMessage());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/UploadAction.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/UploadAction.java
index 941f1a6dcd6..fa00e4a5ab3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/UploadAction.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/UploadAction.java
@@ -85,8 +85,7 @@ public class UploadAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Only support 'default_cluster' now");
         }
 
-        String fullDbName = getFullDbName(dbName);
-        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.LOAD);
+        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tblName, PrivPredicate.LOAD);
 
         String columnSeparator = request.getParameter(PARAM_COLUMN_SEPARATOR);
         if (Strings.isNullOrEmpty(columnSeparator)) {
@@ -142,8 +141,7 @@ public class UploadAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Only support 'default_cluster' now");
         }
 
-        String fullDbName = getFullDbName(dbName);
-        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.LOAD);
+        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tblName, PrivPredicate.LOAD);
 
         String fileIdStr = request.getParameter(PARAM_FILE_ID);
         if (Strings.isNullOrEmpty(fileIdStr)) {
@@ -198,8 +196,7 @@ public class UploadAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Only support 'default_cluster' now");
         }
 
-        String fullDbName = getFullDbName(dbName);
-        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.LOAD);
+        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tblName, PrivPredicate.LOAD);
 
         String fileIdStr = request.getParameter(PARAM_FILE_ID);
         String fileUUIDStr = request.getParameter(PARAM_FILE_UUID);
@@ -242,8 +239,7 @@ public class UploadAction extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Only support 'default_cluster' now");
         }
 
-        String fullDbName = getFullDbName(dbName);
-        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), fullDbName, tblName, PrivPredicate.LOAD);
+        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), dbName, tblName, PrivPredicate.LOAD);
 
         String fileIdStr = request.getParameter(PARAM_FILE_ID);
         if (Strings.isNullOrEmpty(fileIdStr)) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java
index 04e523c288f..c260e7b64de 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/restv2/MetaInfoActionV2.java
@@ -23,7 +23,6 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.MetaNotFoundException;
 import org.apache.doris.common.Pair;
@@ -130,7 +129,7 @@ public class MetaInfoActionV2 extends RestBaseController {
         List<String> dbNames = catalog.getDbNames();
         List<String> filteredDbNames = Lists.newArrayList();
         for (String fullName : dbNames) {
-            final String db = ClusterNamespace.getNameFromFullName(fullName);
+            final String db = fullName;
             if (!Env.getCurrentEnv().getAccessManager()
                     .checkDbPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, fullName,
                             PrivPredicate.SHOW)) {
@@ -171,10 +170,9 @@ public class MetaInfoActionV2 extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Catalog '" + catalogName + "' not found");
         }
 
-        String fullDbName = getFullDbName(dbName);
         DatabaseIf<TableIf> db;
         try {
-            db = catalog.getDbOrMetaException(fullDbName);
+            db = catalog.getDbOrMetaException(dbName);
         } catch (MetaNotFoundException e) {
             return ResponseEntityBuilder.okWithCommonError(e.getMessage());
         }
@@ -184,7 +182,7 @@ public class MetaInfoActionV2 extends RestBaseController {
         try {
             for (TableIf tbl : db.getTables()) {
                 if (!Env.getCurrentEnv().getAccessManager()
-                        .checkTblPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, fullDbName,
+                        .checkTblPriv(ConnectContext.get(), InternalCatalog.INTERNAL_CATALOG_NAME, dbName,
                                 tbl.getName(), PrivPredicate.SHOW)) {
                     continue;
                 }
@@ -244,14 +242,13 @@ public class MetaInfoActionV2 extends RestBaseController {
             return ResponseEntityBuilder.badRequest("Catalog '" + catalogName + "' not found");
         }
 
-        String fullDbName = getFullDbName(dbName);
-        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), catalogName, fullDbName,
+        checkTblAuth(ConnectContext.get().getCurrentUserIdentity(), catalogName, dbName,
                 tblName, PrivPredicate.SHOW);
         String withMvPara = request.getParameter(PARAM_WITH_MV);
         boolean withMv = !Strings.isNullOrEmpty(withMvPara) && withMvPara.equals("1");
 
         try {
-            DatabaseIf db = catalog.getDbOrMetaException(fullDbName);
+            DatabaseIf db = catalog.getDbOrMetaException(dbName);
             db.readLock();
             try {
                 TableIf tbl = db.getTableOrMetaException(tblName, Table.TableType.OLAP);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/httpv2/util/LoadSubmitter.java b/fe/fe-core/src/main/java/org/apache/doris/httpv2/util/LoadSubmitter.java
index fc5f85743bd..0305199d9fe 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/httpv2/util/LoadSubmitter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/httpv2/util/LoadSubmitter.java
@@ -18,7 +18,6 @@
 package org.apache.doris.httpv2.util;
 
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.LoadException;
 import org.apache.doris.common.ThreadPoolManager;
@@ -91,7 +90,7 @@ public class LoadSubmitter {
             URL loadUrl = new URL(loadUrlStr);
             HttpURLConnection conn = (HttpURLConnection) loadUrl.openConnection();
             conn.setRequestMethod("PUT");
-            String auth = String.format("%s:%s", ClusterNamespace.getNameFromFullName(loadContext.user),
+            String auth = String.format("%s:%s", loadContext.user,
                     loadContext.passwd);
             String authEncoding = Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
             conn.setRequestProperty("Authorization", "Basic " + authEncoding);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java
index 6c0648c6022..eba74ac0b4b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/StreamLoadHandler.java
@@ -25,7 +25,6 @@ import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf.TableType;
 import org.apache.doris.cloud.catalog.CloudEnv;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.AuthenticationException;
 import org.apache.doris.common.Config;
@@ -127,7 +126,7 @@ public class StreamLoadHandler {
         }
 
         ctx.setRemoteIP(request.isSetAuthCode() ? clientAddr : request.getUserIp());
-        String userName = ClusterNamespace.getNameFromFullName(request.getUser());
+        String userName = request.getUser();
         if (!request.isSetToken() && !request.isSetAuthCode() && !Strings.isNullOrEmpty(userName)) {
             List<UserIdentity> currentUser = Lists.newArrayList();
             try {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MysqlLoadManager.java b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MysqlLoadManager.java
index 12f000b7b16..0442cecf167 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MysqlLoadManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/MysqlLoadManager.java
@@ -25,7 +25,6 @@ import org.apache.doris.analysis.StringLiteral;
 import org.apache.doris.analysis.ToSqlParams;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.CustomThreadFactory;
 import org.apache.doris.common.LoadException;
@@ -172,7 +171,7 @@ public class MysqlLoadManager {
             throws IOException, UserException {
         LoadJobRowResult loadResult = new LoadJobRowResult();
         List<String> filePaths = dataDesc.getFilePaths();
-        String database = ClusterNamespace.getNameFromFullName(dataDesc.getDbName());
+        String database = dataDesc.getDbName();
         String table = dataDesc.getTableName();
         int oldTimeout = context.getExecTimeoutS();
         int newTimeOut = extractTimeOut(dataDesc);
@@ -239,7 +238,7 @@ public class MysqlLoadManager {
                                                                String loadId) throws IOException, UserException {
         LoadJobRowResult loadResult = new LoadJobRowResult();
         List<String> filePaths = dataDesc.getFilePaths();
-        String database = ClusterNamespace.getNameFromFullName(dataDesc.getDbName());
+        String database = dataDesc.getDbName();
         String table = dataDesc.getTableName();
         int oldTimeout = context.getExecTimeoutS();
         int newTimeOut = extractTimeOut(dataDesc);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapAuthenticator.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapAuthenticator.java
index cd9cef469d2..d9e27e4a9fb 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapAuthenticator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapAuthenticator.java
@@ -19,7 +19,6 @@ package org.apache.doris.mysql.authenticate.ldap;
 
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
 import org.apache.doris.mysql.authenticate.AuthenticateRequest;
@@ -91,7 +90,7 @@ public class LdapAuthenticator implements Authenticator {
      */
     private AuthenticateResponse internalAuthenticate(String password, String qualifiedUser, String remoteIp) {
         String usePasswd = (Strings.isNullOrEmpty(password)) ? "NO" : "YES";
-        String userName = ClusterNamespace.getNameFromFullName(qualifiedUser);
+        String userName = qualifiedUser;
         if (LOG.isDebugEnabled()) {
             LOG.debug("user:{}", userName);
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapManager.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapManager.java
index 5f6003cd6c1..cf5adeb670f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/authenticate/ldap/LdapManager.java
@@ -21,7 +21,6 @@ import org.apache.doris.analysis.TablePattern;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.InfoSchemaDb;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.LdapConfig;
@@ -102,7 +101,7 @@ public class LdapManager {
     }
 
     public boolean checkUserPasswd(String fullName, String passwd) {
-        String userName = ClusterNamespace.getNameFromFullName(fullName);
+        String userName = fullName;
         if (AuthenticateType.getAuthTypeConfig() != AuthenticateType.LDAP || Strings.isNullOrEmpty(userName)
                 || Objects.isNull(passwd)) {
             return false;
@@ -143,7 +142,7 @@ public class LdapManager {
     }
 
     private LdapUserInfo getUserInfoAndUpdateCache(String fulName) throws DdlException {
-        String userName = ClusterNamespace.getNameFromFullName(fulName);
+        String userName = fulName;
         if (Strings.isNullOrEmpty(userName)) {
             return null;
         } else if (!ldapClient.doesUserExist(userName)) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Auth.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Auth.java
index bf1dc7b1963..371d4b7c2f7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Auth.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Auth.java
@@ -30,7 +30,6 @@ import org.apache.doris.catalog.InfoSchemaDb;
 import org.apache.doris.catalog.TableIf;
 import org.apache.doris.cloud.datasource.CloudInternalCatalog;
 import org.apache.doris.cloud.proto.Cloud;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.AuthenticationException;
 import org.apache.doris.common.AuthorizationException;
@@ -565,7 +564,7 @@ public class Auth implements Writable {
     private void dropUserInternal(UserIdentity userIdent, boolean ignoreIfNonExists, boolean isReplay)
             throws DdlException {
         writeLock();
-        String mysqlUserName = ClusterNamespace.getNameFromFullName(userIdent.getUser());
+        String mysqlUserName = userIdent.getUser();
         String toDropMysqlUserId;
         try {
             // check if user exists
@@ -1718,7 +1717,7 @@ public class Auth implements Writable {
                         }
                         for (PrivEntry entry : tablePrivTable.getEntries()) {
                             TablePrivEntry tablePrivEntry = (TablePrivEntry) entry;
-                            String dbName = ClusterNamespace.getNameFromFullName(tablePrivEntry.getOrigDb());
+                            String dbName = tablePrivEntry.getOrigDb();
                             String tblName = tablePrivEntry.getOrigTbl();
                             // Don't show privileges in information_schema
                             if (InfoSchemaDb.DATABASE_NAME.equals(dbName)
@@ -1728,8 +1727,7 @@ public class Auth implements Writable {
                             }
 
                             String grantee = new String("\'")
-                                    .concat(ClusterNamespace
-                                            .getNameFromFullName(user.getUserIdentity().getQualifiedUser()))
+                                    .concat(user.getUserIdentity().getQualifiedUser())
                                     .concat("\'@\'").concat(user.getUserIdentity().getHost()).concat("\'");
                             String isGrantable = tablePrivEntry.getPrivSet().get(2) ? "YES" : "NO"; // GRANT_PRIV
                             for (Privilege priv : tablePrivEntry.getPrivSet().toPrivilegeList()) {
@@ -1770,7 +1768,7 @@ public class Auth implements Writable {
                         for (PrivEntry entry : dbPrivTable.getEntries()) {
                             DbPrivEntry dbPrivEntry = (DbPrivEntry) entry;
                             String origDb = dbPrivEntry.getOrigDb();
-                            String dbName = ClusterNamespace.getNameFromFullName(dbPrivEntry.getOrigDb());
+                            String dbName = dbPrivEntry.getOrigDb();
                             // Don't show privileges in information_schema
                             if (InfoSchemaDb.DATABASE_NAME.equals(dbName)
                                     || !checkDbPriv(currentUser, InternalCatalog.INTERNAL_CATALOG_NAME, origDb,
@@ -1779,8 +1777,7 @@ public class Auth implements Writable {
                             }
 
                             String grantee = new String("\'")
-                                    .concat(ClusterNamespace
-                                            .getNameFromFullName(user.getUserIdentity().getQualifiedUser()))
+                                    .concat(user.getUserIdentity().getQualifiedUser())
                                     .concat("\'@\'").concat(user.getUserIdentity().getHost()).concat("\'");
                             String isGrantable = dbPrivEntry.getPrivSet().get(2) ? "YES" : "NO"; // GRANT_PRIV
                             for (Privilege priv : dbPrivEntry.getPrivSet().toPrivilegeList()) {
@@ -1825,7 +1822,7 @@ public class Auth implements Writable {
                             continue;
                         }
                         String grantee = new String("\'")
-                                .concat(ClusterNamespace.getNameFromFullName(user.getUserIdentity().getQualifiedUser()))
+                                .concat(user.getUserIdentity().getQualifiedUser())
                                 .concat("\'@\'").concat(user.getUserIdentity().getHost()).concat("\'");
                         String isGrantable = privEntry.getPrivSet().get(2) ? "YES" : "NO"; // GRANT_PRIV
                         for (Privilege globalPriv : privEntry.getPrivSet().toPrivilegeList()) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/ColPrivilegeKey.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/ColPrivilegeKey.java
index 9d4b791cb05..5d38bff8171 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/ColPrivilegeKey.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/ColPrivilegeKey.java
@@ -17,8 +17,6 @@
 
 package org.apache.doris.mysql.privilege;
 
-import org.apache.doris.cluster.ClusterNamespace;
-
 import com.google.common.base.Objects;
 import com.google.gson.annotations.SerializedName;
 
@@ -35,9 +33,9 @@ public class ColPrivilegeKey {
 
     public ColPrivilegeKey(Privilege privilege, String ctl, String db, String tbl) {
         this.privilegeIdx = privilege.getIdx();
-        this.ctl = ClusterNamespace.getNameFromFullName(ctl);
-        this.db = ClusterNamespace.getNameFromFullName(db);
-        this.tbl = ClusterNamespace.getNameFromFullName(tbl);
+        this.ctl = ctl;
+        this.db = db;
+        this.tbl = tbl;
     }
 
     public Privilege getPrivilege() {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/DbPrivEntry.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/DbPrivEntry.java
index d799f99c51a..2488579fc03 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/DbPrivEntry.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/DbPrivEntry.java
@@ -18,7 +18,6 @@
 package org.apache.doris.mysql.privilege;
 
 import org.apache.doris.catalog.InfoSchemaDb;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.PatternMatcher;
@@ -63,7 +62,7 @@ public class DbPrivEntry extends CatalogPrivEntry {
     private static PatternMatcher createDbPatternMatcher(String db) throws AnalysisException {
         // the database 'information_schema''s name is case insensibility.
         boolean dbCaseSensibility = CaseSensibility.DATABASE.getCaseSensibility();
-        if (ClusterNamespace.getNameFromFullName(db).equalsIgnoreCase(InfoSchemaDb.DATABASE_NAME)) {
+        if (db.equalsIgnoreCase(InfoSchemaDb.DATABASE_NAME)) {
             dbCaseSensibility = false;
         }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java
index c286852165b..36ea09ff11e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/Role.java
@@ -24,7 +24,6 @@ import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.analysis.WorkloadGroupPattern;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
@@ -380,7 +379,6 @@ public class Role implements GsonPostProcessable {
     }
 
     private boolean checkAnyColPrivWithinCtl(String ctl) {
-        ctl = ClusterNamespace.getNameFromFullName(ctl);
         for (ColPrivilegeKey colPrivilegeKey : colPrivMap.keySet()) {
             if (colPrivilegeKey.getCtl().equals(ctl)) {
                 return true;
@@ -390,8 +388,6 @@ public class Role implements GsonPostProcessable {
     }
 
     private boolean checkAnyColPrivWithinDb(String ctl, String db) {
-        ctl = ClusterNamespace.getNameFromFullName(ctl);
-        db = ClusterNamespace.getNameFromFullName(db);
         for (ColPrivilegeKey colPrivilegeKey : colPrivMap.keySet()) {
             if (colPrivilegeKey.getCtl().equals(ctl) && colPrivilegeKey.getDb().equals(db)) {
                 return true;
@@ -401,9 +397,6 @@ public class Role implements GsonPostProcessable {
     }
 
     private boolean checkAnyColPrivWithinTbl(String ctl, String db, String tbl) {
-        ctl = ClusterNamespace.getNameFromFullName(ctl);
-        db = ClusterNamespace.getNameFromFullName(db);
-        tbl = ClusterNamespace.getNameFromFullName(tbl);
         for (ColPrivilegeKey colPrivilegeKey : colPrivMap.keySet()) {
             if (colPrivilegeKey.getCtl().equals(ctl) && colPrivilegeKey.getDb().equals(db) && colPrivilegeKey
                     .getTbl().equals(tbl)) {
@@ -1030,14 +1023,8 @@ public class Role implements GsonPostProcessable {
         return sb.toString();
     }
 
-    // should be removed after version 3.0
-    private void removeClusterPrefix() {
-        roleName = ClusterNamespace.getNameFromFullName(roleName);
-    }
-
     @Override
     public void gsonPostProcess() {
-        removeClusterPrefix();
         compatibilityErrEnum();
         rebuildPrivTables();
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
index 2da93c298e3..8e228dca3ed 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
@@ -24,14 +24,12 @@ import org.apache.doris.analysis.WorkloadGroupPattern;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.InfoSchemaDb;
 import org.apache.doris.catalog.MysqlDb;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.FeConstants;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.mysql.privilege.Auth.PrivLevel;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.resource.workloadgroup.WorkloadGroupMgr;
@@ -57,7 +55,7 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-public class RoleManager implements Writable, GsonPostProcessable {
+public class RoleManager implements Writable {
     private static final Logger LOG = LogManager.getLogger(RoleManager.class);
     //prefix of each user default role
     public static String DEFAULT_ROLE_PREFIX = "default_role_rbac_";
@@ -153,7 +151,7 @@ public class RoleManager implements Writable, GsonPostProcessable {
 
     public void getRoleInfo(List<List<String>> results) {
         for (Role role : roles.values()) {
-            if (ClusterNamespace.getNameFromFullName(role.getRoleName()).startsWith(DEFAULT_ROLE_PREFIX)) {
+            if (role.getRoleName().startsWith(DEFAULT_ROLE_PREFIX)) {
                 if (ConnectContext.get() == null || !ConnectContext.get().getSessionVariable().showUserDefaultRole) {
                     continue;
                 }
@@ -216,7 +214,7 @@ public class RoleManager implements Writable, GsonPostProcessable {
 
     public void getRoleWorkloadGroupPrivs(List<List<String>> result, Set<String> limitedRole) {
         for (Role role : roles.values()) {
-            if (ClusterNamespace.getNameFromFullName(role.getRoleName()).startsWith(DEFAULT_ROLE_PREFIX)) {
+            if (role.getRoleName().startsWith(DEFAULT_ROLE_PREFIX)) {
                 continue;
             }
 
@@ -311,19 +309,4 @@ public class RoleManager implements Writable, GsonPostProcessable {
         String json = Text.readString(in);
         return GsonUtils.GSON.fromJson(json, RoleManager.class);
     }
-
-    // should be removed after version 3.0
-    private void removeClusterPrefix() {
-        ConcurrentMap<String, Role> newRoles = Maps.newConcurrentMap();
-        for (Map.Entry<String, Role> entry : roles.entrySet()) {
-            String roleName = ClusterNamespace.getNameFromFullName(entry.getKey());
-            newRoles.put(roleName, entry.getValue());
-        }
-        roles = newRoles;
-    }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        removeClusterPrefix();
-    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserManager.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserManager.java
index a059101d665..da689172c89 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserManager.java
@@ -19,7 +19,6 @@ package org.apache.doris.mysql.privilege;
 
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AuthenticationException;
 import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.DdlException;
@@ -30,7 +29,6 @@ import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.common.lock.MonitoredReentrantReadWriteLock;
 import org.apache.doris.mysql.MysqlPassword;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.common.base.Preconditions;
@@ -56,7 +54,7 @@ import java.util.Map.Entry;
 import java.util.Set;
 import java.util.concurrent.locks.Lock;
 
-public class UserManager implements Writable, GsonPostProcessable {
+public class UserManager implements Writable {
     public static final String ANY_HOST = "%";
     private static final Logger LOG = LogManager.getLogger(UserManager.class);
 
@@ -413,26 +411,6 @@ public class UserManager implements Writable, GsonPostProcessable {
         return um;
     }
 
-    // should be removed after version 3.0
-    private void removeClusterPrefix() {
-        Map<String, List<User>> newNameToUsers = Maps.newHashMap();
-        wlock.lock();
-        try {
-            for (Entry<String, List<User>> entry : nameToUsers.entrySet()) {
-                String user = entry.getKey();
-                newNameToUsers.put(ClusterNamespace.getNameFromFullName(user), entry.getValue());
-            }
-            this.nameToUsers = newNameToUsers;
-        } finally {
-            wlock.unlock();
-        }
-    }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        removeClusterPrefix();
-    }
-
     // ====== CLOUD ======
     public Set<String> getAllUsers() {
         rlock.lock();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyInfo.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyInfo.java
index 0b19f17026a..4b5d50bbb1f 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyInfo.java
@@ -17,11 +17,9 @@
 
 package org.apache.doris.mysql.privilege;
 
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.common.collect.Lists;
@@ -32,7 +30,7 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.List;
 
-public class UserPropertyInfo implements Writable, GsonPostProcessable {
+public class UserPropertyInfo implements Writable {
 
     @SerializedName("u")
     private String user;
@@ -60,11 +58,6 @@ public class UserPropertyInfo implements Writable, GsonPostProcessable {
         return GsonUtils.GSON.fromJson(Text.readString(in), UserPropertyInfo.class);
     }
 
-    @Override
-    public void gsonPostProcess() throws IOException {
-        user = ClusterNamespace.getNameFromFullName(user);
-    }
-
     @Override
     public void write(DataOutput out) throws IOException {
         Text.writeString(out, GsonUtils.GSON.toJson(this));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyMgr.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyMgr.java
index e068182308e..0a513ecc499 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserPropertyMgr.java
@@ -19,7 +19,6 @@ package org.apache.doris.mysql.privilege;
 
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
@@ -144,7 +143,7 @@ public class UserPropertyMgr implements Writable {
                         return;
                     }
                     if (clusterName.equals(userProperty.getDefaultCloudCluster())) {
-                        ret.add(ClusterNamespace.getNameFromFullName(u));
+                        ret.add(u);
                     }
                 }
         );
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserRoleManager.java b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserRoleManager.java
index 348b10257a4..663e3868d08 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserRoleManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/UserRoleManager.java
@@ -18,7 +18,6 @@
 package org.apache.doris.mysql.privilege;
 
 import org.apache.doris.analysis.UserIdentity;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.persist.gson.GsonPostProcessable;
@@ -135,7 +134,7 @@ public class UserRoleManager implements Writable, GsonPostProcessable {
             return rolesByUser;
         } else {
             return rolesByUser.stream().filter(role ->
-                    !ClusterNamespace.getNameFromFullName(role).startsWith(RoleManager.DEFAULT_ROLE_PREFIX)).collect(
+                    !role.startsWith(RoleManager.DEFAULT_ROLE_PREFIX)).collect(
                     Collectors.toSet());
         }
     }
@@ -160,21 +159,8 @@ public class UserRoleManager implements Writable, GsonPostProcessable {
         return GsonUtils.GSON.fromJson(json, UserRoleManager.class);
     }
 
-    private void removeClusterPrefix() {
-        Map<UserIdentity, Set<String>> newUserToRoles = Maps.newHashMap();
-        for (Entry<UserIdentity, Set<String>> entry : userToRoles.entrySet()) {
-            Set<String> newRoles = Sets.newHashSet();
-            for (String role : entry.getValue()) {
-                newRoles.add(ClusterNamespace.getNameFromFullName(role));
-            }
-            newUserToRoles.put(entry.getKey(), newRoles);
-        }
-        userToRoles = newUserToRoles;
-    }
-
     @Override
     public void gsonPostProcess() throws IOException {
-        removeClusterPrefix();
         roleToUsers = Maps.newHashMap();
         for (Entry<UserIdentity, Set<String>> entry : userToRoles.entrySet()) {
             for (String roleName : entry.getValue()) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsDataDescription.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsDataDescription.java
index d1cc967a8da..3350ed735b9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsDataDescription.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/load/NereidsDataDescription.java
@@ -30,7 +30,6 @@ import org.apache.doris.catalog.FunctionSet;
 import org.apache.doris.catalog.KeysType;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.info.PartitionNamesInfo;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
@@ -1101,7 +1100,7 @@ public class NereidsDataDescription {
             sb.append(" NEGATIVE");
         }
         sb.append(" INTO TABLE ");
-        sb.append(isMysqlLoad ? ClusterNamespace.getNameFromFullName(dbName) + "." + tableName : tableName);
+        sb.append(isMysqlLoad ? dbName + "." + tableName : tableName);
         if (partitionNamesInfo != null) {
             sb.append(" ");
             sb.append(partitionNamesInfo.toSql());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/UserAuthentication.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/UserAuthentication.java
index b695254ca83..ccba89fece9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/UserAuthentication.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/UserAuthentication.java
@@ -22,7 +22,6 @@ import org.apache.doris.catalog.DatabaseIf;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.InfoSchemaDb;
 import org.apache.doris.catalog.TableIf;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
@@ -64,7 +63,7 @@ public class UserAuthentication {
         if (db == null) {
             return;
         }
-        String dbName = ClusterNamespace.getNameFromFullName(db.getFullName());
+        String dbName = db.getFullName();
 
         // Special handling: cluster snapshot related tables in information_schema
         // require privilege based on configuration
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java
index 2ab84c2108b..56e6e4b88bf 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/exploration/mv/MaterializationContext.java
@@ -20,7 +20,6 @@ package org.apache.doris.nereids.rules.exploration.mv;
 import org.apache.doris.analysis.StatementBase;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Table;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Id;
 import org.apache.doris.common.Pair;
 import org.apache.doris.nereids.CascadesContext;
@@ -224,10 +223,10 @@ public abstract class MaterializationContext {
     public static List<String> generateMaterializationIdentifier(OlapTable olapTable, String indexName) {
         return indexName == null
                 ? ImmutableList.of(olapTable.getDatabase().getCatalog().getName(),
-                        ClusterNamespace.getNameFromFullName(olapTable.getDatabase().getFullName()),
+                        olapTable.getDatabase().getFullName(),
                         olapTable.getName())
                 : ImmutableList.of(olapTable.getDatabase().getCatalog().getName(),
-                        ClusterNamespace.getNameFromFullName(olapTable.getDatabase().getFullName()),
+                        olapTable.getDatabase().getFullName(),
                         olapTable.getName(), indexName);
     }
 
@@ -237,10 +236,10 @@ public abstract class MaterializationContext {
     public static List<String> generateMaterializationIdentifierByIndexId(OlapTable olapTable, Long indexId) {
         return indexId == null
                 ? ImmutableList.of(olapTable.getDatabase().getCatalog().getName(),
-                ClusterNamespace.getNameFromFullName(olapTable.getDatabase().getFullName()),
+                olapTable.getDatabase().getFullName(),
                 olapTable.getName())
                 : ImmutableList.of(olapTable.getDatabase().getCatalog().getName(),
-                        ClusterNamespace.getNameFromFullName(olapTable.getDatabase().getFullName()),
+                        olapTable.getDatabase().getFullName(),
                         olapTable.getName(), olapTable.getIndexNameById(indexId));
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
index 14ba60b9d64..5338bf7df9b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/rules/FoldConstantRuleOnFE.java
@@ -19,7 +19,6 @@ package org.apache.doris.nereids.rules.expression.rules;
 
 import org.apache.doris.catalog.EncryptKey;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.util.DebugUtil;
 import org.apache.doris.datasource.InternalCatalog;
@@ -358,7 +357,7 @@ public class FoldConstantRuleOnFE extends AbstractExpressionRewriteRule
 
     @Override
     public Expression visitDatabase(Database database, ExpressionRewriteContext context) {
-        String res = ClusterNamespace.getNameFromFullName(context.cascadesContext.getConnectContext().getDatabase());
+        String res = context.cascadesContext.getConnectContext().getDatabase();
         return new VarcharLiteral(res);
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CleanQueryStatsCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CleanQueryStatsCommand.java
index 6be08b239d9..50192a1e557 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CleanQueryStatsCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CleanQueryStatsCommand.java
@@ -20,7 +20,6 @@ package org.apache.doris.nereids.trees.plans.commands;
 import org.apache.doris.analysis.StmtType;
 import org.apache.doris.catalog.DatabaseIf;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.ErrorCode;
@@ -106,7 +105,7 @@ public class CleanQueryStatsCommand extends Command implements ForwardWithSync {
                         .checkDbPriv(ConnectContext.get(), ctx.getCurrentCatalog().getName(), dbName,
                             PrivPredicate.ALTER)) {
                     ErrorReport.reportAnalysisException(ErrorCode.ERR_SPECIFIC_ACCESS_DENIED_ERROR,
-                            "CLEAN DATABASE QUERY STATS FOR " + ClusterNamespace.getNameFromFullName(dbName));
+                            "CLEAN DATABASE QUERY STATS FOR " + dbName);
                 }
                 break;
             case TABLE:
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowClustersCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowClustersCommand.java
index 7ea77b085a8..a4c389941e0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowClustersCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowClustersCommand.java
@@ -25,7 +25,6 @@ import org.apache.doris.catalog.ScalarType;
 import org.apache.doris.cloud.catalog.ComputeGroup;
 import org.apache.doris.cloud.qe.ComputeGroupException;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.ErrorCode;
@@ -133,7 +132,7 @@ public class ShowClustersCommand extends ShowCommand {
             // common user, not admin
             if (!Env.getCurrentEnv().getAccessManager().checkGlobalPriv(ctx.getCurrentUserIdentity(),
                     PrivPredicate.of(PrivBitSet.of(Privilege.ADMIN_PRIV), Operator.OR))) {
-                users.removeIf(user -> !user.equals(ClusterNamespace.getNameFromFullName(ctx.getQualifiedUser())));
+                users.removeIf(user -> !user.equals(ctx.getQualifiedUser()));
             }
 
             String result = Joiner.on(", ").join(users);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateDatabaseCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateDatabaseCommand.java
index 88015bb53ce..8ba313e5dc8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateDatabaseCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowCreateDatabaseCommand.java
@@ -22,7 +22,6 @@ import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.DatabaseIf;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.ScalarType;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
 import org.apache.doris.common.util.DatasourcePrintableMap;
@@ -85,7 +84,7 @@ public class ShowCreateDatabaseCommand extends ShowCommand {
         StringBuilder sb = new StringBuilder();
         CatalogIf<?> catalog = Env.getCurrentEnv().getCatalogMgr().getCatalogOrAnalysisException(ctlgName);
         if (catalog instanceof HMSExternalCatalog) {
-            String simpleDBName = ClusterNamespace.getNameFromFullName(databaseName);
+            String simpleDBName = databaseName;
             ExternalDatabase dorisDb = ((HMSExternalCatalog) catalog).getDbOrAnalysisException(simpleDBName);
             org.apache.hadoop.hive.metastore.api.Database db = ((HMSExternalCatalog) catalog).getClient()
                     .getDatabase(dorisDb.getRemoteName());
@@ -101,7 +100,7 @@ public class ShowCreateDatabaseCommand extends ShowCommand {
                 .append("'");
         } else {
             DatabaseIf db = catalog.getDbOrAnalysisException(databaseName);
-            sb.append("CREATE DATABASE `").append(ClusterNamespace.getNameFromFullName(databaseName)).append("`");
+            sb.append("CREATE DATABASE `").append(databaseName).append("`");
             if (db.getDbProperties().getProperties().size() > 0) {
                 sb.append("\nPROPERTIES (\n");
                 sb.append(new DatasourcePrintableMap<>(db.getDbProperties().getProperties(), "=", true, true, false));
@@ -109,7 +108,7 @@ public class ShowCreateDatabaseCommand extends ShowCommand {
             }
         }
 
-        rows.add(Lists.newArrayList(ClusterNamespace.getNameFromFullName(databaseName), sb.toString()));
+        rows.add(Lists.newArrayList(databaseName, sb.toString()));
         return new ShowResultSet(this.getMetaData(), rows);
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowDatabasesCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowDatabasesCommand.java
index 0e6e06fbba6..4f6b519aa6e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowDatabasesCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowDatabasesCommand.java
@@ -21,7 +21,6 @@ import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.InfoSchemaDb;
 import org.apache.doris.catalog.ScalarType;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.PatternMatcher;
@@ -141,7 +140,7 @@ public class ShowDatabasesCommand extends ShowCommand {
         }
         Set<String> dbNameSet = Sets.newTreeSet();
         for (String fullName : dbNames) {
-            final String db = ClusterNamespace.getNameFromFullName(fullName);
+            final String db = fullName;
             // Filter dbname
             if (matcher != null && !matcher.match(db)) {
                 continue;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowPartitionsCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowPartitionsCommand.java
index 541ee6f5807..b4e6a664752 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowPartitionsCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowPartitionsCommand.java
@@ -25,7 +25,6 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.ScalarType;
 import org.apache.doris.catalog.TableIf;
 import org.apache.doris.catalog.TableIf.TableType;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.ErrorCode;
@@ -287,7 +286,7 @@ public class ShowPartitionsCommand extends ShowCommand {
     private ShowResultSet handleShowMaxComputeTablePartitions() {
         MaxComputeExternalCatalog mcCatalog = (MaxComputeExternalCatalog) (catalog);
         List<List<String>> rows = new ArrayList<>();
-        String dbName = ClusterNamespace.getNameFromFullName(tableName.getDb());
+        String dbName = tableName.getDb();
         List<String> partitionNames;
         if (limit < 0) {
             partitionNames = mcCatalog.listPartitionNames(dbName, tableName.getTbl());
@@ -306,7 +305,7 @@ public class ShowPartitionsCommand extends ShowCommand {
 
     private ShowResultSet handleShowPaimonTablePartitions() throws AnalysisException {
         PaimonExternalCatalog paimonCatalog = (PaimonExternalCatalog) catalog;
-        String db = ClusterNamespace.getNameFromFullName(tableName.getDb());
+        String db = tableName.getDb();
         String tbl = tableName.getTbl();
 
         PaimonExternalDatabase database = (PaimonExternalDatabase) paimonCatalog.getDb(db)
@@ -353,7 +352,7 @@ public class ShowPartitionsCommand extends ShowCommand {
     private ShowResultSet handleShowHMSTablePartitions() throws AnalysisException {
         HMSExternalCatalog hmsCatalog = (HMSExternalCatalog) catalog;
         List<List<String>> rows = new ArrayList<>();
-        String dbName = ClusterNamespace.getNameFromFullName(tableName.getDb());
+        String dbName = tableName.getDb();
         List<String> partitionNames;
 
         // catalog.getClient().listPartitionNames() returned string is the encoded string.
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowTableCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowTableCommand.java
index 2e1247906cf..e9cdcc58663 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowTableCommand.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ShowTableCommand.java
@@ -24,7 +24,6 @@ import org.apache.doris.catalog.InfoSchemaDb;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.ScalarType;
 import org.apache.doris.catalog.TableIf;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.CaseSensibility;
 import org.apache.doris.common.ErrorCode;
@@ -116,7 +115,7 @@ public class ShowTableCommand extends ShowCommand {
             throws AnalysisException {
         List<AliasInfo> selectList = new ArrayList<>();
         selectList.add(AliasInfo.of("TABLE_NAME",
-                NAME_COL_PREFIX + ClusterNamespace.getNameFromFullName(db)));
+                NAME_COL_PREFIX + db));
         if (isVerbose) {
             selectList.add(AliasInfo.of("TABLE_TYPE", TYPE_COL));
         }
@@ -190,7 +189,7 @@ public class ShowTableCommand extends ShowCommand {
     public ShowResultSetMetaData getMetaData() {
         ShowResultSetMetaData.Builder builder = ShowResultSetMetaData.builder();
         builder.addColumn(
-                new Column(NAME_COL_PREFIX + ClusterNamespace.getNameFromFullName(db), ScalarType.createVarchar(20)));
+                new Column(NAME_COL_PREFIX + db, ScalarType.createVarchar(20)));
         if (isVerbose) {
             builder.addColumn(new Column(TYPE_COL, ScalarType.createVarchar(20)));
             // TODO: using where can only show two columns, maybe this is a bug?
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/AlterUserInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/AlterUserInfo.java
index bf0a1aa060b..0bc0a4ef47d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/AlterUserInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/AlterUserInfo.java
@@ -23,7 +23,6 @@ import org.apache.doris.analysis.TlsOptions;
 import org.apache.doris.analysis.UserDesc;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
@@ -133,7 +132,7 @@ public class AlterUserInfo {
         }
 
         if (userDesc.getUserIdent().getQualifiedUser().equals(Auth.ROOT_USER)
-                && !ClusterNamespace.getNameFromFullName(ConnectContext.get().getQualifiedUser())
+                && !ConnectContext.get().getQualifiedUser()
                 .equals(Auth.ROOT_USER)) {
             throw new AnalysisException("Only root user can modify root user");
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CopyIntoInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CopyIntoInfo.java
index 0390c445aef..335f126825d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CopyIntoInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CopyIntoInfo.java
@@ -36,7 +36,6 @@ import org.apache.doris.cloud.proto.Cloud.StagePB;
 import org.apache.doris.cloud.proto.Cloud.StagePB.StageType;
 import org.apache.doris.cloud.stage.StageUtil;
 import org.apache.doris.cloud.storage.RemoteBase;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.util.DebugUtil;
@@ -188,7 +187,7 @@ public class CopyIntoInfo {
         if (stage.isEmpty()) {
             throw new AnalysisException("Stage name can not be empty");
         }
-        this.userName = ClusterNamespace.getNameFromFullName(ctx.getCurrentUserIdentity().getQualifiedUser());
+        this.userName = ctx.getCurrentUserIdentity().getQualifiedUser();
         doValidate(userName, db, true);
     }
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateUserInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateUserInfo.java
index e1ecd55281e..18f0d293ff2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateUserInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateUserInfo.java
@@ -23,7 +23,6 @@ import org.apache.doris.analysis.TlsOptions;
 import org.apache.doris.analysis.UserDesc;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
@@ -72,10 +71,9 @@ public class CreateUserInfo {
         this.comment = comment;
         this.tlsOptions = tlsOptions == null ? TlsOptions.notSpecified() : tlsOptions;
 
-        String uId = Env.getCurrentEnv().getAuth().getUserId(ClusterNamespace
-                .getNameFromFullName(this.userIdent.getUser()));
+        String uId = Env.getCurrentEnv().getAuth().getUserId(this.userIdent.getUser());
         LOG.debug("create user command userIdent {}, userName {}, userId {}",
-                this.userIdent, ClusterNamespace.getNameFromFullName(this.userIdent.getUser()), uId);
+                this.userIdent, this.userIdent.getUser(), uId);
         // avoid this case "jack@'192.1'" and "jack@'192.2'", jack's uid different
         if (Strings.isNullOrEmpty(uId)) {
             userId = UUID.randomUUID().toString();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/load/MysqlDataDescription.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/load/MysqlDataDescription.java
index fa0f51c2333..4d41768b1db 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/load/MysqlDataDescription.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/load/MysqlDataDescription.java
@@ -20,7 +20,6 @@ package org.apache.doris.nereids.trees.plans.commands.load;
 import org.apache.doris.analysis.ImportColumnDesc;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.info.PartitionNamesInfo;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
@@ -233,7 +232,7 @@ public class MysqlDataDescription {
         sb.append("DATA ").append(isClientLocal() ? "LOCAL " : "");
         sb.append("INFILE '").append(filePaths.get(0)).append("'");
         sb.append(" INTO TABLE ");
-        sb.append(ClusterNamespace.getNameFromFullName(dbName) + "." + tableName);
+        sb.append(dbName + "." + tableName);
         sb.append(" ");
         sb.append(partitionNamesInfo.toSql());
 
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/AlterDatabasePropertyInfo.java b/fe/fe-core/src/main/java/org/apache/doris/persist/AlterDatabasePropertyInfo.java
index c9879c6d9b9..b58aad247f9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/AlterDatabasePropertyInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/AlterDatabasePropertyInfo.java
@@ -17,10 +17,8 @@
 
 package org.apache.doris.persist;
 
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.gson.annotations.SerializedName;
@@ -30,7 +28,7 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Map;
 
-public class AlterDatabasePropertyInfo implements Writable, GsonPostProcessable {
+public class AlterDatabasePropertyInfo implements Writable {
     @SerializedName(value = "dbId")
     private long dbId;
 
@@ -70,9 +68,4 @@ public class AlterDatabasePropertyInfo implements Writable, GsonPostProcessable
     public String toJson() {
         return GsonUtils.GSON.toJson(this);
     }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        dbName = ClusterNamespace.getNameFromFullName(dbName);
-    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/CreateTableInfo.java b/fe/fe-core/src/main/java/org/apache/doris/persist/CreateTableInfo.java
index 13d25e22cdc..31a6bb0bc83 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/CreateTableInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/CreateTableInfo.java
@@ -18,11 +18,9 @@
 package org.apache.doris.persist;
 
 import org.apache.doris.catalog.Table;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.datasource.InternalCatalog;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.common.base.Strings;
@@ -35,7 +33,7 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Objects;
 
-public class CreateTableInfo implements Writable, GsonPostProcessable {
+public class CreateTableInfo implements Writable {
     public static final Logger LOG = LoggerFactory.getLogger(CreateTableInfo.class);
 
     @SerializedName(value = "ctl")
@@ -129,9 +127,4 @@ public class CreateTableInfo implements Writable, GsonPostProcessable {
                 dbName,
                 Strings.isNullOrEmpty(tblName) ? table.getName() : tblName);
     }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        dbName = ClusterNamespace.getNameFromFullName(dbName);
-    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/DatabaseInfo.java b/fe/fe-core/src/main/java/org/apache/doris/persist/DatabaseInfo.java
index 8d1e90ca660..d1a2e80c3f2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/DatabaseInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/DatabaseInfo.java
@@ -20,10 +20,8 @@ package org.apache.doris.persist;
 import org.apache.doris.alter.QuotaType;
 import org.apache.doris.catalog.BinlogConfig;
 import org.apache.doris.catalog.Database.DbState;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.gson.annotations.SerializedName;
@@ -32,7 +30,7 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-public class DatabaseInfo implements Writable, GsonPostProcessable {
+public class DatabaseInfo implements Writable {
 
     @SerializedName(value = "dbName")
     private String dbName;
@@ -40,8 +38,6 @@ public class DatabaseInfo implements Writable, GsonPostProcessable {
     private String newDbName;
     @SerializedName(value = "quota")
     private long quota;
-    @SerializedName(value = "clusterName")
-    private String clusterName;
     @SerializedName(value = "dbState")
     private DbState dbState;
     @SerializedName(value = "quotaType")
@@ -54,7 +50,6 @@ public class DatabaseInfo implements Writable, GsonPostProcessable {
         this.dbName = "";
         this.newDbName = "";
         this.quota = 0;
-        this.clusterName = "";
         this.dbState = DbState.NORMAL;
         this.quotaType = QuotaType.DATA;
         binlogConfig = null;
@@ -64,7 +59,6 @@ public class DatabaseInfo implements Writable, GsonPostProcessable {
         this.dbName = dbName;
         this.newDbName = newDbName;
         this.quota = quota;
-        this.clusterName = "";
         this.dbState = DbState.NORMAL;
         this.quotaType = quotaType;
         this.binlogConfig = null;
@@ -107,10 +101,4 @@ public class DatabaseInfo implements Writable, GsonPostProcessable {
     public String toString() {
         return toJson();
     }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        dbName = ClusterNamespace.getNameFromFullName(dbName);
-        newDbName = ClusterNamespace.getNameFromFullName(newDbName);
-    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/DropDbInfo.java b/fe/fe-core/src/main/java/org/apache/doris/persist/DropDbInfo.java
index 25e8ab74d1e..c9d2009521a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/DropDbInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/DropDbInfo.java
@@ -17,10 +17,8 @@
 
 package org.apache.doris.persist;
 
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.gson.annotations.SerializedName;
@@ -29,7 +27,7 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-public class DropDbInfo implements Writable, GsonPostProcessable {
+public class DropDbInfo implements Writable {
     @SerializedName(value = "ctl")
     private String ctlName;
     @SerializedName(value = "dbName")
@@ -98,9 +96,4 @@ public class DropDbInfo implements Writable, GsonPostProcessable {
             && (forceDrop == info.isForceDrop())
             && (recycleTime == info.getRecycleTime());
     }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        dbName = ClusterNamespace.getNameFromFullName(dbName);
-    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/PrivInfo.java b/fe/fe-core/src/main/java/org/apache/doris/persist/PrivInfo.java
index de640059ccc..be62862b1a9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/PrivInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/PrivInfo.java
@@ -22,12 +22,10 @@ import org.apache.doris.analysis.ResourcePattern;
 import org.apache.doris.analysis.TablePattern;
 import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.analysis.WorkloadGroupPattern;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
 import org.apache.doris.mysql.privilege.ColPrivilegeKey;
 import org.apache.doris.mysql.privilege.PrivBitSet;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.gson.annotations.SerializedName;
@@ -39,7 +37,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-public class PrivInfo implements Writable, GsonPostProcessable {
+public class PrivInfo implements Writable {
     @SerializedName(value = "userIdent")
     private UserIdentity userIdent;
     @SerializedName(value = "tblPattern")
@@ -185,20 +183,6 @@ public class PrivInfo implements Writable, GsonPostProcessable {
         return colPrivileges;
     }
 
-    private void removeClusterPrefix() {
-        if (userIdent != null) {
-            userIdent.removeClusterPrefix();
-        }
-        if (roles != null) {
-            for (int i = 0; i < roles.size(); i++) {
-                roles.set(i, ClusterNamespace.getNameFromFullName(roles.get(i)));
-            }
-        }
-        if (role != null) {
-            role = ClusterNamespace.getNameFromFullName(role);
-        }
-    }
-
     public static PrivInfo read(DataInput in) throws IOException {
         return GsonUtils.GSON.fromJson(Text.readString(in), PrivInfo.class);
     }
@@ -207,9 +191,4 @@ public class PrivInfo implements Writable, GsonPostProcessable {
     public void write(DataOutput out) throws IOException {
         Text.writeString(out, GsonUtils.GSON.toJson(this));
     }
-
-    @Override
-    public void gsonPostProcess() throws IOException {
-        removeClusterPrefix();
-    }
 }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java b/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java
index ae84408e8d9..d82ccd9e819 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/persist/RecoverInfo.java
@@ -17,10 +17,8 @@
 
 package org.apache.doris.persist;
 
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
-import org.apache.doris.persist.gson.GsonPostProcessable;
 import org.apache.doris.persist.gson.GsonUtils;
 
 import com.google.gson.annotations.SerializedName;
@@ -29,7 +27,7 @@ import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
 
-public class RecoverInfo implements Writable, GsonPostProcessable {
+public class RecoverInfo implements Writable {
     @SerializedName(value = "dbId")
     private long dbId;
     @SerializedName(value = "newDbName")
@@ -100,11 +98,6 @@ public class RecoverInfo implements Writable, GsonPostProcessable {
         return GsonUtils.GSON.fromJson(Text.readString(in), RecoverInfo.class);
     }
 
-    @Override
-    public void gsonPostProcess() throws IOException {
-        newDbName = ClusterNamespace.getNameFromFullName(newDbName);
-    }
-
     public String toJson() {
         return GsonUtils.GSON.toJson(this);
     }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java b/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java
index d749b1436bf..0ecb66853d2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/policy/PolicyMgr.java
@@ -23,7 +23,6 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.PartitionInfo;
 import org.apache.doris.catalog.Table;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.UserException;
@@ -363,7 +362,7 @@ public class PolicyMgr implements Writable {
             return res;
         }
         Set<String> roles = Env.getCurrentEnv().getAccessManager().getAuth().getRolesByUserWithLdap(user).stream()
-                .map(role -> ClusterNamespace.getNameFromFullName(role.getRoleName())).collect(Collectors.toSet());
+                .map(role -> role.getRoleName()).collect(Collectors.toSet());
         readLock();
         try {
             // double check in lock,avoid NPE
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java
index 2c7a35b994f..fb5040be30e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java
@@ -23,7 +23,6 @@ import org.apache.doris.analysis.StmtType;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.cloud.qe.ComputeGroupException;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.profile.SummaryProfile;
 import org.apache.doris.common.util.DebugUtil;
@@ -246,10 +245,10 @@ public class AuditLogHelper {
                 .setQueryId(ctx.queryId() == null ? "NaN" : DebugUtil.printId(ctx.queryId()))
                 .setTimestamp(ctx.getStartTime())
                 .setClientIp(ctx.getClientIP())
-                .setUser(ClusterNamespace.getNameFromFullName(ctx.getQualifiedUser()))
+                .setUser(ctx.getQualifiedUser())
                 .setFeIp(FrontendOptions.getLocalHostAddress())
                 .setCtl(catalog == null ? InternalCatalog.INTERNAL_CATALOG_NAME : catalog.getName())
-                .setDb(ClusterNamespace.getNameFromFullName(ctx.getDatabase()))
+                .setDb(ctx.getDatabase())
                 .setState(ctx.getState().toString())
                 .setErrorCode(ctx.getState().getErrorCode() == null ? 0 : ctx.getState().getErrorCode().getCode())
                 .setErrorMessage((ctx.getState().getErrorMessage() == null ? "" :
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
index 6c9f24809ad..8aa0ccdf547 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
@@ -35,7 +35,6 @@ import org.apache.doris.catalog.FunctionRegistry;
 import org.apache.doris.catalog.Type;
 import org.apache.doris.cloud.qe.ComputeGroupException;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.ErrorCode;
@@ -1226,7 +1225,7 @@ public class ConnectContext {
                 row.add("No");
             }
             row.add("" + connectionId);
-            row.add(ClusterNamespace.getNameFromFullName(getQualifiedUser()));
+            row.add(getQualifiedUser());
             row.add(getRemoteHostPortString());
             if (timeZone.isPresent()) {
                 row.add(TimeUtils.longToTimeStringWithTimeZone(loginTime, timeZone.get()));
@@ -1234,7 +1233,7 @@ public class ConnectContext {
                 row.add(TimeUtils.longToTimeString(loginTime));
             }
             row.add(defaultCatalog);
-            row.add(ClusterNamespace.getNameFromFullName(currentDb));
+            row.add(currentDb);
             row.add(command.toString());
             row.add("" + (nowMs - startTime) / 1000);
             row.add(state.toString());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
index 33784ec9c52..63d1f19dac5 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
@@ -49,7 +49,6 @@ import org.apache.doris.cloud.catalog.CloudReplica;
 import org.apache.doris.cloud.catalog.CloudTablet;
 import org.apache.doris.cloud.proto.Cloud.CommitTxnResponse;
 import org.apache.doris.cloud.system.CloudSystemInfoService;
-import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.AuthenticationException;
 import org.apache.doris.common.CaseSensibility;
@@ -1185,7 +1184,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
     private UserIdentity checkPasswordAndPrivs(String user, String passwd, String db, List<String> tables,
             String clientIp, PrivPredicate predicate) throws AuthenticationException {
 
-        final String fullUserName = ClusterNamespace.getNameFromFullName(user);
+        final String fullUserName = user;
         final String fullDbName = db;
         List<UserIdentity> currentUser = Lists.newArrayList();
         Env.getCurrentEnv().getAuth().checkPlainPassword(fullUserName, clientIp, passwd, currentUser);
@@ -1217,7 +1216,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
 
     private void checkPassword(String user, String passwd, String clientIp)
             throws AuthenticationException {
-        final String fullUserName = ClusterNamespace.getNameFromFullName(user);
+        final String fullUserName = user;
         List<UserIdentity> currentUser = Lists.newArrayList();
         Env.getCurrentEnv().getAuth().checkPlainPassword(fullUserName, clientIp, passwd, currentUser);
         Preconditions.checkState(currentUser.size() == 1);
@@ -2276,7 +2275,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
                     throw new AuthenticationException("Invalid token: " + request.getToken());
                 }
             } else {
-                final String fullUserName = ClusterNamespace.getNameFromFullName(request.getUser());
+                final String fullUserName = request.getUser();
                 List<UserIdentity> currentUser = Lists.newArrayList();
                 Env.getCurrentEnv().getAuth()
                         .checkPlainPassword(fullUserName, clientAddr, request.getPasswd(), currentUser);
@@ -2471,7 +2470,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
                     throw new AuthenticationException("Invalid token: " + request.getToken());
                 }
             } else {
-                final String fullUserName = ClusterNamespace.getNameFromFullName(request.getUser());
+                final String fullUserName = request.getUser();
                 List<UserIdentity> currentUser = Lists.newArrayList();
                 Env.getCurrentEnv().getAuth()
                         .checkPlainPassword(fullUserName, clientAddr, request.getPasswd(), currentUser);
@@ -2552,7 +2551,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
                     throw new AuthenticationException("Invalid token: " + request.getToken());
                 }
             } else {
-                final String fullUserName = ClusterNamespace.getNameFromFullName(request.getUser());
+                final String fullUserName = request.getUser();
                 List<UserIdentity> currentUser = Lists.newArrayList();
                 Env.getCurrentEnv().getAuth()
                         .checkPlainPassword(fullUserName, clientAddr, request.getPasswd(), currentUser);
@@ -3225,7 +3224,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
         TStatus status = new TStatus(TStatusCode.OK);
         result.setStatus(status);
         // check account and password
-        final String fullUserName = ClusterNamespace.getNameFromFullName(request.getUser());
+        final String fullUserName = request.getUser();
         List<UserIdentity> currentUser = Lists.newArrayList();
         try {
             Env.getCurrentEnv().getAuth().checkPlainPassword(fullUserName, request.getUserIp(), request.getPasswd(),
@@ -3949,7 +3948,7 @@ public class FrontendServiceImpl implements FrontendService.Iface {
         LOG.debug("restore snapshot info, restoreCommand: {}", restoreCommand);
         try {
             ConnectContext ctx = new ConnectContext();
-            String fullUserName = ClusterNamespace.getNameFromFullName(request.getUser());
+            String fullUserName = request.getUser();
             ctx.setCurrentUserIdentity(UserIdentity.createAnalyzedUserIdentWithIp(fullUserName, "%"));
             ctx.setThreadLocalInfo();
             restoreCommand.validate(ctx);
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregateTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregateTest.java
index 623593c1491..c331db29e21 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregateTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregateTest.java
@@ -66,7 +66,7 @@ public class NormalizeAggregateTest extends TestWithFeService implements MemoPat
         rStudent = new LogicalOlapScan(StatementScopeIdGenerator.newRelationId(), PlanConstructor.student,
                 ImmutableList.of());
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         createTables(
                 "CREATE TABLE IF NOT EXISTS t1 (\n"
                         + "    id int not null,\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/UserAuthenticationTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/UserAuthenticationTest.java
index b026dad95d4..d440d32dd18 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/UserAuthenticationTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/analysis/UserAuthenticationTest.java
@@ -291,54 +291,6 @@ public class UserAuthenticationTest {
                 UserAuthentication.checkPermission(table, connectContext, null));
     }
 
-    /**
-     * Test that cluster:information_schema.cluster_snapshots (with cluster prefix)
-     * DOES trigger special privilege check.
-     * This verifies ClusterNamespace.getNameFromFullName correctly strips the cluster prefix.
-     */
-    @Test
-    public void testInfoSchemaWithClusterPrefixTriggersSpecialCheck() {
-        Config.cluster_snapshot_min_privilege = "root";
-
-        UserIdentity normalUser = new UserIdentity("normal_user", "%");
-        normalUser.setIsAnalyzed();
-
-        new Expectations() {
-            {
-                table.getName();
-                minTimes = 0;
-                result = "cluster_snapshots";
-
-                table.getDatabase();
-                minTimes = 0;
-                result = db;
-
-                // Database name with cluster prefix - ClusterNamespace.getNameFromFullName
-                // should strip "default_cluster:" and return "information_schema"
-                db.getFullName();
-                minTimes = 0;
-                result = "default_cluster:information_schema";
-
-                connectContext.getSessionVariable();
-                minTimes = 0;
-                result = sessionVariable;
-
-                sessionVariable.isPlayNereidsDump();
-                minTimes = 0;
-                result = false;
-
-                connectContext.getCurrentUserIdentity();
-                minTimes = 0;
-                result = normalUser;
-            }
-        };
-
-        // Should throw AnalysisException because after stripping cluster prefix,
-        // the db name is "information_schema", which triggers special privilege check
-        Assertions.assertThrows(AnalysisException.class, () ->
-                UserAuthentication.checkPermission(table, connectContext, null));
-    }
-
     /**
      * Test that information_schema.cluster_snapshots allows admin user in admin mode.
      */
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/DecomposeRepeatWithPreAggregationTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/DecomposeRepeatWithPreAggregationTest.java
index 725b537f1e6..d0b52cbffcd 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/DecomposeRepeatWithPreAggregationTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/DecomposeRepeatWithPreAggregationTest.java
@@ -75,7 +75,7 @@ public class DecomposeRepeatWithPreAggregationTest extends TestWithFeService imp
                         + "distributed by hash(a) buckets 1\n"
                         + "properties('replication_num' = '1');"
         );
-        connectContext.setDatabase("default_cluster:decompose_repeat_with_preagg");
+        connectContext.setDatabase("decompose_repeat_with_preagg");
         connectContext.getSessionVariable().setDisableNereidsRules("PRUNE_EMPTY_PARTITION");
         rule = DecomposeRepeatWithPreAggregation.INSTANCE;
         ctx = new DistinctSelectorContext(
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java
index 3c4c509b73c..ff02eacf5fb 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java
@@ -38,7 +38,7 @@ class EliminateGroupByTest extends TestWithFeService implements MemoPatternMatch
                         + "distributed by hash(id) buckets 10\n"
                         + "properties('replication_num' = '1');"
         );
-        connectContext.setDatabase("default_cluster:eliminate_group_by");
+        connectContext.setDatabase("eliminate_group_by");
     }
 
     @Test
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java
index 0d54ad4f1e5..63f1b650bbc 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByFkTest.java
@@ -49,7 +49,7 @@ class EliminateJoinByFkTest extends TestWithFeService implements MemoPatternMatc
     @Override
     protected void runBeforeAll() throws Exception {
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         createTables(
                 "CREATE TABLE IF NOT EXISTS pri (\n"
                         + "    id1 int not null\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByUniqueTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByUniqueTest.java
index 88c9ecc339e..6b239fd3cf7 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByUniqueTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateJoinByUniqueTest.java
@@ -27,7 +27,7 @@ class EliminateJoinByUniqueTest extends TestWithFeService implements MemoPattern
     @Override
     protected void runBeforeAll() throws Exception {
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         connectContext.getSessionVariable().setDisableNereidsRules("PRUNE_EMPTY_PARTITION");
         createTables(
                 "CREATE TABLE IF NOT EXISTS t1 (\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/MergePercentileToArrayTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/MergePercentileToArrayTest.java
index 47597db1af3..b9f530d2d08 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/MergePercentileToArrayTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/MergePercentileToArrayTest.java
@@ -34,7 +34,7 @@ public class MergePercentileToArrayTest extends TestWithFeService implements Mem
                         + "distributed by hash(pk) buckets 10\n"
                         + "properties('replication_num' = '1');"
         );
-        connectContext.setDatabase("default_cluster:merge_percentile_to_array");
+        connectContext.setDatabase("merge_percentile_to_array");
         connectContext.getSessionVariable().setDisableNereidsRules("PRUNE_EMPTY_PARTITION");
     }
 
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrExpansionTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrExpansionTest.java
index 0f2d9418bff..9a1094079b8 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrExpansionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/OrExpansionTest.java
@@ -31,7 +31,7 @@ class OrExpansionTest extends TestWithFeService implements MemoPatternMatchSuppo
     @Override
     protected void runBeforeAll() throws Exception {
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         createTables(
                 "CREATE TABLE IF NOT EXISTS t1 (\n"
                         + "    id1 int not null,\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PullUpJoinFromUnionTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PullUpJoinFromUnionTest.java
index 2becded7903..d3946202a5b 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PullUpJoinFromUnionTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PullUpJoinFromUnionTest.java
@@ -27,7 +27,7 @@ class PullUpJoinFromUnionTest extends TestWithFeService implements MemoPatternMa
     @Override
     protected void runBeforeAll() throws Exception {
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         createTables(
                 "CREATE TABLE IF NOT EXISTS t1 (\n"
                         + "    id int not null,\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PushDownAggThroughJoinOnPkFkTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PushDownAggThroughJoinOnPkFkTest.java
index 1ef4653e36c..f2dbf786561 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PushDownAggThroughJoinOnPkFkTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/PushDownAggThroughJoinOnPkFkTest.java
@@ -27,7 +27,7 @@ class PushDownAggThroughJoinOnPkFkTest extends TestWithFeService implements Memo
     @Override
     protected void runBeforeAll() throws Exception {
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         createTables(
                 "CREATE TABLE IF NOT EXISTS pri (\n"
                         + "    id1 int not null,\n"
diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/eageraggregation/EagerAggRewriterTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/eageraggregation/EagerAggRewriterTest.java
index 1b7a312efd6..4b0561ccd0f 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/eageraggregation/EagerAggRewriterTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/eageraggregation/EagerAggRewriterTest.java
@@ -27,7 +27,7 @@ class EagerAggRewriterTest extends TestWithFeService implements MemoPatternMatch
     @Override
     protected void runBeforeAll() throws Exception {
         createDatabase("test");
-        connectContext.setDatabase("default_cluster:test");
+        connectContext.setDatabase("test");
         createTables(
                 "CREATE TABLE IF NOT EXISTS t1 (\n"
                         + "    id1 int not null,\n"
diff --git a/regression-test/data/nereids_rules_p0/bindExpression/bind_dbname_ignore_cluster.out b/regression-test/data/nereids_rules_p0/bindExpression/bind_dbname_ignore_cluster.out
deleted file mode 100644
index b07b84f44a3..00000000000
--- a/regression-test/data/nereids_rules_p0/bindExpression/bind_dbname_ignore_cluster.out
+++ /dev/null
@@ -1,4 +0,0 @@
--- This file is automatically generated. You should know what you did if you want to edit this
--- !test_update --
-2	10
-
diff --git a/regression-test/suites/nereids_rules_p0/bindExpression/bind_dbname_ignore_cluster.groovy b/regression-test/suites/nereids_rules_p0/bindExpression/bind_dbname_ignore_cluster.groovy
deleted file mode 100644
index a17d1742133..00000000000
--- a/regression-test/suites/nereids_rules_p0/bindExpression/bind_dbname_ignore_cluster.groovy
+++ /dev/null
@@ -1,41 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-suite("test_db_name_ignore_cluster") {
-    String db = context.config.getDbNameByFile(new File(context.file.parent))
-    sql 'set enable_nereids_planner=true'
-    sql 'set enable_nereids_distribute_planner=false'
-    sql "use ${db}"
-    sql "drop table if exists ${db}.test_db_name_ignore_cluster"
-    sql """create table ${db}.test_db_name_ignore_cluster(a int, b int) unique key(a) distributed by hash(a)
-        properties("replication_num"="1");"""
-    sql "select ${db}.test_db_name_ignore_cluster.a from `default_cluster:${db}`.test_db_name_ignore_cluster;"
-    sql "select ${db}.test_db_name_ignore_cluster.* from `default_cluster:${db}`.test_db_name_ignore_cluster;"
-
-    sql "select `default_cluster:${db}`.test_db_name_ignore_cluster.a from `${db}`.test_db_name_ignore_cluster;"
-    sql "select `default_cluster:${db}`.test_db_name_ignore_cluster.* from `${db}`.test_db_name_ignore_cluster;"
-
-    sql "select `default_cluster:${db}`.test_db_name_ignore_cluster.a from `default_cluster:${db}`.test_db_name_ignore_cluster;"
-    sql "select `default_cluster:${db}`.test_db_name_ignore_cluster.* from `default_cluster:${db}`.test_db_name_ignore_cluster;"
-
-    sql "select internal.`${db}`.test_db_name_ignore_cluster.a from internal.`default_cluster:${db}`.test_db_name_ignore_cluster;"
-    sql "select internal.`default_cluster:${db}`.test_db_name_ignore_cluster.* from internal.`${db}`.test_db_name_ignore_cluster;"
-
-    sql "insert into ${db}.test_db_name_ignore_cluster values(2,4)"
-    sql "update `default_cluster:${db}`.test_db_name_ignore_cluster set `${db}`.test_db_name_ignore_cluster.b=10;"
-    sql "update `${db}`.test_db_name_ignore_cluster set `${db}`.test_db_name_ignore_cluster.b=10;"
-    qt_test_update "select * from ${db}.test_db_name_ignore_cluster"
-}
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org