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

spricoder pushed a commit to branch refactor/new_auth
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/refactor/new_auth by this push:
     new e7b949b7e65 Fix Test
e7b949b7e65 is described below

commit e7b949b7e657f640eab1d9e1196023cf906f6540
Author: spricoder <[email protected]>
AuthorDate: Mon Jun 26 01:45:23 2023 +0800

    Fix Test
---
 .../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4  | 208 ++++-----------------
 .../consensus/request/ConfigPhysicalPlanType.java  |   2 +-
 .../request/write/sync/ShowPipePlanV1.java         |   2 +-
 .../impl/pipe/AbstractOperatePipeProcedureV2.java  |   2 +-
 .../confignode/persistence/AuthorInfoTest.java     |  12 +-
 .../confignode/it/IoTDBClusterAuthorityIT.java     |  14 +-
 .../java/org/apache/iotdb/db/it/IoTDBAuthIT.java   | 149 ++++++---------
 .../java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java  |   4 +-
 .../iotdb/db/it/selectinto/IoTDBSelectIntoIT.java  |   4 +-
 .../db/it/trigger/IoTDBTriggerManagementIT.java    |  17 +-
 .../iotdb/zeppelin/it/IoTDBInterpreterIT.java      |   4 +-
 .../commons/auth/authorizer/OpenIdAuthorizer.java  |   2 +-
 .../iotdb/commons/auth/entity/PrivilegeType.java   |  11 +-
 .../org/apache/iotdb/commons/utils/AuthUtils.java  |   2 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |  10 +-
 .../config/executor/ClusterConfigTaskExecutor.java |  14 +-
 .../iotdb/db/mpp/plan/parser/ASTVisitor.java       |  11 +-
 .../trigger/service/TriggerClassLoaderManager.java |   5 +-
 .../iotdb/db/auth/AuthorizerManagerTest.java       |  10 +-
 19 files changed, 165 insertions(+), 318 deletions(-)

diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 
b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
index 9014377237c..79f8ecbab58 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4
@@ -853,140 +853,65 @@ ELSE
 // Privileges Keywords
 
 PRIVILEGE_VALUE
-    : SET_STORAGE_GROUP | DELETE_STORAGE_GROUP | CREATE_DATABASE | 
DELETE_DATABASE
-    | CREATE_TIMESERIES | INSERT_TIMESERIES | READ_TIMESERIES | 
DELETE_TIMESERIES | ALTER_TIMESERIES
-    | CREATE_USER | DELETE_USER | MODIFY_PASSWORD | LIST_USER
-    | GRANT_USER_PRIVILEGE | REVOKE_USER_PRIVILEGE | GRANT_USER_ROLE | 
REVOKE_USER_ROLE
-    | CREATE_ROLE | DELETE_ROLE | LIST_ROLE | GRANT_ROLE_PRIVILEGE | 
REVOKE_ROLE_PRIVILEGE
-    | CREATE_FUNCTION | DROP_FUNCTION | CREATE_TRIGGER | DROP_TRIGGER | 
START_TRIGGER | STOP_TRIGGER
-    | CREATE_CONTINUOUS_QUERY | DROP_CONTINUOUS_QUERY | SHOW_CONTINUOUS_QUERIES
-    | APPLY_TEMPLATE | UPDATE_TEMPLATE | READ_TEMPLATE | 
READ_TEMPLATE_APPLICATION
-    | CREATE_PIPEPLUGIN | DROP_PIPEPLUGIN | SHOW_PIPEPLUGINS | CREATE_PIPE | 
START_PIPE | STOP_PIPE | DROP_PIPE | SHOW_PIPES
-    | CREATE_VIEW | ALTER_VIEW | RENAME_VIEW | DELETE_VIEW
+    : READ_DATA
+    | WRITE_DATA
+    | READ_SCHEMA
+    | WRITE_SCHEMA
+    | USER_PRIVILEGE
+    | ROLE_PRIVILEGE
+    | GRANT_PRIVILEGE
+    | ALTER_PASSWORD
+    | TRIGGER_PRIVILEGE
+    | CONTINUOUS_QUERY_PRIVILEGE
+    | PIPE_PRIVILEGE
     ;
 
-SET_STORAGE_GROUP
-    : S E T '_' S T O R A G E '_' G R O U P
-    ;
-
-DELETE_STORAGE_GROUP
-    : D E L E T E '_' S T O R A G E '_' G R O U P
-    ;
-
-CREATE_DATABASE
-    : C R E A T E '_' D A T A B A S E
-    ;
-
-DELETE_DATABASE
-    : D E L E T E '_' D A T A B A S E
-    ;
-
-CREATE_TIMESERIES
-    : C R E A T E '_' T I M E S E R I E S
+READ_DATA
+    : R E A D '_' D A T A
     ;
 
-INSERT_TIMESERIES
-    : I N S E R T '_' T I M E S E R I E S
+WRITE_DATA
+    : W R I T E '_' D A T A
     ;
 
-READ_TIMESERIES
-    : R E A D '_' T I M E S E R I E S
+READ_SCHEMA
+    : R E A D '_' S C H E M A
     ;
 
-DELETE_TIMESERIES
-    : D E L E T E '_' T I M E S E R I E S
+WRITE_SCHEMA
+    : W R I T E '_' S C H E M A
     ;
 
-ALTER_TIMESERIES
-    : A L T E R '_' T I M E S E R I E S
+USER_PRIVILEGE
+    : U S E R '_' P R I V I L E G E
     ;
 
-CREATE_USER
-    : C R E A T E '_' U S E R
+ROLE_PRIVILEGE
+    : R O L E '_' P R I V I L E G E
     ;
 
-DELETE_USER
-    : D E L E T E '_' U S E R
+GRANT_PRIVILEGE
+    : G R A N T '_' P R I V I L E G E
     ;
 
-MODIFY_PASSWORD
-    : M O D I F Y '_' P A S S W O R D
+ALTER_PASSWORD
+    : A L T E R '_' P A S S W O R D
     ;
 
-LIST_USER
-    : L I S T '_' U S E R
+TRIGGER_PRIVILEGE
+    : T R I G G E R '_' P R I V I L E G E
     ;
 
-GRANT_USER_PRIVILEGE
-    : G R A N T '_' U S E R '_' P R I V I L E G E
+CONTINUOUS_QUERY_PRIVILEGE
+    : C O N T I N U O U S '_' Q U E R Y '_' P R I V I L E G E
     ;
 
-REVOKE_USER_PRIVILEGE
-    : R E V O K E '_' U S E R '_' P R I V I L E G E
+PIPE_PRIVILEGE
+    : P I P E '_' P R I V I L E G E
     ;
 
-GRANT_USER_ROLE
-    : G R A N T '_' U S E R '_' R O L E
-    ;
-
-REVOKE_USER_ROLE
-    : R E V O K E '_' U S E R '_' R O L E
-    ;
-
-CREATE_ROLE
-    : C R E A T E '_' R O L E
-    ;
-
-DELETE_ROLE
-    : D E L E T E '_' R O L E
-    ;
-
-LIST_ROLE
-    : L I S T '_' R O L E
-    ;
-
-GRANT_ROLE_PRIVILEGE
-    : G R A N T '_' R O L E '_' P R I V I L E G E
-    ;
-
-REVOKE_ROLE_PRIVILEGE
-    : R E V O K E '_' R O L E '_' P R I V I L E G E
-    ;
-
-CREATE_FUNCTION
-    : C R E A T E '_' F U N C T I O N
-    ;
-
-DROP_FUNCTION
-    : D R O P '_' F U N C T I O N
-    ;
-
-CREATE_TRIGGER
-    : C R E A T E '_' T R I G G E R
-    ;
-
-DROP_TRIGGER
-    : D R O P '_' T R I G G E R
-    ;
-
-START_TRIGGER
-    : S T A R T '_' T R I G G E R
-    ;
-
-STOP_TRIGGER
-    : S T O P '_' T R I G G E R
-    ;
-
-CREATE_CONTINUOUS_QUERY
-    : C R E A T E '_' C O N T I N U O U S '_' Q U E R Y
-    ;
-
-DROP_CONTINUOUS_QUERY
-    : D R O P '_' C O N T I N U O U S '_' Q U E R Y
-    ;
-
-SHOW_CONTINUOUS_QUERIES
-    : S H O W '_' C O N T I N U O U S '_' Q U E R I E S
+SET_STORAGE_GROUP
+    : S E T '_' S T O R A G E '_' G R O U P
     ;
 
 SCHEMA_REPLICATION_FACTOR
@@ -1009,69 +934,6 @@ DATA_REGION_GROUP_NUM
     : D A T A '_' R E G I O N '_' G R O U P '_' N U M
     ;
 
-APPLY_TEMPLATE
-    : A P P L Y '_' T E M P L A T E
-    ;
-
-UPDATE_TEMPLATE
-    : U P D A T E '_' T E M P L A T E
-    ;
-
-READ_TEMPLATE
-    : R E A D '_' T E M P L A T E
-    ;
-
-READ_TEMPLATE_APPLICATION
-    : R E A D '_' T E M P L A T E '_' A P P L I C A T I O N
-    ;
-
-CREATE_PIPEPLUGIN
-    : C R E A T E '_' P I P E P L U G I N
-    ;
-
-DROP_PIPEPLUGIN
-    : D R O P '_' P I P E P L U G I N
-    ;
-
-SHOW_PIPEPLUGINS
-    : S H O W '_' P I P E P L U G I N S
-    ;
-CREATE_PIPE
-    : C R E A T E '_' P I P E
-    ;
-
-START_PIPE
-    : S T A R T '_' P I P E
-    ;
-
-STOP_PIPE
-    : S T O P '_' P I P E
-    ;
-
-DROP_PIPE
-    : D R O P '_' P I P E
-    ;
-
-SHOW_PIPES
-    : S H O W '_' P I P E S
-    ;
-
-CREATE_VIEW
-    : C R E A T E '_' V I E W
-    ;
-
-ALTER_VIEW
-    : A L T E R '_' V I E W
-    ;
-
-RENAME_VIEW
-    : R E N A M E '_' V I E W
-    ;
-
-DELETE_VIEW
-    : D E L E T E '_' V I E W
-    ;
-
 /**
  * 3. Operators
  */
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
index b4ab2ad4953..d0b249d9e75 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/ConfigPhysicalPlanType.java
@@ -175,7 +175,7 @@ public enum ConfigPhysicalPlanType {
 
   /** Pipe Task */
   CreatePipeV2((short) 1500),
-  /** START PIPE & STOP PIPE */
+  /** START PIPE_PRIVILEGE & STOP PIPE_PRIVILEGE */
   SetPipeStatusV2((short) 1501),
   DropPipeV2((short) 1502),
   ShowPipeV2((short) 1503),
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/sync/ShowPipePlanV1.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/sync/ShowPipePlanV1.java
index 0acf6c277d5..2872d8adcd4 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/sync/ShowPipePlanV1.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/sync/ShowPipePlanV1.java
@@ -29,7 +29,7 @@ import java.nio.ByteBuffer;
 // Deprecated, restored for upgrade
 @Deprecated
 public class ShowPipePlanV1 extends ConfigPhysicalPlan {
-  /** empty pipeName means show all PIPE */
+  /** empty pipeName means show all PIPE_PRIVILEGE */
   private String pipeName;
 
   public ShowPipePlanV1() {
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
index 27a9fd1de25..c0e577ccc33 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/pipe/AbstractOperatePipeProcedureV2.java
@@ -40,7 +40,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 /**
- * This procedure manage 4 kinds of PIPE operations: CREATE, START, STOP and 
DROP.
+ * This procedure manage 4 kinds of PIPE_PRIVILEGE operations: CREATE, START, 
STOP and DROP.
  *
  * <p>This class extends AbstractNodeProcedure to make sure that pipe task 
procedures can be
  * executed in sequence and node procedures can be locked when a pipe task 
procedure is running.
diff --git 
a/confignode/src/test/java/org/apache/iotdb/confignode/persistence/AuthorInfoTest.java
 
b/confignode/src/test/java/org/apache/iotdb/confignode/persistence/AuthorInfoTest.java
index 63ff85d1669..6d11974d119 100644
--- 
a/confignode/src/test/java/org/apache/iotdb/confignode/persistence/AuthorInfoTest.java
+++ 
b/confignode/src/test/java/org/apache/iotdb/confignode/persistence/AuthorInfoTest.java
@@ -86,10 +86,10 @@ public class AuthorInfoTest {
     AuthorPlan authorPlan;
 
     Set<Integer> privilegeList = new HashSet<>();
-    privilegeList.add(PrivilegeType.USER.ordinal());
+    privilegeList.add(PrivilegeType.USER_PRIVILEGE.ordinal());
 
     Set<Integer> revokePrivilege = new HashSet<>();
-    revokePrivilege.add(PrivilegeType.USER.ordinal());
+    revokePrivilege.add(PrivilegeType.USER_PRIVILEGE.ordinal());
 
     List<String> privilege = new ArrayList<>();
 
@@ -117,7 +117,9 @@ public class AuthorInfoTest {
 
     // check user privileges
     status =
-        authorInfo.checkUserPrivileges("user0", paths, 
PrivilegeType.USER.ordinal()).getStatus();
+        authorInfo
+            .checkUserPrivileges("user0", paths, 
PrivilegeType.USER_PRIVILEGE.ordinal())
+            .getStatus();
     Assert.assertEquals(TSStatusCode.NO_PERMISSION.getStatusCode(), 
status.getCode());
 
     // drop user
@@ -208,7 +210,9 @@ public class AuthorInfoTest {
 
     // check user privileges
     status =
-        authorInfo.checkUserPrivileges("user0", paths, 
PrivilegeType.USER.ordinal()).getStatus();
+        authorInfo
+            .checkUserPrivileges("user0", paths, 
PrivilegeType.USER_PRIVILEGE.ordinal())
+            .getStatus();
     Assert.assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(), 
status.getCode());
 
     // grant role
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
index 77ee9c046b0..39948ecf2c3 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/confignode/it/IoTDBClusterAuthorityIT.java
@@ -120,13 +120,13 @@ public class IoTDBClusterAuthorityIT {
     TCheckUserPrivilegesReq checkUserPrivilegesReq;
 
     Set<Integer> privilegeList = new HashSet<>();
-    privilegeList.add(PrivilegeType.USER.ordinal());
+    privilegeList.add(PrivilegeType.USER_PRIVILEGE.ordinal());
 
     Set<Integer> revokePrivilege = new HashSet<>();
-    revokePrivilege.add(PrivilegeType.USER.ordinal());
+    revokePrivilege.add(PrivilegeType.USER_PRIVILEGE.ordinal());
 
     List<String> privilege = new ArrayList<>();
-    privilege.add("root.** : USER");
+    privilege.add("root.** : USER_PRIVILEGE");
 
     List<PartialPath> paths = new ArrayList<>();
     paths.add(new PartialPath("root.ln.**"));
@@ -154,7 +154,9 @@ public class IoTDBClusterAuthorityIT {
       // check user privileges
       checkUserPrivilegesReq =
           new TCheckUserPrivilegesReq(
-              "tempuser0", AuthUtils.serializePartialPathList(paths), 
PrivilegeType.USER.ordinal());
+              "tempuser0",
+              AuthUtils.serializePartialPathList(paths),
+              PrivilegeType.USER_PRIVILEGE.ordinal());
       status = client.checkUserPrivileges(checkUserPrivilegesReq).getStatus();
       assertEquals(TSStatusCode.NO_PERMISSION.getStatusCode(), 
status.getCode());
 
@@ -263,7 +265,9 @@ public class IoTDBClusterAuthorityIT {
       // check user privileges
       checkUserPrivilegesReq =
           new TCheckUserPrivilegesReq(
-              "tempuser0", AuthUtils.serializePartialPathList(paths), 
PrivilegeType.USER.ordinal());
+              "tempuser0",
+              AuthUtils.serializePartialPathList(paths),
+              PrivilegeType.USER_PRIVILEGE.ordinal());
       status = client.checkUserPrivileges(checkUserPrivilegesReq).getStatus();
       assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(), 
status.getCode());
 
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBAuthIT.java 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBAuthIT.java
index 389e7e39b86..dd324dc5238 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBAuthIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBAuthIT.java
@@ -81,7 +81,7 @@ public class IoTDBAuthIT {
             () -> userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES 
(100, 100)"));
         Assert.assertThrows(
             SQLException.class,
-            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
CREATE_TIMESERIES ON root.a"));
+            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA ON root.a"));
 
         adminStmt.execute("GRANT USER tempuser PRIVILEGES ALL on root.**");
 
@@ -89,11 +89,11 @@ public class IoTDBAuthIT {
         userStmt.execute("CREATE TIMESERIES root.a.b WITH 
DATATYPE=INT32,ENCODING=PLAIN");
         userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (100, 100)");
         userStmt.execute("SELECT * from root.a");
-        userStmt.execute("GRANT USER tempuser PRIVILEGES SET_STORAGE_GROUP ON 
root.a");
-        userStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON 
root.b.b");
+        userStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a");
+        userStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.b.b");
 
         adminStmt.execute("REVOKE USER tempuser PRIVILEGES ALL on root.**");
-        adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_TIMESERIES 
ON root.b.b");
+        adminStmt.execute("REVOKE USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.b.b");
 
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE 
DATABASE root.b"));
         Assert.assertThrows(
@@ -106,7 +106,7 @@ public class IoTDBAuthIT {
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("SELECT 
* from root.a"));
         Assert.assertThrows(
             SQLException.class,
-            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
CREATE_TIMESERIES ON root.a"));
+            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA ON root.a"));
       }
     }
   }
@@ -123,20 +123,10 @@ public class IoTDBAuthIT {
         Assert.assertThrows(
             SQLException.class, () -> userStmt.execute("CREATE DATABASE 
root.sgtest"));
 
-        adminStmt.execute("GRANT USER sgtest PRIVILEGES CREATE_DATABASE ON 
root.*");
+        adminStmt.execute("GRANT USER sgtest PRIVILEGES WRITE_SCHEMA ON 
root.*");
 
         try {
           userStmt.execute("CREATE DATABASE root.sgtest");
-        } catch (SQLException e) {
-          fail(e.getMessage());
-        }
-
-        Assert.assertThrows(
-            SQLException.class, () -> userStmt.execute("DELETE DATABASE 
root.sgtest"));
-
-        adminStmt.execute("GRANT USER sgtest PRIVILEGES DELETE_STORAGE_GROUP 
ON root.*");
-
-        try {
           userStmt.execute("DELETE DATABASE root.sgtest");
         } catch (SQLException e) {
           fail(e.getMessage());
@@ -197,65 +187,56 @@ public class IoTDBAuthIT {
         // grant a non-existing user
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("GRANT USER nulluser PRIVILEGES 
CREATE_DATABASE on root.a"));
+            () -> adminStmt.execute("GRANT USER nulluser PRIVILEGES 
WRITE_SCHEMA on root.a"));
         // grant a non-existing privilege
         Assert.assertThrows(
             SQLException.class,
             () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
NOT_A_PRIVILEGE on root.a"));
         // duplicate grant
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_USER on 
root.**");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES USER_PRIVILEGE on 
root.**");
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
CREATE_USER on root.**"));
+            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
USER_PRIVILEGE on root.**"));
         // grant on a illegal seriesPath
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
DELETE_TIMESERIES on a.b"));
+            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA on a.b"));
         // grant admin
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("GRANT USER root PRIVILEGES 
DELETE_TIMESERIES on root.a.b"));
+            () -> adminStmt.execute("GRANT USER root PRIVILEGES WRITE_SCHEMA 
on root.a.b"));
         // no privilege to grant
         Assert.assertThrows(
             SQLException.class,
-            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
DELETE_TIMESERIES on root.a.b"));
+            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA on root.a.b"));
         // revoke a non-existing privilege
-        adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_USER on 
root.**");
+        adminStmt.execute("REVOKE USER tempuser PRIVILEGES USER_PRIVILEGE on 
root.**");
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("REVOKE USER tempuser PRIVILEGES 
CREATE_USER on root.**"));
+            () -> adminStmt.execute("REVOKE USER tempuser PRIVILEGES 
USER_PRIVILEGE on root.**"));
         // revoke a non-existing user
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("REVOKE USER tempuser1 PRIVILEGES 
CREATE_USER on root.**"));
+            () -> adminStmt.execute("REVOKE USER tempuser1 PRIVILEGES 
USER_PRIVILEGE on root.**"));
         // revoke on a illegal seriesPath
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("REVOKE USER tempuser PRIVILEGES 
DELETE_TIMESERIES on a.b"));
+            () -> adminStmt.execute("REVOKE USER tempuser PRIVILEGES 
WRITE_SCHEMA on a.b"));
         // revoke admin
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("REVOKE USER root PRIVILEGES 
DELETE_TIMESERIES on root.a.b"));
+            () -> adminStmt.execute("REVOKE USER root PRIVILEGES WRITE_SCHEMA 
on root.a.b"));
         // no privilege to revoke
         Assert.assertThrows(
             SQLException.class,
-            () ->
-                userStmt.execute("REVOKE USER tempuser PRIVILEGES 
DELETE_TIMESERIES on root.a.b"));
+            () -> userStmt.execute("REVOKE USER tempuser PRIVILEGES 
WRITE_SCHEMA on root.a.b"));
         // grant privilege to grant
         Assert.assertThrows(
             SQLException.class,
-            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
DELETE_TIMESERIES on root.a.b"));
+            () -> userStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA on root.a.b"));
 
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES GRANT_USER_PRIVILEGE 
on root.**");
-        userStmt.execute("GRANT USER tempuser PRIVILEGES DELETE_TIMESERIES on 
root.**");
-
-        // grant privilege to revoke
-        Assert.assertThrows(
-            SQLException.class,
-            () -> userStmt.execute("REVOKE USER tempuser PRIVILEGES 
DELETE_TIMESERIES on root.**"));
-
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES 
REVOKE_USER_PRIVILEGE on root.**");
-        userStmt.execute("REVOKE USER tempuser PRIVILEGES DELETE_TIMESERIES on 
root.**");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES GRANT_PRIVILEGE on 
root.**");
+        userStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA on 
root.**");
       }
     }
   }
@@ -273,22 +254,22 @@ public class IoTDBAuthIT {
         // grant and revoke the user the privilege to create time series
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE 
DATABASE root.a"));
 
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_DATABASE ON 
root.a");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a");
         userStmt.execute("CREATE DATABASE root.a");
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON 
root.a.b");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a.b");
         userStmt.execute("CREATE TIMESERIES root.a.b WITH 
DATATYPE=INT32,ENCODING=PLAIN");
         // no privilege to create this one
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE 
DATABASE root.b"));
         // privilege already exists
         Assert.assertThrows(
             SQLException.class,
-            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
CREATE_DATABASE ON root.a"));
+            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA ON root.a"));
         // no privilege to create this one any more
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE 
DATABASE root.a"));
         // no privilege to create timeseries
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("CREATE 
DATABASE root.a"));
 
-        adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_DATABASE ON 
root.a");
+        adminStmt.execute("REVOKE USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a");
         // no privilege to create this one any more
         Assert.assertThrows(
             SQLException.class,
@@ -297,10 +278,9 @@ public class IoTDBAuthIT {
         // privilege already exists
         Assert.assertThrows(
             SQLException.class,
-            () ->
-                adminStmt.execute("GRANT USER tempuser PRIVILEGES 
CREATE_TIMESERIES ON root.a.b"));
+            () -> adminStmt.execute("GRANT USER tempuser PRIVILEGES 
WRITE_SCHEMA ON root.a.b"));
 
-        adminStmt.execute("REVOKE USER tempuser PRIVILEGES CREATE_TIMESERIES 
ON root.a.b");
+        adminStmt.execute("REVOKE USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a.b");
         // no privilege to create this one any more
         Assert.assertThrows(
             SQLException.class,
@@ -319,9 +299,9 @@ public class IoTDBAuthIT {
       try (Connection userCon = EnvFactory.getEnv().getConnection("tempuser", 
"temppw");
           Statement userStmt = userCon.createStatement()) {
 
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_DATABASE ON 
root.a");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a");
         userStmt.execute("CREATE DATABASE root.a");
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES CREATE_TIMESERIES ON 
root.a.b");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA ON 
root.a.b");
         userStmt.execute("CREATE TIMESERIES root.a.b WITH 
DATATYPE=INT32,ENCODING=PLAIN");
 
         // grant privilege to insert
@@ -329,25 +309,25 @@ public class IoTDBAuthIT {
             SQLException.class,
             () -> userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES 
(1,100)"));
 
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES INSERT_TIMESERIES on 
root.a.**");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_DATA on 
root.a.**");
         userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES (1,100)");
 
         // revoke privilege to insert
-        adminStmt.execute("REVOKE USER tempuser PRIVILEGES INSERT_TIMESERIES 
on root.a.**");
+        adminStmt.execute("REVOKE USER tempuser PRIVILEGES WRITE_DATA on 
root.a.**");
         Assert.assertThrows(
             SQLException.class,
             () -> userStmt.execute("INSERT INTO root.a(timestamp, b) VALUES 
(1,100)"));
         // grant privilege to query
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("SELECT 
* from root.a"));
 
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES READ_TIMESERIES on 
root.**");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES READ_DATA on 
root.**");
         ResultSet resultSet = userStmt.executeQuery("SELECT * from root.a");
         resultSet.close();
         resultSet = userStmt.executeQuery("SELECT LAST b from root.a");
         resultSet.close();
 
         // revoke privilege to query
-        adminStmt.execute("REVOKE USER tempuser PRIVILEGES READ_TIMESERIES on 
root.**");
+        adminStmt.execute("REVOKE USER tempuser PRIVILEGES READ_DATA on 
root.**");
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("SELECT 
* from root.a"));
       }
     }
@@ -366,7 +346,7 @@ public class IoTDBAuthIT {
 
         adminStmt.execute("CREATE ROLE admin");
         adminStmt.execute(
-            "GRANT ROLE admin PRIVILEGES 
CREATE_DATABASE,CREATE_TIMESERIES,DELETE_TIMESERIES,READ_TIMESERIES,INSERT_TIMESERIES
 on root.**");
+            "GRANT ROLE admin PRIVILEGES WRITE_SCHEMA,READ_DATA,WRITE_DATA on 
root.**");
         adminStmt.execute("GRANT admin TO tempuser");
 
         userStmt.execute("CREATE DATABASE root.a");
@@ -377,13 +357,8 @@ public class IoTDBAuthIT {
         ResultSet resultSet = userStmt.executeQuery("SELECT * FROM root.**");
         resultSet.close();
 
-        adminStmt.execute("REVOKE ROLE admin PRIVILEGES DELETE_TIMESERIES on 
root.**");
-
-        Assert.assertThrows(
-            SQLException.class,
-            () -> userStmt.execute("DELETE FROM root.* WHERE TIME <= 
1000000000"));
-
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES READ_TIMESERIES on 
root.**");
+        adminStmt.execute("REVOKE ROLE admin PRIVILEGES WRITE_SCHEMA on 
root.**");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES READ_DATA on 
root.**");
         adminStmt.execute("REVOKE admin FROM tempuser");
         resultSet = userStmt.executeQuery("SELECT * FROM root.**");
         resultSet.close();
@@ -494,37 +469,35 @@ public class IoTDBAuthIT {
 
     try {
       adminStmt.execute("CREATE USER user1 'password1'");
-      adminStmt.execute("GRANT USER user1 PRIVILEGES READ_TIMESERIES ON 
root.a.b");
+      adminStmt.execute("GRANT USER user1 PRIVILEGES READ_SCHEMA ON root.a.b");
       adminStmt.execute("CREATE ROLE role1");
-      adminStmt.execute(
-          "GRANT ROLE role1 PRIVILEGES 
READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.a.b.c");
-      adminStmt.execute(
-          "GRANT ROLE role1 PRIVILEGES 
READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.d.b.c");
+      adminStmt.execute("GRANT ROLE role1 PRIVILEGES READ_SCHEMA,WRITE_DATA ON 
root.a.b.c");
+      adminStmt.execute("GRANT ROLE role1 PRIVILEGES READ_SCHEMA,WRITE_DATA ON 
root.d.b.c");
       adminStmt.execute("GRANT role1 TO user1");
 
       ResultSet resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER 
user1");
       String ans =
-          ",root.a.b : READ_TIMESERIES"
+          ",root.a.b : READ_SCHEMA"
               + ",\n"
-              + "role1,root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES"
+              + "role1,root.a.b.c : WRITE_DATA READ_SCHEMA"
               + ",\n"
-              + "role1,root.d.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES"
+              + "role1,root.d.b.c : WRITE_DATA READ_SCHEMA"
               + ",\n";
       try {
         validateResultSet(resultSet, ans);
 
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1 ON 
root.a.b.c");
-        ans = "role1,root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES,\n";
+        ans = "role1,root.a.b.c : WRITE_DATA READ_SCHEMA,\n";
         validateResultSet(resultSet, ans);
 
         adminStmt.execute("REVOKE role1 from user1");
 
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1");
-        ans = ",root.a.b : READ_TIMESERIES,\n";
+        ans = ",root.a.b : READ_SCHEMA,\n";
         validateResultSet(resultSet, ans);
 
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES USER user1 ON 
root.a.**");
-        ans = ",root.a.b : READ_TIMESERIES,\n";
+        ans = ",root.a.b : READ_SCHEMA,\n";
         validateResultSet(resultSet, ans);
       } finally {
         resultSet.close();
@@ -548,31 +521,24 @@ public class IoTDBAuthIT {
         // not granted list role privilege, should return empty
         validateResultSet(resultSet, ans);
 
-        adminStmt.execute(
-            "GRANT ROLE role1 PRIVILEGES 
READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.a.b.c");
-        adminStmt.execute(
-            "GRANT ROLE role1 PRIVILEGES 
READ_TIMESERIES,INSERT_TIMESERIES,DELETE_TIMESERIES ON root.d.b.c");
+        adminStmt.execute("GRANT ROLE role1 PRIVILEGES READ_SCHEMA,WRITE_DATA 
ON root.a.b.c");
+        adminStmt.execute("GRANT ROLE role1 PRIVILEGES READ_SCHEMA,WRITE_DATA 
ON root.d.b.c");
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1");
-        ans =
-            "root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES,\n"
-                + "root.d.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES,\n";
+        ans = "root.a.b.c : WRITE_DATA READ_SCHEMA,\n" + "root.d.b.c : 
WRITE_DATA READ_SCHEMAS,\n";
         validateResultSet(resultSet, ans);
 
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1 ON 
root.a.b.c");
-        ans = "root.a.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES,\n";
+        ans = "root.a.b.c : WRITE_DATA READ_SCHEMA,\n";
         validateResultSet(resultSet, ans);
 
-        adminStmt.execute(
-            "REVOKE ROLE role1 PRIVILEGES INSERT_TIMESERIES,DELETE_TIMESERIES 
ON root.a.b.c");
+        adminStmt.execute("REVOKE ROLE role1 PRIVILEGES READ_SCHEMA,WRITE_DATA 
ON root.a.b.c");
 
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1");
-        ans =
-            "root.a.b.c : READ_TIMESERIES,\n"
-                + "root.d.b.c : INSERT_TIMESERIES READ_TIMESERIES 
DELETE_TIMESERIES,\n";
+        ans = "root.a.b.c : READ_SCHEMA,\n" + "root.d.b.c : WRITE_DATA 
READ_SCHEMA,\n";
         validateResultSet(resultSet, ans);
 
         resultSet = adminStmt.executeQuery("LIST PRIVILEGES ROLE role1 ON 
root.a.b.c");
-        ans = "root.a.b.c : READ_TIMESERIES,\n";
+        ans = "root.a.b.c : READ_SCHEMA,\n";
         validateResultSet(resultSet, ans);
       } finally {
         resultSet.close();
@@ -734,7 +700,7 @@ public class IoTDBAuthIT {
       try {
         Assert.assertThrows(SQLException.class, () -> userStmt.execute("LIST 
USER"));
         // with list user privilege
-        adminStmt.execute("GRANT USER tempuser PRIVILEGES LIST_USER on 
root.**");
+        adminStmt.execute("GRANT USER tempuser PRIVILEGES USER_PRIVILEGE on 
root.**");
         ResultSet resultSet = userStmt.executeQuery("LIST USER");
         String ans =
             "root,\n"
@@ -777,7 +743,7 @@ public class IoTDBAuthIT {
     try (Connection adminCon = EnvFactory.getEnv().getConnection();
         Statement adminStmt = adminCon.createStatement()) {
       adminStmt.execute("CREATE USER tempuser 'temppw'");
-      adminStmt.execute("GRANT USER tempuser PRIVILEGES INSERT_TIMESERIES on 
root.sg1.**");
+      adminStmt.execute("GRANT USER tempuser PRIVILEGES WRITE_SCHEMA on 
root.sg1.**");
 
       try (Connection userCon = EnvFactory.getEnv().getConnection("tempuser", 
"temppw");
           Statement userStatement = userCon.createStatement()) {
@@ -814,8 +780,7 @@ public class IoTDBAuthIT {
         Statement adminStatement = adminConnection.createStatement()) {
       adminStatement.execute("CREATE USER a_application 'a_application'");
       adminStatement.execute("CREATE ROLE application_role");
-      adminStatement.execute(
-          "GRANT ROLE application_role PRIVILEGES READ_TIMESERIES ON 
root.test.**");
+      adminStatement.execute("GRANT ROLE application_role PRIVILEGES 
READ_SCHEMA ON root.test.**");
       adminStatement.execute("GRANT application_role TO a_application");
 
       adminStatement.execute("INSERT INTO root.test(time, s1, s2, s3) 
VALUES(1, 2, 3, 4)");
@@ -839,8 +804,8 @@ public class IoTDBAuthIT {
       adminStatement.execute("CREATE USER user01 'pass1234'");
       adminStatement.execute("CREATE USER user02 'pass1234'");
       adminStatement.execute("CREATE ROLE manager");
-      adminStatement.execute("GRANT USER user01 PRIVILEGES GRANT_USER_ROLE on 
root.**");
-      adminStatement.execute("GRANT USER user01 PRIVILEGES REVOKE_USER_ROLE on 
root.**");
+      adminStatement.execute("GRANT USER user01 PRIVILEGES ROLE_PRIVILEGE on 
root.**");
+      adminStatement.execute("GRANT USER user01 PRIVILEGES ROLE_PRIVILEGE on 
root.**");
     }
 
     try (Connection userCon = EnvFactory.getEnv().getConnection("user01", 
"pass1234");
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java 
b/integration-test/src/test/java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java
index 1168efd62be..bad025be5b0 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java
@@ -541,11 +541,11 @@ public class IoTDBCQIT {
         } catch (Exception e) {
           assertEquals(
               TSStatusCode.NO_PERMISSION.getStatusCode()
-                  + ": No permissions for this operation, please add privilege 
SHOW_CONTINUOUS_QUERIES",
+                  + ": No permissions for this operation, please add privilege 
CONTINUOUS_QUERY_PRIVILEGE",
               e.getMessage());
         }
 
-        statement.execute("GRANT USER `zmty` PRIVILEGES 
SHOW_CONTINUOUS_QUERIES");
+        statement.execute("GRANT USER `zmty` PRIVILEGES 
CONTINUOUS_QUERY_PRIVILEGE");
 
         try (ResultSet resultSet = statement2.executeQuery("show CQS")) {
 
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
index 4c0b47d1617..4532799eb62 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/selectinto/IoTDBSelectIntoIT.java
@@ -550,7 +550,7 @@ public class IoTDBSelectIntoIT {
     try (Connection adminCon = EnvFactory.getEnv().getConnection();
         Statement adminStmt = adminCon.createStatement()) {
       adminStmt.execute("CREATE USER tempuser1 'temppw1'");
-      adminStmt.execute("GRANT USER tempuser1 PRIVILEGES INSERT_TIMESERIES on 
root.sg_bk.**;");
+      adminStmt.execute("GRANT USER tempuser1 PRIVILEGES WRITE_DATA on 
root.sg_bk.**;");
 
       try (Connection userCon = EnvFactory.getEnv().getConnection("tempuser1", 
"temppw1");
           Statement userStmt = userCon.createStatement()) {
@@ -572,7 +572,7 @@ public class IoTDBSelectIntoIT {
     try (Connection adminCon = EnvFactory.getEnv().getConnection();
         Statement adminStmt = adminCon.createStatement()) {
       adminStmt.execute("CREATE USER tempuser2 'temppw2'");
-      adminStmt.execute("GRANT USER tempuser2 PRIVILEGES READ_TIMESERIES on 
root.sg.**;");
+      adminStmt.execute("GRANT USER tempuser2 PRIVILEGES READ_SCHEMA on 
root.sg.**;");
 
       try (Connection userCon = EnvFactory.getEnv().getConnection("tempuser2", 
"temppw2");
           Statement userStmt = userCon.createStatement()) {
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
index 388089de219..b52e346c54a 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/trigger/IoTDBTriggerManagementIT.java
@@ -546,11 +546,12 @@ public class IoTDBTriggerManagementIT {
         } catch (Exception e) {
           assertEquals(
               TSStatusCode.NO_PERMISSION.getStatusCode()
-                  + ": No permissions for this operation, please add privilege 
CREATE_TRIGGER",
+                  + ": No permissions for this operation, please add privilege 
TRIGGER_PRIVILEGE",
               e.getMessage());
         }
 
-        statement.execute("GRANT USER `zmty` PRIVILEGES CREATE_TRIGGER on 
root.test.stateless.a");
+        statement.execute(
+            "GRANT USER `zmty` PRIVILEGES TRIGGER_PRIVILEGE on 
root.test.stateless.a");
 
         try {
           statement2.execute(
@@ -576,7 +577,7 @@ public class IoTDBTriggerManagementIT {
         } catch (Exception e) {
           assertEquals(
               TSStatusCode.NO_PERMISSION.getStatusCode()
-                  + ": No permissions for this operation, please add privilege 
CREATE_TRIGGER",
+                  + ": No permissions for this operation, please add privilege 
TRIGGER_PRIVILEGE",
               e.getMessage());
         }
       }
@@ -608,11 +609,12 @@ public class IoTDBTriggerManagementIT {
         } catch (Exception e) {
           assertEquals(
               TSStatusCode.NO_PERMISSION.getStatusCode()
-                  + ": No permissions for this operation, please add privilege 
DROP_TRIGGER",
+                  + ": No permissions for this operation, please add privilege 
TRIGGER_PRIVILEGE",
               e.getMessage());
         }
 
-        statement.execute("GRANT USER `zmty` PRIVILEGES CREATE_TRIGGER on 
root.test.stateless.b");
+        statement.execute(
+            "GRANT USER `zmty` PRIVILEGES TRIGGER_PRIVILEGE on 
root.test.stateless.b");
 
         try {
           statement2.execute("drop trigger " + 
STATELESS_TRIGGER_BEFORE_INSERTION_PREFIX + "a");
@@ -620,11 +622,12 @@ public class IoTDBTriggerManagementIT {
         } catch (Exception e) {
           assertEquals(
               TSStatusCode.NO_PERMISSION.getStatusCode()
-                  + ": No permissions for this operation, please add privilege 
DROP_TRIGGER",
+                  + ": No permissions for this operation, please add privilege 
TRIGGER_PRIVILEGE",
               e.getMessage());
         }
 
-        statement.execute("GRANT USER `zmty` PRIVILEGES DROP_TRIGGER on 
root.test.stateless.a");
+        statement.execute(
+            "GRANT USER `zmty` PRIVILEGES TRIGGER_PRIVILEGE on 
root.test.stateless.a");
 
         try {
           statement2.execute("drop trigger " + 
STATELESS_TRIGGER_BEFORE_INSERTION_PREFIX + "a");
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/zeppelin/it/IoTDBInterpreterIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/zeppelin/it/IoTDBInterpreterIT.java
index f88537b2b9b..b977be7ffa5 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/zeppelin/it/IoTDBInterpreterIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/zeppelin/it/IoTDBInterpreterIT.java
@@ -375,8 +375,8 @@ public class IoTDBInterpreterIT {
 
   @Test
   public void testListUser() {
-    interpreter.internalInterpret("CREATE USER user1 'password1'", null);
-    InterpreterResult actual = interpreter.internalInterpret("LIST USER", 
null);
+    interpreter.internalInterpret("CREATE USER_PRIVILEGE user1 'password1'", 
null);
+    InterpreterResult actual = interpreter.internalInterpret("LIST 
USER_PRIVILEGE", null);
     String gt = "user\n" + "root\n" + "user1";
     Assert.assertNotNull(actual);
     Assert.assertEquals(Code.SUCCESS, actual.code());
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
index c43a34acf6c..dc6ed5a5416 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
@@ -248,7 +248,7 @@ public class OpenIdAuthorizer extends BasicAuthorizer {
         ((Map<String, List<String>>) claims.get("realm_access")).get("roles");
     if (!availableRoles.contains(IOTDB_ADMIN_ROLE_NAME)) {
       logger.warn(
-          "Given Token has no admin rights, is there a ROLE with name {} in 
'realm_access' role set?",
+          "Given Token has no admin rights, is there a ROLE_PRIVILEGE with 
name {} in 'realm_access' role set?",
           IOTDB_ADMIN_ROLE_NAME);
       return false;
     }
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PrivilegeType.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PrivilegeType.java
index 6805f9e2e01..5a38f3f64c6 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PrivilegeType.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/entity/PrivilegeType.java
@@ -21,18 +21,17 @@ package org.apache.iotdb.commons.auth.entity;
 
 /** This enum class contains all available privileges in IoTDB. */
 public enum PrivilegeType {
-  CREATE_DATABASE(true),
   READ_DATA(true),
   WRITE_DATA(true),
   READ_SCHEMA(true),
   WRITE_SCHEMA(true),
-  USER,
-  ROLE,
+  USER_PRIVILEGE,
+  ROLE_PRIVILEGE,
   GRANT_PRIVILEGE,
   ALTER_PASSWORD,
-  TRIGGER(true),
-  CONTINUOUS_QUERY,
-  PIPE,
+  TRIGGER_PRIVILEGE(true),
+  CONTINUOUS_QUERY_PRIVILEGE,
+  PIPE_PRIVILEGE,
   ALL,
   ;
 
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java 
b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
index aa88beefcc4..d6d1f498203 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
@@ -200,7 +200,7 @@ public class AuthUtils {
         case WRITE_SCHEMA:
         case READ_DATA:
         case WRITE_DATA:
-        case TRIGGER:
+        case TRIGGER_PRIVILEGE:
           return;
         default:
           throw new AuthException(
diff --git 
a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java 
b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index 9f2c3801d52..7399087b8cc 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -200,13 +200,13 @@ public class AuthorityChecker {
       case LIST_USER:
       case LIST_USER_ROLES:
       case LIST_USER_PRIVILEGE:
-        return PrivilegeType.USER.ordinal();
+        return PrivilegeType.USER_PRIVILEGE.ordinal();
       case CREATE_ROLE:
       case DELETE_ROLE:
       case LIST_ROLE:
       case LIST_ROLE_USERS:
       case LIST_ROLE_PRIVILEGE:
-        return PrivilegeType.ROLE.ordinal();
+        return PrivilegeType.ROLE_PRIVILEGE.ordinal();
       case MODIFY_PASSWORD:
         return PrivilegeType.ALTER_PASSWORD.ordinal();
       case GRANT_USER_PRIVILEGE:
@@ -218,11 +218,11 @@ public class AuthorityChecker {
         return PrivilegeType.GRANT_PRIVILEGE.ordinal();
       case CREATE_TRIGGER:
       case DROP_TRIGGER:
-        return PrivilegeType.TRIGGER.ordinal();
+        return PrivilegeType.TRIGGER_PRIVILEGE.ordinal();
       case CREATE_CONTINUOUS_QUERY:
       case DROP_CONTINUOUS_QUERY:
       case SHOW_CONTINUOUS_QUERIES:
-        return PrivilegeType.CONTINUOUS_QUERY.ordinal();
+        return PrivilegeType.CONTINUOUS_QUERY_PRIVILEGE.ordinal();
       case CREATE_PIPEPLUGIN:
       case DROP_PIPEPLUGIN:
       case SHOW_PIPEPLUGINS:
@@ -231,7 +231,7 @@ public class AuthorityChecker {
       case STOP_PIPE:
       case DROP_PIPE:
       case SHOW_PIPES:
-        return PrivilegeType.PIPE.ordinal();
+        return PrivilegeType.PIPE_PRIVILEGE.ordinal();
       default:
         logger.error("Unrecognizable operator type ({}) for 
AuthorityChecker.", type);
         return -1;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
index 2cd03420959..4c03e8f3353 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/execution/config/executor/ClusterConfigTaskExecutor.java
@@ -1523,7 +1523,7 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
       TSStatus tsStatus = configNodeClient.createPipe(req);
       if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
         LOGGER.warn(
-            "Failed to create PIPE {} in config node, status is {}.",
+            "Failed to create PIPE_PRIVILEGE {} in config node, status is {}.",
             createPipeStatement.getPipeName(),
             tsStatus);
         future.setException(new IoTDBException(tsStatus.message, 
tsStatus.code));
@@ -1544,7 +1544,9 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
       TSStatus tsStatus = 
configNodeClient.startPipe(startPipeStatement.getPipeName());
       if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
         LOGGER.warn(
-            "Failed to start PIPE {}, status is {}.", 
startPipeStatement.getPipeName(), tsStatus);
+            "Failed to start PIPE_PRIVILEGE {}, status is {}.",
+            startPipeStatement.getPipeName(),
+            tsStatus);
         future.setException(new IoTDBException(tsStatus.message, 
tsStatus.code));
       } else {
         future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS));
@@ -1563,7 +1565,9 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
       TSStatus tsStatus = 
configNodeClient.dropPipe(dropPipeStatement.getPipeName());
       if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
         LOGGER.warn(
-            "Failed to drop PIPE {}, status is {}.", 
dropPipeStatement.getPipeName(), tsStatus);
+            "Failed to drop PIPE_PRIVILEGE {}, status is {}.",
+            dropPipeStatement.getPipeName(),
+            tsStatus);
         future.setException(new IoTDBException(tsStatus.message, 
tsStatus.code));
       } else {
         future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS));
@@ -1582,7 +1586,9 @@ public class ClusterConfigTaskExecutor implements 
IConfigTaskExecutor {
       TSStatus tsStatus = 
configNodeClient.stopPipe(stopPipeStatement.getPipeName());
       if (TSStatusCode.SUCCESS_STATUS.getStatusCode() != tsStatus.getCode()) {
         LOGGER.warn(
-            "Failed to stop PIPE {}, status is {}.", 
stopPipeStatement.getPipeName(), tsStatus);
+            "Failed to stop PIPE_PRIVILEGE {}, status is {}.",
+            stopPipeStatement.getPipeName(),
+            tsStatus);
         future.setException(new IoTDBException(tsStatus.message, 
tsStatus.code));
       } else {
         future.set(new ConfigTaskResult(TSStatusCode.SUCCESS_STATUS));
diff --git 
a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java 
b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
index 7e6aad4ab35..2280d408a55 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/parser/ASTVisitor.java
@@ -3502,7 +3502,7 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
     }
   }
 
-  // PIPE
+  // PIPE_PRIVILEGE
 
   @Override
   public Statement visitCreatePipe(IoTDBSqlParser.CreatePipeContext ctx) {
@@ -3575,7 +3575,8 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
     if (ctx.pipeName != null) {
       dropPipeStatement.setPipeName(parseIdentifier(ctx.pipeName.getText()));
     } else {
-      throw new SemanticException("Not support for this sql in DROP PIPE, 
please enter pipename.");
+      throw new SemanticException(
+          "Not support for this sql in DROP PIPE_PRIVILEGE, please enter 
pipename.");
     }
 
     return dropPipeStatement;
@@ -3588,7 +3589,8 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
     if (ctx.pipeName != null) {
       startPipeStatement.setPipeName(parseIdentifier(ctx.pipeName.getText()));
     } else {
-      throw new SemanticException("Not support for this sql in START PIPE, 
please enter pipename.");
+      throw new SemanticException(
+          "Not support for this sql in START PIPE_PRIVILEGE, please enter 
pipename.");
     }
 
     return startPipeStatement;
@@ -3601,7 +3603,8 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
     if (ctx.pipeName != null) {
       stopPipeStatement.setPipeName(parseIdentifier(ctx.pipeName.getText()));
     } else {
-      throw new SemanticException("Not support for this sql in STOP PIPE, 
please enter pipename.");
+      throw new SemanticException(
+          "Not support for this sql in STOP PIPE_PRIVILEGE, please enter 
pipename.");
     }
 
     return stopPipeStatement;
diff --git 
a/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
 
b/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
index e82c82e5581..1826c512a57 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/trigger/service/TriggerClassLoaderManager.java
@@ -38,8 +38,9 @@ public class TriggerClassLoaderManager {
 
   /**
    * activeClassLoader is used to load all classes under libRoot. libRoot may 
be updated before the
-   * user executes CREATE TRIGGER or after the user executes DROP TRIGGER. 
Therefore, we need to
-   * continuously maintain the activeClassLoader so that the classes it loads 
are always up-to-date.
+   * user executes CREATE TRIGGER_PRIVILEGE or after the user executes DROP 
TRIGGER_PRIVILEGE.
+   * Therefore, we need to continuously maintain the activeClassLoader so that 
the classes it loads
+   * are always up-to-date.
    */
   private volatile TriggerClassLoader activeClassLoader;
 
diff --git 
a/server/src/test/java/org/apache/iotdb/db/auth/AuthorizerManagerTest.java 
b/server/src/test/java/org/apache/iotdb/db/auth/AuthorizerManagerTest.java
index 26c66b4bc6a..e77feb08b22 100644
--- a/server/src/test/java/org/apache/iotdb/db/auth/AuthorizerManagerTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/auth/AuthorizerManagerTest.java
@@ -54,7 +54,7 @@ public class AuthorizerManagerTest {
     Set<Integer> privilegesIds = new HashSet<>();
     PathPrivilege privilege = new PathPrivilege();
     List<PathPrivilege> privilegeList = new ArrayList<>();
-    privilegesIds.add(PrivilegeType.ROLE.ordinal());
+    privilegesIds.add(PrivilegeType.ROLE_PRIVILEGE.ordinal());
     privilegesIds.add(PrivilegeType.GRANT_PRIVILEGE.ordinal());
     privilege.setPath(new PartialPath("root.ln"));
     privilege.setPrivileges(privilegesIds);
@@ -108,7 +108,7 @@ public class AuthorizerManagerTest {
             .checkUserPrivileges(
                 "user",
                 Collections.singletonList(new PartialPath("root.ln")),
-                PrivilegeType.ROLE.ordinal())
+                PrivilegeType.ROLE_PRIVILEGE.ordinal())
             .getCode());
     // User does not have permission
     Assert.assertEquals(
@@ -117,7 +117,7 @@ public class AuthorizerManagerTest {
             .checkUserPrivileges(
                 "user",
                 Collections.singletonList(new PartialPath("root.ln")),
-                PrivilegeType.USER.ordinal())
+                PrivilegeType.USER_PRIVILEGE.ordinal())
             .getCode());
 
     // Authenticate users with roles
@@ -153,7 +153,7 @@ public class AuthorizerManagerTest {
             .checkUserPrivileges(
                 "user",
                 Collections.singletonList(new PartialPath("root.ln")),
-                PrivilegeType.ROLE.ordinal())
+                PrivilegeType.ROLE_PRIVILEGE.ordinal())
             .getCode());
     // role does not have permission
     Assert.assertEquals(
@@ -162,7 +162,7 @@ public class AuthorizerManagerTest {
             .checkUserPrivileges(
                 "user",
                 Collections.singletonList(new PartialPath("root.ln")),
-                PrivilegeType.USER.ordinal())
+                PrivilegeType.USER_PRIVILEGE.ordinal())
             .getCode());
 
     authorityFetcher.getAuthorCache().invalidateCache(user.getName(), "");

Reply via email to