diff --git a/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/privileges/polar/PolarSetPasswordHandler.java b/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/privileges/polar/PolarSetPasswordHandler.java index 17910cd89..308a41bf5 100644 --- a/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/privileges/polar/PolarSetPasswordHandler.java +++ b/polardbx-server/src/main/java/com/alibaba/polardbx/server/handler/privileges/polar/PolarSetPasswordHandler.java @@ -17,6 +17,8 @@ package com.alibaba.polardbx.server.handler.privileges.polar; import com.alibaba.polardbx.CobarServer; +import com.alibaba.polardbx.druid.sql.ast.SQLExpr; +import com.alibaba.polardbx.druid.sql.ast.expr.SQLIdentifierExpr; import com.alibaba.polardbx.druid.sql.parser.SQLParserFeature; import com.alibaba.polardbx.server.ServerConnection; import com.alibaba.polardbx.druid.sql.ast.expr.SQLCharExpr; @@ -26,8 +28,6 @@ import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.expr.MySqlUserName; import com.alibaba.polardbx.druid.sql.parser.ByteString; import com.alibaba.polardbx.common.audit.AuditAction; -import com.alibaba.polardbx.common.exception.TddlRuntimeException; -import com.alibaba.polardbx.common.exception.code.ErrorCode; import com.alibaba.polardbx.common.privilege.UserPasswdChecker; import com.alibaba.polardbx.common.utils.GeneralUtil; import com.alibaba.polardbx.common.utils.logger.Logger; @@ -74,7 +74,13 @@ private static List getGrantees(ByteString sql, PolarAccountIn SQLSetStatement statement = (SQLSetStatement) FastsqlUtils.parseSql(sql, SQLParserFeature.IgnoreNameQuotes).get(0); SQLAssignItem assignItem = statement.getItems().get(0); - MySqlUserName userName = (MySqlUserName) assignItem.getTarget(); + SQLExpr target = assignItem.getTarget(); + MySqlUserName userName; + if (target instanceof MySqlUserName) { + userName = (MySqlUserName) target; + } else { + userName = MySqlUserName.fromIdentifier((SQLIdentifierExpr) target); + } String password = ""; if (assignItem.getValue() instanceof SQLCharExpr) {