diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java index 6ca96e32ae738e..c1e26372cd0216 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java @@ -8420,6 +8420,9 @@ public AccessPrivilegeWithCols visitPrivilege(DorisParser.PrivilegeContext ctx) } else { String privilegeName = stripQuotes(ctx.name.getText()); AccessPrivilege accessPrivilege = AccessPrivilege.fromName(privilegeName); + if (accessPrivilege == null) { + throw new AnalysisException("Unknown privilege type " + privilegeName); + } List columns = ctx.identifierList() == null ? ImmutableList.of() : visitIdentifierList(ctx.identifierList()); accessPrivilegeWithCols = new AccessPrivilegeWithCols(accessPrivilege, columns); diff --git a/regression-test/suites/auth_p0/test_grant_auth.groovy b/regression-test/suites/auth_p0/test_grant_auth.groovy index c026cfd91eda92..f364c8c13a1efa 100644 --- a/regression-test/suites/auth_p0/test_grant_auth.groovy +++ b/regression-test/suites/auth_p0/test_grant_auth.groovy @@ -24,5 +24,19 @@ suite("test_grant_auth","p0,auth") { sql """CREATE USER '${user}' IDENTIFIED BY '${pwd}'""" sql """grant select_priv on `__internal_schema`.* to ${user}""" + test { + sql """ + grant INSERT_PRIV on *.*.* to ${user} + """ + exception "Unknown privilege type" + } + + test { + sql """ + revoke INSERT_PRIV on *.*.* from ${user} + """ + exception "Unknown privilege type" + } + try_sql("DROP USER ${user}") }