From 7f806c98d48e87006d3cbd5ce6f7621095f9d2f2 Mon Sep 17 00:00:00 2001
From: CHLK <30882682+CHLK@users.noreply.github.com>
Date: Wed, 3 Jul 2024 10:41:43 +0800
Subject: [PATCH 1/3] fix(audit): client ip length more langer then audit
column client_ip_address (#2863)
* fix(aduit): client ip length more langer then audit column client_ip_address
* fix(aduit): rename getTrulyClientIp to getFirstIpFromRemoteAddress,and move it from WebRequestUtilsTest to AuditUtils
* style: change the position of class comments in NotificationChannelRelationEntity
* style: format AuditUtilsTest
* style: remove /.github/hooks/pre-push from .gitignore
---
.../NotificationChannelRelationEntity.java | 15 ++---
.../odc/service/audit/AuditEventAspect.java | 4 +-
.../odc/service/audit/util/AuditUtils.java | 26 +++++++++
.../service/audit/util/AuditUtilsTest.java | 55 +++++++++++++++++++
4 files changed, 89 insertions(+), 11 deletions(-)
create mode 100644 server/odc-service/src/test/java/com/oceanbase/odc/service/audit/util/AuditUtilsTest.java
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/metadb/notification/NotificationChannelRelationEntity.java b/server/odc-service/src/main/java/com/oceanbase/odc/metadb/notification/NotificationChannelRelationEntity.java
index a3160c92c8..55dc986ed3 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/metadb/notification/NotificationChannelRelationEntity.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/metadb/notification/NotificationChannelRelationEntity.java
@@ -15,16 +15,6 @@
*/
package com.oceanbase.odc.metadb.notification;
-/**
- * @Author: Lebie
- * @Date: 2023/3/20 21:36
- * @Description: []
- */
-/**
- * @Author: Lebie
- * @Date: 2023/3/20 21:36
- * @Description: []
- */
import java.util.Date;
import javax.persistence.Column;
@@ -39,6 +29,11 @@
import lombok.Data;
+/**
+ * @Author: Lebie
+ * @Date: 2023/3/20 21:36
+ * @Description: []
+ */
@Data
@Entity
@Table(name = "notification_policy_channel_relation")
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/AuditEventAspect.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/AuditEventAspect.java
index 4789187478..28b053abc2 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/AuditEventAspect.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/AuditEventAspect.java
@@ -294,7 +294,9 @@ private AuditEvent createAuditEvent(Method method, Object[] args) {
.type(auditEventMeta.getType())
.startTime(new Date())
.serverIpAddress(SystemUtils.getLocalIpAddress())
- .clientIpAddress(WebRequestUtils.getClientAddress(servletRequest))
+ .clientIpAddress(
+ AuditUtils.getFirstIpFromRemoteAddress(
+ WebRequestUtils.getClientAddress(servletRequest)))
.organizationId(authenticationFacade.currentOrganizationId())
.userId(authenticationFacade.currentUserId())
.username(authenticationFacade.currentUsername())
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/util/AuditUtils.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/util/AuditUtils.java
index c63127d2ac..fddfeb2325 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/util/AuditUtils.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/audit/util/AuditUtils.java
@@ -323,4 +323,30 @@ public static AuditEventAction getActualActionForTask(AuditEventType type, Audit
return action;
}
+ /**
+ *
+ * Get the first ip of {@param remoteAddress}.
+ * The X-Forwarded-For header may contain multiple IP addresses, separated
+ * by commas, and typically, the first non-unknown IP is considered to be the client's IP address.
+ *
+ *
+ * @author keyang.lk
+ * @date 2024-07-02
+ * @param remoteAddress
+ * @return The first ip of remoteAddress
+ */
+ public static String getFirstIpFromRemoteAddress(String remoteAddress) {
+ if (remoteAddress == null || remoteAddress.isEmpty() || "unknown".equalsIgnoreCase(remoteAddress)) {
+ return "N/A";
+ }
+ // 处理X-Forwarded-For可能包含多个IP地址的情况(由逗号分隔),通常第一个非unknown的IP是客户端的IP
+ String[] ips = remoteAddress.split(",");
+ for (String ip : ips) {
+ if (ip != null && !ip.isEmpty() &&
+ !"unknown".equalsIgnoreCase(ip.trim())) {
+ return ip.trim();
+ }
+ }
+ return remoteAddress;
+ }
}
diff --git a/server/odc-service/src/test/java/com/oceanbase/odc/service/audit/util/AuditUtilsTest.java b/server/odc-service/src/test/java/com/oceanbase/odc/service/audit/util/AuditUtilsTest.java
new file mode 100644
index 0000000000..c84624de99
--- /dev/null
+++ b/server/odc-service/src/test/java/com/oceanbase/odc/service/audit/util/AuditUtilsTest.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (c) 2023 OceanBase.
+ *
+ * Licensed 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 com.oceanbase.odc.service.audit.util;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameter;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class AuditUtilsTest {
+ @Parameter(0)
+ public String input;
+ @Parameter(1)
+ public String except;
+
+ @Parameters(name = "{index}: getFirstIpFromRemoteAddress({0})={1}")
+ public static Collection data() {
+ return Arrays.asList(new Object[][] {
+ {"", "N/A"},
+ {null, "N/A"},
+ {"unknown", "N/A"},
+ {"UNKNOWN", "N/A"},
+ {"123", "123"},
+ {"192.168.1.1", "192.168.1.1"},
+ {",192.168.1.1", "192.168.1.1"},
+ {"192.168.1.1,122.122.1.1,127.0.0.1", "192.168.1.1"},
+ {"unknown,192.168.1.1,122.122.1.1,127.0.0.1", "192.168.1.1"}
+ });
+ }
+
+ @Test
+ public void getFirstIpFromRemoteAddress() {
+ assertEquals(except, AuditUtils.getFirstIpFromRemoteAddress(input));
+ }
+}
From 2c385aca84cb5b7443b930b5cf0bee45b0fbad4c Mon Sep 17 00:00:00 2001
From: IL MARE
Date: Wed, 3 Jul 2024 11:06:51 +0800
Subject: [PATCH 2/3] fix(i18n): fix i18n docs encoding error (#2874)
* update i18n
* update i18n docs
---
.../i18n/BusinessMessages_zh_CN.properties | 1452 ++++++++---------
1 file changed, 726 insertions(+), 726 deletions(-)
diff --git a/server/odc-core/src/main/resources/i18n/BusinessMessages_zh_CN.properties b/server/odc-core/src/main/resources/i18n/BusinessMessages_zh_CN.properties
index 8ba8959900..a4078edcda 100644
--- a/server/odc-core/src/main/resources/i18n/BusinessMessages_zh_CN.properties
+++ b/server/odc-core/src/main/resources/i18n/BusinessMessages_zh_CN.properties
@@ -1,176 +1,176 @@
-# business_messages_zh_CN.properties \u7B80\u4F53\u4E2D\u6587
+# business_messages_zh_CN.properties 简体中文
#
# ResourceType
#
-com.oceanbase.odc.ResourceType.ODC_PRIVILEGE=\u6743\u9650
-com.oceanbase.odc.ResourceType.ODC_ORGANIZATION=\u7EC4\u7EC7
-com.oceanbase.odc.ResourceType.ODC_ROLE=\u89D2\u8272
-com.oceanbase.odc.ResourceType.ODC_RESOURCE_ROLE=\u8D44\u6E90\u89D2\u8272
-com.oceanbase.odc.ResourceType.ODC_USER=\u7528\u6237
-com.oceanbase.odc.ResourceType.ODC_CONNECTION=\u6570\u636E\u6E90
-com.oceanbase.odc.ResourceType.ODC_PRIVATE_CONNECTION=\u79C1\u6709\u8FDE\u63A5\u914D\u7F6E
-com.oceanbase.odc.ResourceType.ODC_CONNECT_LABEL=\u8FDE\u63A5\u6807\u7B7E
-com.oceanbase.odc.ResourceType.ODC_SESSION=\u8FDE\u63A5\u4F1A\u8BDD
-com.oceanbase.odc.ResourceType.ODC_TASK=\u4EFB\u52A1
-com.oceanbase.odc.ResourceType.ODC_SCRIPT=\u811A\u672C
-com.oceanbase.odc.ResourceType.ODC_SNIPPET=\u4EE3\u7801\u7247\u6BB5
-com.oceanbase.odc.ResourceType.ODC_SOURCE_FILE=\u6E90\u4EE3\u7801\u6587\u4EF6
-com.oceanbase.odc.ResourceType.ODC_FILE=\u6587\u4EF6
-com.oceanbase.odc.ResourceType.ODC_RESOURCE_GROUP=\u8D44\u6E90\u7EC4
-com.oceanbase.odc.ResourceType.ODC_FLOW_INSTANCE=\u6D41\u7A0B\u5B9E\u4F8B
-com.oceanbase.odc.ResourceType.ODC_FLOW_CONFIG=\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.ResourceType.ODC_FLOW_APPROVAL_INSTANCE=\u5BA1\u6279\u8282\u70B9
-com.oceanbase.odc.ResourceType.ODC_FLOW_TASK_INSTANCE=\u4EFB\u52A1\u8282\u70B9
-com.oceanbase.odc.ResourceType.ODC_FLOW_GATEWAY_INSTANCE=\u7F51\u5173\u8282\u70B9
-com.oceanbase.odc.ResourceType.ODC_ASYNC_SQL_RESULT=\u5F02\u6B65 SQL \u6267\u884C\u7ED3\u679C
-com.oceanbase.odc.ResourceType.ODC_SYSTEM_CONFIG=\u7CFB\u7EDF\u914D\u7F6E
-com.oceanbase.odc.ResourceType.ODC_AUDIT_EVENT=\u5BA1\u8BA1\u4E8B\u4EF6
+com.oceanbase.odc.ResourceType.ODC_PRIVILEGE=权限
+com.oceanbase.odc.ResourceType.ODC_ORGANIZATION=组织
+com.oceanbase.odc.ResourceType.ODC_ROLE=角色
+com.oceanbase.odc.ResourceType.ODC_RESOURCE_ROLE=资源角色
+com.oceanbase.odc.ResourceType.ODC_USER=用户
+com.oceanbase.odc.ResourceType.ODC_CONNECTION=数据源
+com.oceanbase.odc.ResourceType.ODC_PRIVATE_CONNECTION=私有连接配置
+com.oceanbase.odc.ResourceType.ODC_CONNECT_LABEL=连接标签
+com.oceanbase.odc.ResourceType.ODC_SESSION=连接会话
+com.oceanbase.odc.ResourceType.ODC_TASK=任务
+com.oceanbase.odc.ResourceType.ODC_SCRIPT=脚本
+com.oceanbase.odc.ResourceType.ODC_SNIPPET=代码片段
+com.oceanbase.odc.ResourceType.ODC_SOURCE_FILE=源代码文件
+com.oceanbase.odc.ResourceType.ODC_FILE=文件
+com.oceanbase.odc.ResourceType.ODC_RESOURCE_GROUP=资源组
+com.oceanbase.odc.ResourceType.ODC_FLOW_INSTANCE=流程实例
+com.oceanbase.odc.ResourceType.ODC_FLOW_CONFIG=流程配置
+com.oceanbase.odc.ResourceType.ODC_FLOW_APPROVAL_INSTANCE=审批节点
+com.oceanbase.odc.ResourceType.ODC_FLOW_TASK_INSTANCE=任务节点
+com.oceanbase.odc.ResourceType.ODC_FLOW_GATEWAY_INSTANCE=网关节点
+com.oceanbase.odc.ResourceType.ODC_ASYNC_SQL_RESULT=异步 SQL 执行结果
+com.oceanbase.odc.ResourceType.ODC_SYSTEM_CONFIG=系统配置
+com.oceanbase.odc.ResourceType.ODC_AUDIT_EVENT=审计事件
com.oceanbase.odc.ResourceType.ODC_BUCKET=OSS Bucket
-com.oceanbase.odc.ResourceType.ODC_STORAGE_OBJECT_METADATA=\u5BF9\u8C61\u5143\u6570\u636E
-com.oceanbase.odc.ResourceType.ODC_EXTERNAL_APPROVAL=\u5916\u90E8\u5BA1\u6279\u5355
-com.oceanbase.odc.ResourceType.ODC_TUTORIAL=\u6559\u7A0B
-com.oceanbase.odc.ResourceType.OB_CLUSTER=OB \u96C6\u7FA4
-com.oceanbase.odc.ResourceType.OB_TENANT=OB \u79DF\u6237
-com.oceanbase.odc.ResourceType.OB_USER=\u6570\u636E\u5E93\u7528\u6237
-com.oceanbase.odc.ResourceType.OB_DATABASE=\u6570\u636E\u5E93
-com.oceanbase.odc.ResourceType.OB_TABLE=\u8868
-com.oceanbase.odc.ResourceType.OB_INDEX=\u7D22\u5F15
-com.oceanbase.odc.ResourceType.OB_COLUMN=\u5217
-com.oceanbase.odc.ResourceType.OB_CONSTRAINT=\u7EA6\u675F
-com.oceanbase.odc.ResourceType.OB_VIEW=\u89C6\u56FE
-com.oceanbase.odc.ResourceType.OB_SEQUENCE=\u5E8F\u5217
-com.oceanbase.odc.ResourceType.OB_TRIGGER=\u89E6\u53D1\u5668
-com.oceanbase.odc.ResourceType.OB_FUNCTION=\u51FD\u6570
-com.oceanbase.odc.ResourceType.OB_PROCEDURE=\u5B58\u50A8\u8FC7\u7A0B
-com.oceanbase.odc.ResourceType.OB_PACKAGE=\u7A0B\u5E8F\u5305
-com.oceanbase.odc.ResourceType.OB_TYPE=\u7C7B\u578B
-com.oceanbase.odc.ResourceType.OB_SYNONYM=\u540C\u4E49\u8BCD
-com.oceanbase.odc.ResourceType.OB_SESSION=\u6570\u636E\u5E93\u4F1A\u8BDD
-com.oceanbase.odc.ResourceType.ALIYUN_ACCOUNT=\u963F\u91CC\u4E91\u4E3B\u8D26\u53F7
-com.oceanbase.odc.ResourceType.ALIYUN_SUB_ACCOUNT=\u963F\u91CC\u4E91\u5B50\u8D26\u53F7
-com.oceanbase.odc.ResourceType.ODC_DATA_MASKING_RULE=\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.ResourceType.ODC_DATA_MASKING_POLICY=\u8131\u654F\u7B56\u7565
-com.oceanbase.odc.ResourceType.ODC_SHADOWTABLE_COMPARING_TASK=\u5F71\u5B50\u8868\u7ED3\u6784\u5BF9\u6BD4\u4EFB\u52A1
-com.oceanbase.odc.ResourceType.ODC_SCHEDULE=\u5B9A\u65F6\u6267\u884C
-com.oceanbase.odc.ResourceType.ODC_SCHEDULE_TRIGGER=\u4F5C\u4E1A\u89E6\u53D1\u5668
-com.oceanbase.odc.ResourceType.ODC_SCHEDULE_TASK=\u8C03\u5EA6\u4EFB\u52A1
-com.oceanbase.odc.ResourceType.ODC_DLM_LIMITER_CONFIG=\u9650\u6D41\u914D\u7F6E
-com.oceanbase.odc.ResourceType.ODC_PL_DEBUG_SESSION=PL \u8C03\u8BD5\u4F1A\u8BDD
-com.oceanbase.odc.ResourceType.ODC_JOB=\u4EFB\u52A1
-com.oceanbase.odc.ResourceType.ODC_AUTOMATION_RULE=\u81EA\u52A8\u5316\u89C4\u5219
-com.oceanbase.odc.ResourceType.ODC_EXTERNAL_SQL_INTERCEPTOR=\u5916\u90E8 SQL \u62E6\u622A\u5668
-com.oceanbase.odc.ResourceType.ODC_INTEGRATION=\u96C6\u6210
-com.oceanbase.odc.ResourceType.ODC_PROJECT=\u9879\u76EE
-com.oceanbase.odc.ResourceType.ODC_ENVIRONMENT=\u73AF\u5883
-com.oceanbase.odc.ResourceType.ODC_DATASOURCE=\u6570\u636E\u6E90
-com.oceanbase.odc.ResourceType.ODC_DATABASE=\u6570\u636E\u5E93
-com.oceanbase.odc.ResourceType.ODC_LOGICAL_TABLE=\u903B\u8F91\u8868
-com.oceanbase.odc.ResourceType.ODC_TABLE=\u6570\u636E\u8868
-com.oceanbase.odc.ResourceType.ODC_RULESET=\u89C4\u5219\u96C6
-com.oceanbase.odc.ResourceType.ODC_RULE=\u89C4\u5219
-com.oceanbase.odc.ResourceType.ODC_SENSITIVE_COLUMN=\u654F\u611F\u5217
-com.oceanbase.odc.ResourceType.ODC_SENSITIVE_RULE=\u8BC6\u522B\u89C4\u5219
-com.oceanbase.odc.ResourceType.ODC_MASKING_ALGORITHM=\u8131\u654F\u7B97\u6CD5
-com.oceanbase.odc.ResourceType.ODC_SENSITIVE_COLUMN_SCANNING_TASK=\u654F\u611F\u5217\u626B\u63CF\u4EFB\u52A1
-com.oceanbase.odc.ResourceType.ODC_APPROVAL_FLOW_CONFIG=\u5BA1\u6279\u6D41\u914D\u7F6E
-com.oceanbase.odc.ResourceType.ODC_RISK_LEVEL=\u98CE\u9669\u7B49\u7EA7
-com.oceanbase.odc.ResourceType.ODC_RISK_DETECT_RULE=\u98CE\u9669\u7B49\u7EA7\u8BC6\u522B\u89C4\u5219
-com.oceanbase.odc.ResourceType.ODC_INDIVIDUAL_ORGANIZATION=\u4E2A\u4EBA\u7A7A\u95F4
-com.oceanbase.odc.ResourceType.ODC_TEAM_ORGANIZATION=\u56E2\u961F\u7A7A\u95F4
+com.oceanbase.odc.ResourceType.ODC_STORAGE_OBJECT_METADATA=对象元数据
+com.oceanbase.odc.ResourceType.ODC_EXTERNAL_APPROVAL=外部审批单
+com.oceanbase.odc.ResourceType.ODC_TUTORIAL=教程
+com.oceanbase.odc.ResourceType.OB_CLUSTER=OB 集群
+com.oceanbase.odc.ResourceType.OB_TENANT=OB 租户
+com.oceanbase.odc.ResourceType.OB_USER=数据库用户
+com.oceanbase.odc.ResourceType.OB_DATABASE=数据库
+com.oceanbase.odc.ResourceType.OB_TABLE=表
+com.oceanbase.odc.ResourceType.OB_INDEX=索引
+com.oceanbase.odc.ResourceType.OB_COLUMN=列
+com.oceanbase.odc.ResourceType.OB_CONSTRAINT=约束
+com.oceanbase.odc.ResourceType.OB_VIEW=视图
+com.oceanbase.odc.ResourceType.OB_SEQUENCE=序列
+com.oceanbase.odc.ResourceType.OB_TRIGGER=触发器
+com.oceanbase.odc.ResourceType.OB_FUNCTION=函数
+com.oceanbase.odc.ResourceType.OB_PROCEDURE=存储过程
+com.oceanbase.odc.ResourceType.OB_PACKAGE=程序包
+com.oceanbase.odc.ResourceType.OB_TYPE=类型
+com.oceanbase.odc.ResourceType.OB_SYNONYM=同义词
+com.oceanbase.odc.ResourceType.OB_SESSION=数据库会话
+com.oceanbase.odc.ResourceType.ALIYUN_ACCOUNT=阿里云主账号
+com.oceanbase.odc.ResourceType.ALIYUN_SUB_ACCOUNT=阿里云子账号
+com.oceanbase.odc.ResourceType.ODC_DATA_MASKING_RULE=脱敏规则
+com.oceanbase.odc.ResourceType.ODC_DATA_MASKING_POLICY=脱敏策略
+com.oceanbase.odc.ResourceType.ODC_SHADOWTABLE_COMPARING_TASK=影子表结构对比任务
+com.oceanbase.odc.ResourceType.ODC_SCHEDULE=定时执行
+com.oceanbase.odc.ResourceType.ODC_SCHEDULE_TRIGGER=作业触发器
+com.oceanbase.odc.ResourceType.ODC_SCHEDULE_TASK=调度任务
+com.oceanbase.odc.ResourceType.ODC_DLM_LIMITER_CONFIG=限流配置
+com.oceanbase.odc.ResourceType.ODC_PL_DEBUG_SESSION=PL 调试会话
+com.oceanbase.odc.ResourceType.ODC_JOB=任务
+com.oceanbase.odc.ResourceType.ODC_AUTOMATION_RULE=自动化规则
+com.oceanbase.odc.ResourceType.ODC_EXTERNAL_SQL_INTERCEPTOR=外部 SQL 拦截器
+com.oceanbase.odc.ResourceType.ODC_INTEGRATION=集成
+com.oceanbase.odc.ResourceType.ODC_PROJECT=项目
+com.oceanbase.odc.ResourceType.ODC_ENVIRONMENT=环境
+com.oceanbase.odc.ResourceType.ODC_DATASOURCE=数据源
+com.oceanbase.odc.ResourceType.ODC_DATABASE=数据库
+com.oceanbase.odc.ResourceType.ODC_LOGICAL_TABLE=逻辑表
+com.oceanbase.odc.ResourceType.ODC_TABLE=数据表
+com.oceanbase.odc.ResourceType.ODC_RULESET=规则集
+com.oceanbase.odc.ResourceType.ODC_RULE=规则
+com.oceanbase.odc.ResourceType.ODC_SENSITIVE_COLUMN=敏感列
+com.oceanbase.odc.ResourceType.ODC_SENSITIVE_RULE=识别规则
+com.oceanbase.odc.ResourceType.ODC_MASKING_ALGORITHM=脱敏算法
+com.oceanbase.odc.ResourceType.ODC_SENSITIVE_COLUMN_SCANNING_TASK=敏感列扫描任务
+com.oceanbase.odc.ResourceType.ODC_APPROVAL_FLOW_CONFIG=审批流配置
+com.oceanbase.odc.ResourceType.ODC_RISK_LEVEL=风险等级
+com.oceanbase.odc.ResourceType.ODC_RISK_DETECT_RULE=风险等级识别规则
+com.oceanbase.odc.ResourceType.ODC_INDIVIDUAL_ORGANIZATION=个人空间
+com.oceanbase.odc.ResourceType.ODC_TEAM_ORGANIZATION=团队空间
-com.oceanbase.odc.ResourceType.ODC_NOTIFICATION_CHANNEL=\u901A\u77E5\u901A\u9053
-com.oceanbase.odc.ResourceType.ODC_NOTIFICATION_POLICY=\u901A\u77E5\u89C4\u5219
-com.oceanbase.odc.ResourceType.ODC_NOTIFICATION_MESSAGE=\u901A\u77E5\u6D88\u606F
-com.oceanbase.odc.ResourceType.ODC_STRUCTURE_COMPARISON_TASK=\u7ED3\u6784\u5BF9\u6BD4\u4EFB\u52A1
-com.oceanbase.odc.ResourceType.ODC_DATABASE_CHANGE_ORDER_TEMPLATE=\u6570\u636E\u5E93\u53D8\u66F4\u987A\u5E8F\u6A21\u677F
+com.oceanbase.odc.ResourceType.ODC_NOTIFICATION_CHANNEL=通知通道
+com.oceanbase.odc.ResourceType.ODC_NOTIFICATION_POLICY=通知规则
+com.oceanbase.odc.ResourceType.ODC_NOTIFICATION_MESSAGE=通知消息
+com.oceanbase.odc.ResourceType.ODC_STRUCTURE_COMPARISON_TASK=结构对比任务
+com.oceanbase.odc.ResourceType.ODC_DATABASE_CHANGE_ORDER_TEMPLATE=数据库变更顺序模板
#
# Batch Import
#
-com.oceanbase.odc.FieldName.DATASOURCE_NAME=\u6570\u636E\u6E90\u540D\u79F0
-com.oceanbase.odc.FieldName.DATASOURCE_TYPE=\u6570\u636E\u6E90\u7C7B\u578B
-com.oceanbase.odc.FieldName.DATASOURCE_HOST=\u4E3B\u673A IP
-com.oceanbase.odc.FieldName.DATASOURCE_PORT=\u7AEF\u53E3
-com.oceanbase.odc.FieldName.DATASOURCE_CLUSTERNAME=\u96C6\u7FA4\u540D
-com.oceanbase.odc.FieldName.DATASOURCE_TENANTNAME=\u79DF\u6237\u540D
-com.oceanbase.odc.FieldName.DATASOURCE_USERNAME=\u6570\u636E\u5E93\u7528\u6237\u540D
-com.oceanbase.odc.FieldName.DATASOURCE_PASSWORD=\u6570\u636E\u5E93\u5BC6\u7801
-com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT=\u73AF\u5883
-com.oceanbase.odc.FieldName.DATASOURCE_SYSTENANTUSERNAME=sys \u79DF\u6237\u8D26\u53F7
-com.oceanbase.odc.FieldName.DATASOURCE_SYSTENANTPASSWORD=sys \u79DF\u6237\u5BC6\u7801
-com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_DEFAULT=\u9ED8\u8BA4
-com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_DEV=\u5F00\u53D1
-com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_PROD=\u751F\u4EA7
-com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_SIT=\u6D4B\u8BD5
-com.oceanbase.odc.FieldName.USER_ACCOUNTNAME=\u8D26\u53F7
-com.oceanbase.odc.FieldName.USER_NAME=\u59D3\u540D
-com.oceanbase.odc.FieldName.USER_PASSWORD=\u5BC6\u7801
-com.oceanbase.odc.FieldName.USER_ENABLED=\u8D26\u53F7\u72B6\u6001
-com.oceanbase.odc.FieldName.USER_ROLEIDS=\u89D2\u8272
-com.oceanbase.odc.FieldName.USER_DESCRIPTION=\u5907\u6CE8
+com.oceanbase.odc.FieldName.DATASOURCE_NAME=数据源名称
+com.oceanbase.odc.FieldName.DATASOURCE_TYPE=数据源类型
+com.oceanbase.odc.FieldName.DATASOURCE_HOST=主机 IP
+com.oceanbase.odc.FieldName.DATASOURCE_PORT=端口
+com.oceanbase.odc.FieldName.DATASOURCE_CLUSTERNAME=集群名
+com.oceanbase.odc.FieldName.DATASOURCE_TENANTNAME=租户名
+com.oceanbase.odc.FieldName.DATASOURCE_USERNAME=数据库用户名
+com.oceanbase.odc.FieldName.DATASOURCE_PASSWORD=数据库密码
+com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT=环境
+com.oceanbase.odc.FieldName.DATASOURCE_SYSTENANTUSERNAME=sys 租户账号
+com.oceanbase.odc.FieldName.DATASOURCE_SYSTENANTPASSWORD=sys 租户密码
+com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_DEFAULT=默认
+com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_DEV=开发
+com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_PROD=生产
+com.oceanbase.odc.FieldName.DATASOURCE_ENVIRONMENT_SIT=测试
+com.oceanbase.odc.FieldName.USER_ACCOUNTNAME=账号
+com.oceanbase.odc.FieldName.USER_NAME=姓名
+com.oceanbase.odc.FieldName.USER_PASSWORD=密码
+com.oceanbase.odc.FieldName.USER_ENABLED=账号状态
+com.oceanbase.odc.FieldName.USER_ROLEIDS=角色
+com.oceanbase.odc.FieldName.USER_DESCRIPTION=备注
-com.oceanbase.odc.Symbols.LEFT_BRACKET=\u3010
-com.oceanbase.odc.Symbols.RIGHT_BRACKET=\u3011
-com.oceanbase.odc.Symbols.COMMA=\uFF0C
+com.oceanbase.odc.Symbols.LEFT_BRACKET=【
+com.oceanbase.odc.Symbols.RIGHT_BRACKET=】
+com.oceanbase.odc.Symbols.COMMA=,
#
# LimitMetric
#
-com.oceanbase.odc.LimitMetric.TRANSFER_TASK_COUNT=\u5BFC\u5165\u5BFC\u51FA\u4EFB\u52A1\u6570\u91CF
-com.oceanbase.odc.LimitMetric.MOCK_TASK_COUNT=\u6A21\u62DF\u6570\u636E\u4EFB\u52A1\u6570\u91CF
-com.oceanbase.odc.LimitMetric.OBCLIENT_INSTANCE_COUNT=\u547D\u4EE4\u884C\u7A97\u53E3\u6570\u91CF
-com.oceanbase.odc.LimitMetric.FAILED_LOGIN_ATTEMPT_COUNT=\u767B\u5F55\u5931\u8D25\u5C1D\u8BD5\u6B21\u6570
-com.oceanbase.odc.LimitMetric.SQL_LENGTH=SQL \u8BED\u53E5\u5B57\u7B26\u6570
-com.oceanbase.odc.LimitMetric.SQL_SIZE=SQL \u8BED\u53E5\u5B57\u8282\u6570
-com.oceanbase.odc.LimitMetric.SQL_STATEMENT_COUNT=SQL \u8BED\u53E5\u6570\u91CF
-com.oceanbase.odc.LimitMetric.FILE_SIZE=\u6587\u4EF6\u5B57\u8282\u6570
-com.oceanbase.odc.LimitMetric.FILE_COUNT=\u6587\u4EF6\u6570\u91CF
-com.oceanbase.odc.LimitMetric.TRANSACTION_QUERY_LIMIT=\u67E5\u8BE2\u7ED3\u679C\u96C6\u5927\u5C0F
-com.oceanbase.odc.LimitMetric.SESSION_COUNT=\u6570\u636E\u5E93 SESSION \u6570\u91CF
-com.oceanbase.odc.LimitMetric.USER_COUNT=\u6570\u636E\u5E93\u8FDE\u63A5\u7528\u6237\u6570
-com.oceanbase.odc.LimitMetric.EXPORT_OBJECT_COUNT=\u5BFC\u51FA\u5BF9\u8C61\u6570\u91CF
-com.oceanbase.odc.LimitMetric.TABLE_NAME_LENGTH=\u8868\u540D\u957F\u5EA6
+com.oceanbase.odc.LimitMetric.TRANSFER_TASK_COUNT=导入导出任务数量
+com.oceanbase.odc.LimitMetric.MOCK_TASK_COUNT=模拟数据任务数量
+com.oceanbase.odc.LimitMetric.OBCLIENT_INSTANCE_COUNT=命令行窗口数量
+com.oceanbase.odc.LimitMetric.FAILED_LOGIN_ATTEMPT_COUNT=登录失败尝试次数
+com.oceanbase.odc.LimitMetric.SQL_LENGTH=SQL 语句字符数
+com.oceanbase.odc.LimitMetric.SQL_SIZE=SQL 语句字节数
+com.oceanbase.odc.LimitMetric.SQL_STATEMENT_COUNT=SQL 语句数量
+com.oceanbase.odc.LimitMetric.FILE_SIZE=文件字节数
+com.oceanbase.odc.LimitMetric.FILE_COUNT=文件数量
+com.oceanbase.odc.LimitMetric.TRANSACTION_QUERY_LIMIT=查询结果集大小
+com.oceanbase.odc.LimitMetric.SESSION_COUNT=数据库 SESSION 数量
+com.oceanbase.odc.LimitMetric.USER_COUNT=数据库连接用户数
+com.oceanbase.odc.LimitMetric.EXPORT_OBJECT_COUNT=导出对象数量
+com.oceanbase.odc.LimitMetric.TABLE_NAME_LENGTH=表名长度
#
# ConnectionAccountType
#
-com.oceanbase.odc.ConnectionAccountType.MAIN=\u8BFB\u5199\u8D26\u53F7
-com.oceanbase.odc.ConnectionAccountType.READONLY=\u53EA\u8BFB\u8D26\u53F7
-com.oceanbase.odc.ConnectionAccountType.SYS_READ=SYS\u79DF\u6237\u8D26\u53F7
+com.oceanbase.odc.ConnectionAccountType.MAIN=读写账号
+com.oceanbase.odc.ConnectionAccountType.READONLY=只读账号
+com.oceanbase.odc.ConnectionAccountType.SYS_READ=SYS租户账号
#
# AuditEventAction
#
-com.oceanbase.odc.AuditEventAction.DISABLE_ROLE=\u7981\u7528\u89D2\u8272
-com.oceanbase.odc.AuditEventAction.DELETE_ROLE=\u5220\u9664\u89D2\u8272
-com.oceanbase.odc.AuditEventAction.DELETE_DATA_MASKING_RULE=\u5220\u9664\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.UPDATE_PERSONAL_CONFIGURATION=\u66F4\u65B0\u4E2A\u4EBA\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.SET_PASSWORD=\u8BBE\u7F6E\u5BC6\u7801
-com.oceanbase.odc.AuditEventAction.CHANGE_PASSWORD=\u4FEE\u6539\u5BC6\u7801
-com.oceanbase.odc.AuditEventAction.RESET_PASSWORD=\u91CD\u7F6E\u5BC6\u7801
-com.oceanbase.odc.AuditEventAction.CREATE_CONNECTION=\u521B\u5EFA\u8FDE\u63A5
-com.oceanbase.odc.AuditEventAction.DELETE_CONNECTION=\u5220\u9664\u8FDE\u63A5
-com.oceanbase.odc.AuditEventAction.UPDATE_CONNECTION=\u66F4\u65B0\u8FDE\u63A5
-com.oceanbase.odc.AuditEventAction.CREATE_SESSION=\u521B\u5EFA\u4F1A\u8BDD
-com.oceanbase.odc.AuditEventAction.CLOSE_SESSION=\u5173\u95ED\u4F1A\u8BDD
-com.oceanbase.odc.AuditEventAction.ENABLE_CONNECTION=\u542F\u7528\u8FDE\u63A5
-com.oceanbase.odc.AuditEventAction.DISABLE_CONNECTION=\u7981\u7528\u8FDE\u63A5
-com.oceanbase.odc.AuditEventAction.DOWNLOAD_SCRIPT=\u4E0B\u8F7D\u811A\u672C
-com.oceanbase.odc.AuditEventAction.UPDATE_SCRIPT=\u66F4\u65B0\u811A\u672C
-com.oceanbase.odc.AuditEventAction.DELETE_SCRIPT=\u5220\u9664\u811A\u672C
-com.oceanbase.odc.AuditEventAction.UPLOAD_SCRIPT=\u4E0A\u4F20\u811A\u672C
-com.oceanbase.odc.AuditEventAction.UPDATE_ORGANIZATION_CONFIGURATION=\u66F4\u65B0\u7EC4\u7EC7\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.ADD_USER=\u589E\u52A0\u7528\u6237
-com.oceanbase.odc.AuditEventAction.UPDATE_USER=\u66F4\u65B0\u7528\u6237
-com.oceanbase.odc.AuditEventAction.DELETE_USER=\u5220\u9664\u7528\u6237
-com.oceanbase.odc.AuditEventAction.ENABLE_USER=\u542F\u7528\u7528\u6237
-com.oceanbase.odc.AuditEventAction.DISABLE_USER=\u7981\u7528\u7528\u6237
-com.oceanbase.odc.AuditEventAction.ADD_ROLE=\u589E\u52A0\u89D2\u8272
-com.oceanbase.odc.AuditEventAction.UPDATE_ROLE=\u66F4\u65B0\u89D2\u8272
-com.oceanbase.odc.AuditEventAction.ENABLE_ROLE=\u542F\u7528\u89D2\u8272
-com.oceanbase.odc.AuditEventAction.ADD_RESOURCE_GROUP=\u589E\u52A0\u8D44\u6E90\u7EC4
-com.oceanbase.odc.AuditEventAction.UPDATE_RESOURCE_GROUP=\u66F4\u65B0\u8D44\u6E90\u7EC4
-com.oceanbase.odc.AuditEventAction.DELETE_RESOURCE_GROUP=\u5220\u9664\u8D44\u6E90\u7EC4
-com.oceanbase.odc.AuditEventAction.ENABLE_RESOURCE_GROUP=\u542F\u7528\u8D44\u6E90\u7EC4
-com.oceanbase.odc.AuditEventAction.DISABLE_RESOURCE_GROUP=\u7981\u7528\u8D44\u6E90\u7EC4
+com.oceanbase.odc.AuditEventAction.DISABLE_ROLE=禁用角色
+com.oceanbase.odc.AuditEventAction.DELETE_ROLE=删除角色
+com.oceanbase.odc.AuditEventAction.DELETE_DATA_MASKING_RULE=删除脱敏规则
+com.oceanbase.odc.AuditEventAction.UPDATE_PERSONAL_CONFIGURATION=更新个人配置
+com.oceanbase.odc.AuditEventAction.SET_PASSWORD=设置密码
+com.oceanbase.odc.AuditEventAction.CHANGE_PASSWORD=修改密码
+com.oceanbase.odc.AuditEventAction.RESET_PASSWORD=重置密码
+com.oceanbase.odc.AuditEventAction.CREATE_CONNECTION=创建连接
+com.oceanbase.odc.AuditEventAction.DELETE_CONNECTION=删除连接
+com.oceanbase.odc.AuditEventAction.UPDATE_CONNECTION=更新连接
+com.oceanbase.odc.AuditEventAction.CREATE_SESSION=创建会话
+com.oceanbase.odc.AuditEventAction.CLOSE_SESSION=关闭会话
+com.oceanbase.odc.AuditEventAction.ENABLE_CONNECTION=启用连接
+com.oceanbase.odc.AuditEventAction.DISABLE_CONNECTION=禁用连接
+com.oceanbase.odc.AuditEventAction.DOWNLOAD_SCRIPT=下载脚本
+com.oceanbase.odc.AuditEventAction.UPDATE_SCRIPT=更新脚本
+com.oceanbase.odc.AuditEventAction.DELETE_SCRIPT=删除脚本
+com.oceanbase.odc.AuditEventAction.UPLOAD_SCRIPT=上传脚本
+com.oceanbase.odc.AuditEventAction.UPDATE_ORGANIZATION_CONFIGURATION=更新组织配置
+com.oceanbase.odc.AuditEventAction.ADD_USER=增加用户
+com.oceanbase.odc.AuditEventAction.UPDATE_USER=更新用户
+com.oceanbase.odc.AuditEventAction.DELETE_USER=删除用户
+com.oceanbase.odc.AuditEventAction.ENABLE_USER=启用用户
+com.oceanbase.odc.AuditEventAction.DISABLE_USER=禁用用户
+com.oceanbase.odc.AuditEventAction.ADD_ROLE=增加角色
+com.oceanbase.odc.AuditEventAction.UPDATE_ROLE=更新角色
+com.oceanbase.odc.AuditEventAction.ENABLE_ROLE=启用角色
+com.oceanbase.odc.AuditEventAction.ADD_RESOURCE_GROUP=增加资源组
+com.oceanbase.odc.AuditEventAction.UPDATE_RESOURCE_GROUP=更新资源组
+com.oceanbase.odc.AuditEventAction.DELETE_RESOURCE_GROUP=删除资源组
+com.oceanbase.odc.AuditEventAction.ENABLE_RESOURCE_GROUP=启用资源组
+com.oceanbase.odc.AuditEventAction.DISABLE_RESOURCE_GROUP=禁用资源组
com.oceanbase.odc.AuditEventAction.SELECT=SELECT
com.oceanbase.odc.AuditEventAction.DELETE=DELETE
com.oceanbase.odc.AuditEventAction.INSERT=INSERT
@@ -182,652 +182,652 @@ com.oceanbase.odc.AuditEventAction.ALTER=ALTER
com.oceanbase.odc.AuditEventAction.TRUNCATE=TRUNCATE
com.oceanbase.odc.AuditEventAction.CREATE=CREATE
com.oceanbase.odc.AuditEventAction.OTHERS=OTHERS
-com.oceanbase.odc.AuditEventAction.EXPORT_AUDIT_EVENT=\u5BFC\u51FA\u5BA1\u8BA1\u4E8B\u4EF6
-com.oceanbase.odc.AuditEventAction.CREATE_FLOW_CONFIG=\u521B\u5EFA\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.UPDATE_FLOW_CONFIG=\u66F4\u65B0\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.ENABLE_FLOW_CONFIG=\u542F\u7528\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.DISABLE_FLOW_CONFIG=\u7981\u7528\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.DELETE_FLOW_CONFIG=\u5220\u9664\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.BATCH_DELETE_FLOW_CONFIG=\u6279\u91CF\u5220\u9664\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventAction.CREATE_TASK=\u521B\u5EFA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_TASK=\u505C\u6B62\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.ROLLBACK_TASK=\u56DE\u6EDA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_TASK=\u6267\u884C\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE=\u540C\u610F
-com.oceanbase.odc.AuditEventAction.REJECT=\u62D2\u7EDD
-com.oceanbase.odc.AuditEventAction.CREATE_ASYNC_TASK=\u521B\u5EFA\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_MULTIPLE_ASYNC_TASK=\u521B\u5EFA\u591A\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_MOCKDATA_TASK=\u521B\u5EFA\u6A21\u62DF\u6570\u636E\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_IMPORT_TASK=\u521B\u5EFA\u5BFC\u5165\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_EXPORT_TASK=\u521B\u5EFA\u5BFC\u51FA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_EXPORT_RESULT_SET_TASK=\u521B\u5EFA\u5BFC\u51FA\u7ED3\u679C\u96C6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_PERMISSION_APPLY_TASK=\u521B\u5EFA\u6743\u9650\u7533\u8BF7\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_SHADOWTABLE_SYNC_TASK=\u521B\u5EFA\u5F71\u5B50\u8868\u540C\u6B65\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_STRUCTURE_COMPARISON_TASK=\u521B\u5EFA\u7ED3\u6784\u6BD4\u5BF9\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_PARTITION_PLAN_TASK=\u521B\u5EFA\u5206\u533A\u8BA1\u5212\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_ALTER_SCHEDULE_TASK=\u521B\u5EFA\u4FEE\u6539\u8C03\u5EA6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_ONLINE_SCHEMA_CHANGE_TASK=\u521B\u5EFA\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_APPLY_PROJECT_PERMISSION_TASK=\u521B\u5EFA\u7533\u8BF7\u9879\u76EE\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_APPLY_DATABASE_PERMISSION_TASK=\u521B\u5EFA\u7533\u8BF7\u6570\u636E\u5E93\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_APPLY_TABLE_PERMISSION_TASK=\u521B\u5EFA\u7533\u8BF7\u6570\u636E\u8868\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_ASYNC_TASK=\u505C\u6B62\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_MULTIPLE_ASYNC_TASK=\u505C\u6B62\u591A\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_MOCKDATA_TASK=\u505C\u6B62\u6A21\u62DF\u6570\u636E\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_IMPORT_TASK=\u505C\u6B62\u5BFC\u5165\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_EXPORT_TASK=\u505C\u6B62\u5BFC\u51FA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_EXPORT_RESULT_SET_TASK=\u505C\u6B62\u5BFC\u51FA\u7ED3\u679C\u96C6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_SHADOWTABLE_SYNC_TASK=\u505C\u6B62\u5F71\u5B50\u8868\u540C\u6B65\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_STRUCTURE_COMPARISON_TASK=\u505C\u6B62\u7ED3\u6784\u6BD4\u5BF9\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_PARTITION_PLAN_TASK=\u505C\u6B62\u5206\u533A\u8BA1\u5212\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_ALTER_SCHEDULE_TASK=\u505C\u6B62\u4FEE\u6539\u8C03\u5EA6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_ONLINE_SCHEMA_CHANGE_TASK=\u505C\u6B62\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_APPLY_PROJECT_PERMISSION_TASK=\u505C\u6B62\u7533\u8BF7\u9879\u76EE\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_APPLY_DATABASE_PERMISSION_TASK=\u505C\u6B62\u7533\u8BF7\u6570\u636E\u5E93\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.STOP_APPLY_TABLE_PERMISSION_TASK=\u505C\u6B62\u7533\u8BF7\u6570\u636E\u8868\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_ASYNC_TASK=\u6267\u884C\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_MULTIPLE_ASYNC_TASK=\u6267\u884C\u591A\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_MOCKDATA_TASK=\u6267\u884C\u6A21\u62DF\u6570\u636E\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_IMPORT_TASK=\u6267\u884C\u5BFC\u5165\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_EXPORT_TASK=\u6267\u884C\u5BFC\u51FA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_EXPORT_RESULT_SET_TASK=\u6267\u884C\u5BFC\u51FA\u7ED3\u679C\u96C6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_SHADOWTABLE_SYNC_TASK=\u6267\u884C\u5F71\u5B50\u8868\u540C\u6B65\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_STRUCTURE_COMPARISON_TASK=\u6267\u884C\u7ED3\u6784\u6BD4\u5BF9\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_PARTITION_PLAN_TASK=\u6267\u884C\u5206\u533A\u8BA1\u5212\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_ALTER_SCHEDULE_TASK=\u6267\u884C\u4FEE\u6539\u8C03\u5EA6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.EXECUTE_ONLINE_SCHEMA_CHANGE_TASK=\u6267\u884C\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_ASYNC_TASK=\u540C\u610F\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_MULTIPLE_ASYNC_TASK=\u540C\u610F\u591A\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_MOCKDATA_TASK=\u540C\u610F\u6A21\u62DF\u6570\u636E\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_IMPORT_TASK=\u540C\u610F\u5BFC\u5165\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_EXPORT_TASK=\u540C\u610F\u5BFC\u51FA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_EXPORT_RESULT_SET_TASK=\u540C\u610F\u5BFC\u51FA\u7ED3\u679C\u96C6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_PERMISSION_APPLY_TASK=\u540C\u610F\u6743\u9650\u7533\u8BF7\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_SHADOWTABLE_SYNC_TASK=\u540C\u610F\u5F71\u5B50\u8868\u540C\u6B65\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_STRUCTURE_COMPARISON_TASK=\u540C\u610F\u7ED3\u6784\u6BD4\u5BF9\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_PARTITION_PLAN_TASK=\u540C\u610F\u5206\u533A\u8BA1\u5212\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_ALTER_SCHEDULE_TASK=\u540C\u610F\u4FEE\u6539\u8C03\u5EA6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_ONLINE_SCHEMA_CHANGE_TASK=\u540C\u610F\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_APPLY_PROJECT_PERMISSION_TASK=\u540C\u610F\u7533\u8BF7\u9879\u76EE\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_APPLY_DATABASE_PERMISSION_TASK=\u540C\u610F\u7533\u8BF7\u6570\u636E\u5E93\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.APPROVE_APPLY_TABLE_PERMISSION_TASK=\u540C\u610F\u7533\u8BF7\u6570\u636E\u8868\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_ASYNC_TASK=\u62D2\u7EDD\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_MULTIPLE_ASYNC_TASK=\u62D2\u7EDD\u591A\u5E93\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_MOCKDATA_TASK=\u62D2\u7EDD\u6A21\u62DF\u6570\u636E\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_IMPORT_TASK=\u62D2\u7EDD\u5BFC\u5165\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_EXPORT_TASK=\u62D2\u7EDD\u5BFC\u51FA\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_EXPORT_RESULT_SET_TASK=\u62D2\u7EDD\u5BFC\u51FA\u7ED3\u679C\u96C6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_PERMISSION_APPLY_TASK=\u62D2\u7EDD\u6743\u9650\u7533\u8BF7\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_SHADOWTABLE_SYNC_TASK=\u62D2\u7EDD\u5F71\u5B50\u8868\u540C\u6B65\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_STRUCTURE_COMPARISON_TASK=\u62D2\u7EDD\u7ED3\u6784\u6BD4\u5BF9\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_PARTITION_PLAN_TASK=\u62D2\u7EDD\u5206\u533A\u8BA1\u5212\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_ALTER_SCHEDULE_TASK=\u62D2\u7EDD\u4FEE\u6539\u8C03\u5EA6\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_ONLINE_SCHEMA_CHANGE_TASK=\u62D2\u7EDD\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_APPLY_PROJECT_PERMISSION_TASK=\u62D2\u7EDD\u7533\u8BF7\u9879\u76EE\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_APPLY_DATABASE_PERMISSION_TASK=\u62D2\u7EDD\u7533\u8BF7\u6570\u636E\u5E93\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.REJECT_APPLY_TABLE_PERMISSION_TASK=\u62D2\u7EDD\u7533\u8BF7\u6570\u636E\u8868\u6743\u9650\u4EFB\u52A1
-com.oceanbase.odc.AuditEventAction.CREATE_DATA_MASKING_RULE=\u521B\u5EFA\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.UPDATE_DATA_MASKING_RULE=\u66F4\u65B0\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.ENABLE_DATA_MASKING_RULE=\u542F\u7528\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.DISABLE_DATA_MASKING_RULE=\u7981\u7528\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.CREATE_DATA_MASKING_POLICY=\u521B\u5EFA\u8131\u654F\u7B56\u7565
-com.oceanbase.odc.AuditEventAction.UPDATE_DATA_MASKING_POLICY=\u66F4\u65B0\u8131\u654F\u7B56\u7565
-com.oceanbase.odc.AuditEventAction.DELETE_DATA_MASKING_POLICY=\u5220\u9664\u8131\u654F\u7B56\u7565
-com.oceanbase.odc.AuditEventAction.CREATE_INTEGRATION=\u521B\u5EFA\u96C6\u6210
-com.oceanbase.odc.AuditEventAction.ENABLE_INTEGRATION=\u542F\u7528\u96C6\u6210
-com.oceanbase.odc.AuditEventAction.DISABLE_INTEGRATION=\u7981\u7528\u96C6\u6210
-com.oceanbase.odc.AuditEventAction.DELETE_INTEGRATION=\u5220\u9664\u96C6\u6210
-com.oceanbase.odc.AuditEventAction.ADD_DATABASE=\u589E\u52A0\u6570\u636E\u5E93
-com.oceanbase.odc.AuditEventAction.DELETE_DATABASE=\u5220\u9664\u6570\u636E\u5E93
-com.oceanbase.odc.AuditEventAction.TRANSFER_DATABASE_TO_PROJECT=\u8F6C\u79FB\u9879\u76EE
-com.oceanbase.odc.AuditEventAction.CREATE_DATASOURCE=\u521B\u5EFA\u6570\u636E\u6E90
-com.oceanbase.odc.AuditEventAction.DELETE_DATASOURCE=\u5220\u9664\u6570\u636E\u6E90
-com.oceanbase.odc.AuditEventAction.UPDATE_DATASOURCE=\u66F4\u65B0\u6570\u636E\u6E90
-com.oceanbase.odc.AuditEventAction.CREATE_PROJECT=\u521B\u5EFA\u9879\u76EE
-com.oceanbase.odc.AuditEventAction.UPDATE_SQL_SECURITY_RULE=\u4FEE\u6539 SQL \u5B89\u5168\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.GRANT_DATABASE_PERMISSION=\u65B0\u589E\u5E93\u6743\u9650
-com.oceanbase.odc.AuditEventAction.REVOKE_DATABASE_PERMISSION=\u56DE\u6536\u5E93\u6743\u9650
-com.oceanbase.odc.AuditEventAction.GRANT_TABLE_PERMISSION=\u65B0\u589E\u8868\u6743\u9650
-com.oceanbase.odc.AuditEventAction.REVOKE_TABLE_PERMISSION=\u56DE\u6536\u8868\u6743\u9650
+com.oceanbase.odc.AuditEventAction.EXPORT_AUDIT_EVENT=导出审计事件
+com.oceanbase.odc.AuditEventAction.CREATE_FLOW_CONFIG=创建流程配置
+com.oceanbase.odc.AuditEventAction.UPDATE_FLOW_CONFIG=更新流程配置
+com.oceanbase.odc.AuditEventAction.ENABLE_FLOW_CONFIG=启用流程配置
+com.oceanbase.odc.AuditEventAction.DISABLE_FLOW_CONFIG=禁用流程配置
+com.oceanbase.odc.AuditEventAction.DELETE_FLOW_CONFIG=删除流程配置
+com.oceanbase.odc.AuditEventAction.BATCH_DELETE_FLOW_CONFIG=批量删除流程配置
+com.oceanbase.odc.AuditEventAction.CREATE_TASK=创建任务
+com.oceanbase.odc.AuditEventAction.STOP_TASK=停止任务
+com.oceanbase.odc.AuditEventAction.ROLLBACK_TASK=回滚任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_TASK=执行任务
+com.oceanbase.odc.AuditEventAction.APPROVE=同意
+com.oceanbase.odc.AuditEventAction.REJECT=拒绝
+com.oceanbase.odc.AuditEventAction.CREATE_ASYNC_TASK=创建数据库变更任务
+com.oceanbase.odc.AuditEventAction.CREATE_MULTIPLE_ASYNC_TASK=创建多库变更任务
+com.oceanbase.odc.AuditEventAction.CREATE_MOCKDATA_TASK=创建模拟数据任务
+com.oceanbase.odc.AuditEventAction.CREATE_IMPORT_TASK=创建导入任务
+com.oceanbase.odc.AuditEventAction.CREATE_EXPORT_TASK=创建导出任务
+com.oceanbase.odc.AuditEventAction.CREATE_EXPORT_RESULT_SET_TASK=创建导出结果集任务
+com.oceanbase.odc.AuditEventAction.CREATE_PERMISSION_APPLY_TASK=创建权限申请任务
+com.oceanbase.odc.AuditEventAction.CREATE_SHADOWTABLE_SYNC_TASK=创建影子表同步任务
+com.oceanbase.odc.AuditEventAction.CREATE_STRUCTURE_COMPARISON_TASK=创建结构比对任务
+com.oceanbase.odc.AuditEventAction.CREATE_PARTITION_PLAN_TASK=创建分区计划任务
+com.oceanbase.odc.AuditEventAction.CREATE_ALTER_SCHEDULE_TASK=创建修改调度任务
+com.oceanbase.odc.AuditEventAction.CREATE_ONLINE_SCHEMA_CHANGE_TASK=创建无锁结构变更任务
+com.oceanbase.odc.AuditEventAction.CREATE_APPLY_PROJECT_PERMISSION_TASK=创建申请项目权限任务
+com.oceanbase.odc.AuditEventAction.CREATE_APPLY_DATABASE_PERMISSION_TASK=创建申请数据库权限任务
+com.oceanbase.odc.AuditEventAction.CREATE_APPLY_TABLE_PERMISSION_TASK=创建申请数据表权限任务
+com.oceanbase.odc.AuditEventAction.STOP_ASYNC_TASK=停止数据库变更任务
+com.oceanbase.odc.AuditEventAction.STOP_MULTIPLE_ASYNC_TASK=停止多库变更任务
+com.oceanbase.odc.AuditEventAction.STOP_MOCKDATA_TASK=停止模拟数据任务
+com.oceanbase.odc.AuditEventAction.STOP_IMPORT_TASK=停止导入任务
+com.oceanbase.odc.AuditEventAction.STOP_EXPORT_TASK=停止导出任务
+com.oceanbase.odc.AuditEventAction.STOP_EXPORT_RESULT_SET_TASK=停止导出结果集任务
+com.oceanbase.odc.AuditEventAction.STOP_SHADOWTABLE_SYNC_TASK=停止影子表同步任务
+com.oceanbase.odc.AuditEventAction.STOP_STRUCTURE_COMPARISON_TASK=停止结构比对任务
+com.oceanbase.odc.AuditEventAction.STOP_PARTITION_PLAN_TASK=停止分区计划任务
+com.oceanbase.odc.AuditEventAction.STOP_ALTER_SCHEDULE_TASK=停止修改调度任务
+com.oceanbase.odc.AuditEventAction.STOP_ONLINE_SCHEMA_CHANGE_TASK=停止无锁结构变更任务
+com.oceanbase.odc.AuditEventAction.STOP_APPLY_PROJECT_PERMISSION_TASK=停止申请项目权限任务
+com.oceanbase.odc.AuditEventAction.STOP_APPLY_DATABASE_PERMISSION_TASK=停止申请数据库权限任务
+com.oceanbase.odc.AuditEventAction.STOP_APPLY_TABLE_PERMISSION_TASK=停止申请数据表权限任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_ASYNC_TASK=执行数据库变更任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_MULTIPLE_ASYNC_TASK=执行多库变更任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_MOCKDATA_TASK=执行模拟数据任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_IMPORT_TASK=执行导入任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_EXPORT_TASK=执行导出任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_EXPORT_RESULT_SET_TASK=执行导出结果集任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_SHADOWTABLE_SYNC_TASK=执行影子表同步任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_STRUCTURE_COMPARISON_TASK=执行结构比对任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_PARTITION_PLAN_TASK=执行分区计划任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_ALTER_SCHEDULE_TASK=执行修改调度任务
+com.oceanbase.odc.AuditEventAction.EXECUTE_ONLINE_SCHEMA_CHANGE_TASK=执行无锁结构变更任务
+com.oceanbase.odc.AuditEventAction.APPROVE_ASYNC_TASK=同意数据库变更任务
+com.oceanbase.odc.AuditEventAction.APPROVE_MULTIPLE_ASYNC_TASK=同意多库变更任务
+com.oceanbase.odc.AuditEventAction.APPROVE_MOCKDATA_TASK=同意模拟数据任务
+com.oceanbase.odc.AuditEventAction.APPROVE_IMPORT_TASK=同意导入任务
+com.oceanbase.odc.AuditEventAction.APPROVE_EXPORT_TASK=同意导出任务
+com.oceanbase.odc.AuditEventAction.APPROVE_EXPORT_RESULT_SET_TASK=同意导出结果集任务
+com.oceanbase.odc.AuditEventAction.APPROVE_PERMISSION_APPLY_TASK=同意权限申请任务
+com.oceanbase.odc.AuditEventAction.APPROVE_SHADOWTABLE_SYNC_TASK=同意影子表同步任务
+com.oceanbase.odc.AuditEventAction.APPROVE_STRUCTURE_COMPARISON_TASK=同意结构比对任务
+com.oceanbase.odc.AuditEventAction.APPROVE_PARTITION_PLAN_TASK=同意分区计划任务
+com.oceanbase.odc.AuditEventAction.APPROVE_ALTER_SCHEDULE_TASK=同意修改调度任务
+com.oceanbase.odc.AuditEventAction.APPROVE_ONLINE_SCHEMA_CHANGE_TASK=同意无锁结构变更任务
+com.oceanbase.odc.AuditEventAction.APPROVE_APPLY_PROJECT_PERMISSION_TASK=同意申请项目权限任务
+com.oceanbase.odc.AuditEventAction.APPROVE_APPLY_DATABASE_PERMISSION_TASK=同意申请数据库权限任务
+com.oceanbase.odc.AuditEventAction.APPROVE_APPLY_TABLE_PERMISSION_TASK=同意申请数据表权限任务
+com.oceanbase.odc.AuditEventAction.REJECT_ASYNC_TASK=拒绝数据库变更任务
+com.oceanbase.odc.AuditEventAction.REJECT_MULTIPLE_ASYNC_TASK=拒绝多库变更任务
+com.oceanbase.odc.AuditEventAction.REJECT_MOCKDATA_TASK=拒绝模拟数据任务
+com.oceanbase.odc.AuditEventAction.REJECT_IMPORT_TASK=拒绝导入任务
+com.oceanbase.odc.AuditEventAction.REJECT_EXPORT_TASK=拒绝导出任务
+com.oceanbase.odc.AuditEventAction.REJECT_EXPORT_RESULT_SET_TASK=拒绝导出结果集任务
+com.oceanbase.odc.AuditEventAction.REJECT_PERMISSION_APPLY_TASK=拒绝权限申请任务
+com.oceanbase.odc.AuditEventAction.REJECT_SHADOWTABLE_SYNC_TASK=拒绝影子表同步任务
+com.oceanbase.odc.AuditEventAction.REJECT_STRUCTURE_COMPARISON_TASK=拒绝结构比对任务
+com.oceanbase.odc.AuditEventAction.REJECT_PARTITION_PLAN_TASK=拒绝分区计划任务
+com.oceanbase.odc.AuditEventAction.REJECT_ALTER_SCHEDULE_TASK=拒绝修改调度任务
+com.oceanbase.odc.AuditEventAction.REJECT_ONLINE_SCHEMA_CHANGE_TASK=拒绝无锁结构变更任务
+com.oceanbase.odc.AuditEventAction.REJECT_APPLY_PROJECT_PERMISSION_TASK=拒绝申请项目权限任务
+com.oceanbase.odc.AuditEventAction.REJECT_APPLY_DATABASE_PERMISSION_TASK=拒绝申请数据库权限任务
+com.oceanbase.odc.AuditEventAction.REJECT_APPLY_TABLE_PERMISSION_TASK=拒绝申请数据表权限任务
+com.oceanbase.odc.AuditEventAction.CREATE_DATA_MASKING_RULE=创建脱敏规则
+com.oceanbase.odc.AuditEventAction.UPDATE_DATA_MASKING_RULE=更新脱敏规则
+com.oceanbase.odc.AuditEventAction.ENABLE_DATA_MASKING_RULE=启用脱敏规则
+com.oceanbase.odc.AuditEventAction.DISABLE_DATA_MASKING_RULE=禁用脱敏规则
+com.oceanbase.odc.AuditEventAction.CREATE_DATA_MASKING_POLICY=创建脱敏策略
+com.oceanbase.odc.AuditEventAction.UPDATE_DATA_MASKING_POLICY=更新脱敏策略
+com.oceanbase.odc.AuditEventAction.DELETE_DATA_MASKING_POLICY=删除脱敏策略
+com.oceanbase.odc.AuditEventAction.CREATE_INTEGRATION=创建集成
+com.oceanbase.odc.AuditEventAction.ENABLE_INTEGRATION=启用集成
+com.oceanbase.odc.AuditEventAction.DISABLE_INTEGRATION=禁用集成
+com.oceanbase.odc.AuditEventAction.DELETE_INTEGRATION=删除集成
+com.oceanbase.odc.AuditEventAction.ADD_DATABASE=增加数据库
+com.oceanbase.odc.AuditEventAction.DELETE_DATABASE=删除数据库
+com.oceanbase.odc.AuditEventAction.TRANSFER_DATABASE_TO_PROJECT=转移项目
+com.oceanbase.odc.AuditEventAction.CREATE_DATASOURCE=创建数据源
+com.oceanbase.odc.AuditEventAction.DELETE_DATASOURCE=删除数据源
+com.oceanbase.odc.AuditEventAction.UPDATE_DATASOURCE=更新数据源
+com.oceanbase.odc.AuditEventAction.CREATE_PROJECT=创建项目
+com.oceanbase.odc.AuditEventAction.UPDATE_SQL_SECURITY_RULE=修改 SQL 安全规则
+com.oceanbase.odc.AuditEventAction.GRANT_DATABASE_PERMISSION=新增库权限
+com.oceanbase.odc.AuditEventAction.REVOKE_DATABASE_PERMISSION=回收库权限
+com.oceanbase.odc.AuditEventAction.GRANT_TABLE_PERMISSION=新增表权限
+com.oceanbase.odc.AuditEventAction.REVOKE_TABLE_PERMISSION=回收表权限
-com.oceanbase.odc.AuditEventAction.CREATE_ENVIRONMENT=\u521B\u5EFA\u73AF\u5883
-com.oceanbase.odc.AuditEventAction.UPDATE_ENVIRONMENT=\u4FEE\u6539\u73AF\u5883
-com.oceanbase.odc.AuditEventAction.ENABLE_ENVIRONMENT=\u542F\u7528\u73AF\u5883
-com.oceanbase.odc.AuditEventAction.DISABLE_ENVIRONMENT=\u7981\u7528\u73AF\u5883
-com.oceanbase.odc.AuditEventAction.DELETE_ENVIRONMENT=\u5220\u9664\u73AF\u5883
+com.oceanbase.odc.AuditEventAction.CREATE_ENVIRONMENT=创建环境
+com.oceanbase.odc.AuditEventAction.UPDATE_ENVIRONMENT=修改环境
+com.oceanbase.odc.AuditEventAction.ENABLE_ENVIRONMENT=启用环境
+com.oceanbase.odc.AuditEventAction.DISABLE_ENVIRONMENT=禁用环境
+com.oceanbase.odc.AuditEventAction.DELETE_ENVIRONMENT=删除环境
-com.oceanbase.odc.AuditEventAction.CREATE_AUTOMATION_RULE=\u521B\u5EFA\u81EA\u52A8\u6388\u6743\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.ENABLE_AUTOMATION_RULE=\u542F\u7528\u81EA\u52A8\u6388\u6743\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.DISABLE_AUTOMATION_RULE=\u7981\u7528\u81EA\u52A8\u6388\u6743\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.UPDATE_AUTOMATION_RULE=\u4FEE\u6539\u81EA\u52A8\u6388\u6743\u89C4\u5219
-com.oceanbase.odc.AuditEventAction.DELETE_AUTOMATION_RULE=\u5220\u9664\u81EA\u52A8\u6388\u6743\u89C4\u5219
+com.oceanbase.odc.AuditEventAction.CREATE_AUTOMATION_RULE=创建自动授权规则
+com.oceanbase.odc.AuditEventAction.ENABLE_AUTOMATION_RULE=启用自动授权规则
+com.oceanbase.odc.AuditEventAction.DISABLE_AUTOMATION_RULE=禁用自动授权规则
+com.oceanbase.odc.AuditEventAction.UPDATE_AUTOMATION_RULE=修改自动授权规则
+com.oceanbase.odc.AuditEventAction.DELETE_AUTOMATION_RULE=删除自动授权规则
-com.oceanbase.odc.AuditEventAction.CREATE_NOTIFICATION_CHANNEL=\u521B\u5EFA\u63A8\u9001\u901A\u9053
-com.oceanbase.odc.AuditEventAction.UPDATE_NOTIFICATION_CHANNEL=\u4FEE\u6539\u63A8\u9001\u901A\u9053
-com.oceanbase.odc.AuditEventAction.DELETE_NOTIFICATION_CHANNEL=\u5220\u9664\u63A8\u9001\u901A\u9053
-com.oceanbase.odc.AuditEventAction.BATCH_UPDATE_NOTIFICATION_POLICIES=\u66F4\u65B0\u63A8\u9001\u89C4\u5219
+com.oceanbase.odc.AuditEventAction.CREATE_NOTIFICATION_CHANNEL=创建推送通道
+com.oceanbase.odc.AuditEventAction.UPDATE_NOTIFICATION_CHANNEL=修改推送通道
+com.oceanbase.odc.AuditEventAction.DELETE_NOTIFICATION_CHANNEL=删除推送通道
+com.oceanbase.odc.AuditEventAction.BATCH_UPDATE_NOTIFICATION_POLICIES=更新推送规则
-com.oceanbase.odc.AuditEventAction.BATCH_CREATE_SENSITIVE_COLUMNS=\u6279\u91CF\u521B\u5EFA\u654F\u611F\u5217
-com.oceanbase.odc.AuditEventAction.BATCH_UPDATE_SENSITIVE_COLUMNS=\u6279\u91CF\u66F4\u65B0\u654F\u611F\u5217
-com.oceanbase.odc.AuditEventAction.BATCH_DELETE_SENSITIVE_COLUMNS=\u6279\u91CF\u5220\u9664\u654F\u611F\u5217
-com.oceanbase.odc.AuditEventAction.ENABLE_SENSITIVE_COLUMN=\u542F\u7528\u654F\u611F\u5217
-com.oceanbase.odc.AuditEventAction.DISABLE_SENSITIVE_COLUMN=\u7981\u7528\u654F\u611F\u5217
+com.oceanbase.odc.AuditEventAction.BATCH_CREATE_SENSITIVE_COLUMNS=批量创建敏感列
+com.oceanbase.odc.AuditEventAction.BATCH_UPDATE_SENSITIVE_COLUMNS=批量更新敏感列
+com.oceanbase.odc.AuditEventAction.BATCH_DELETE_SENSITIVE_COLUMNS=批量删除敏感列
+com.oceanbase.odc.AuditEventAction.ENABLE_SENSITIVE_COLUMN=启用敏感列
+com.oceanbase.odc.AuditEventAction.DISABLE_SENSITIVE_COLUMN=禁用敏感列
-com.oceanbase.odc.AuditEventAction.CREATE_DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE=\u521B\u5EFA\u6570\u636E\u5E93\u53D8\u66F4\u987A\u5E8F\u6A21\u677F
-com.oceanbase.odc.AuditEventAction.UPDATE_DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE=\u66F4\u65B0\u6570\u636E\u5E93\u53D8\u66F4\u987A\u5E8F\u6A21\u677F
-com.oceanbase.odc.AuditEventAction.DELETE_DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE=\u5220\u9664\u6570\u636E\u5E93\u53D8\u66F4\u987A\u5E8F\u6A21\u677F
+com.oceanbase.odc.AuditEventAction.CREATE_DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE=创建数据库变更顺序模板
+com.oceanbase.odc.AuditEventAction.UPDATE_DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE=更新数据库变更顺序模板
+com.oceanbase.odc.AuditEventAction.DELETE_DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE=删除数据库变更顺序模板
#
# AuditEventType
#
-com.oceanbase.odc.AuditEventType.PERSONAL_CONFIGURATION=\u4E2A\u4EBA\u914D\u7F6E
-com.oceanbase.odc.AuditEventType.PASSWORD_MANAGEMENT=\u5BC6\u7801\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.CONNECTION_MANAGEMENT=\u8FDE\u63A5\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.SCRIPT_MANAGEMENT=\u811A\u672C\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.DATABASE_OPERATION=\u6570\u636E\u5E93\u64CD\u4F5C
-com.oceanbase.odc.AuditEventType.ORGANIZATION_CONFIGURATION=\u7EC4\u7EC7\u914D\u7F6E
-com.oceanbase.odc.AuditEventType.RESOURCE_GROUP_MANAGEMENT=\u8D44\u6E90\u7EC4\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.MEMBER_MANAGEMENT=\u4EBA\u5458\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.AUDIT_EVENT=\u5BA1\u8BA1\u4E8B\u4EF6
-com.oceanbase.odc.AuditEventType.FLOW_CONFIG=\u6D41\u7A0B\u914D\u7F6E
-com.oceanbase.odc.AuditEventType.MULTIPLE_ASYNC=\u591A\u5E93\u53D8\u66F4
-com.oceanbase.odc.AuditEventType.ASYNC=\u6570\u636E\u5E93\u53D8\u66F4
-com.oceanbase.odc.AuditEventType.MOCKDATA=\u6A21\u62DF\u6570\u636E
-com.oceanbase.odc.AuditEventType.IMPORT=\u5BFC\u5165
-com.oceanbase.odc.AuditEventType.EXPORT=\u5BFC\u51FA
-com.oceanbase.odc.AuditEventType.EXPORT_RESULT_SET=\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.AuditEventType.SHADOWTABLE_SYNC=\u5F71\u5B50\u8868\u540C\u6B65
-com.oceanbase.odc.AuditEventType.STRUCTURE_COMPARISON=\u7ED3\u6784\u6BD4\u5BF9
-com.oceanbase.odc.AuditEventType.PARTITION_PLAN=\u5206\u533A\u8BA1\u5212
-com.oceanbase.odc.AuditEventType.ALTER_SCHEDULE=\u4FEE\u6539\u8C03\u5EA6
-com.oceanbase.odc.AuditEventType.ONLINE_SCHEMA_CHANGE=\u65E0\u9501\u7ED3\u6784\u53D8\u66F4
-com.oceanbase.odc.AuditEventType.APPLY_PROJECT_PERMISSION=\u7533\u8BF7\u9879\u76EE\u6743\u9650
-com.oceanbase.odc.AuditEventType.APPLY_DATABASE_PERMISSION=\u7533\u8BF7\u6570\u636E\u5E93\u6743\u9650
-com.oceanbase.odc.AuditEventType.APPLY_TABLE_PERMISSION=\u7533\u8BF7\u6570\u636E\u8868\u6743\u9650
-com.oceanbase.odc.AuditEventType.DATA_MASKING_RULE=\u8131\u654F\u89C4\u5219
-com.oceanbase.odc.AuditEventType.DATA_MASKING_POLICY=\u8131\u654F\u7B56\u7565
-com.oceanbase.odc.AuditEventType.PERMISSION_APPLY=\u6743\u9650\u7533\u8BF7
-com.oceanbase.odc.AuditEventType.UNKNOWN_TASK_TYPE=\u672A\u77E5\u4EFB\u52A1\u7C7B\u578B
-com.oceanbase.odc.AuditEventType.DATABASE_MANAGEMENT=\u6570\u636E\u5E93\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.DATASOURCE_MANAGEMENT=\u6570\u636E\u6E90\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.PROJECT_MANAGEMENT=\u9879\u76EE\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.SQL_SECURITY_RULE_MANAGEMENT=SQL \u5B89\u5168\u89C4\u5219\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.DATABASE_PERMISSION_MANAGEMENT=\u5E93\u6743\u9650\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.TABLE_PERMISSION_MANAGEMENT=\u8868\u6743\u9650\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.ENVIRONMENT_MANAGEMENT=\u73AF\u5883\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.AUTOMATION_RULE_MANAGEMENT=\u81EA\u52A8\u6388\u6743\u89C4\u5219\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.NOTIFICATION_MANAGEMENT=\u6D88\u606F\u63A8\u9001\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.SENSITIVE_COLUMN_MANAGEMENT=\u654F\u611F\u5217\u7BA1\u7406
-com.oceanbase.odc.AuditEventType.DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE_MANAGEMENT=\u6570\u636E\u5E93\u53D8\u66F4\u987A\u5E8F\u6A21\u677F\u7BA1\u7406
+com.oceanbase.odc.AuditEventType.PERSONAL_CONFIGURATION=个人配置
+com.oceanbase.odc.AuditEventType.PASSWORD_MANAGEMENT=密码管理
+com.oceanbase.odc.AuditEventType.CONNECTION_MANAGEMENT=连接管理
+com.oceanbase.odc.AuditEventType.SCRIPT_MANAGEMENT=脚本管理
+com.oceanbase.odc.AuditEventType.DATABASE_OPERATION=数据库操作
+com.oceanbase.odc.AuditEventType.ORGANIZATION_CONFIGURATION=组织配置
+com.oceanbase.odc.AuditEventType.RESOURCE_GROUP_MANAGEMENT=资源组管理
+com.oceanbase.odc.AuditEventType.MEMBER_MANAGEMENT=人员管理
+com.oceanbase.odc.AuditEventType.AUDIT_EVENT=审计事件
+com.oceanbase.odc.AuditEventType.FLOW_CONFIG=流程配置
+com.oceanbase.odc.AuditEventType.MULTIPLE_ASYNC=多库变更
+com.oceanbase.odc.AuditEventType.ASYNC=数据库变更
+com.oceanbase.odc.AuditEventType.MOCKDATA=模拟数据
+com.oceanbase.odc.AuditEventType.IMPORT=导入
+com.oceanbase.odc.AuditEventType.EXPORT=导出
+com.oceanbase.odc.AuditEventType.EXPORT_RESULT_SET=导出结果集
+com.oceanbase.odc.AuditEventType.SHADOWTABLE_SYNC=影子表同步
+com.oceanbase.odc.AuditEventType.STRUCTURE_COMPARISON=结构比对
+com.oceanbase.odc.AuditEventType.PARTITION_PLAN=分区计划
+com.oceanbase.odc.AuditEventType.ALTER_SCHEDULE=修改调度
+com.oceanbase.odc.AuditEventType.ONLINE_SCHEMA_CHANGE=无锁结构变更
+com.oceanbase.odc.AuditEventType.APPLY_PROJECT_PERMISSION=申请项目权限
+com.oceanbase.odc.AuditEventType.APPLY_DATABASE_PERMISSION=申请数据库权限
+com.oceanbase.odc.AuditEventType.APPLY_TABLE_PERMISSION=申请数据表权限
+com.oceanbase.odc.AuditEventType.DATA_MASKING_RULE=脱敏规则
+com.oceanbase.odc.AuditEventType.DATA_MASKING_POLICY=脱敏策略
+com.oceanbase.odc.AuditEventType.PERMISSION_APPLY=权限申请
+com.oceanbase.odc.AuditEventType.UNKNOWN_TASK_TYPE=未知任务类型
+com.oceanbase.odc.AuditEventType.DATABASE_MANAGEMENT=数据库管理
+com.oceanbase.odc.AuditEventType.DATASOURCE_MANAGEMENT=数据源管理
+com.oceanbase.odc.AuditEventType.PROJECT_MANAGEMENT=项目管理
+com.oceanbase.odc.AuditEventType.SQL_SECURITY_RULE_MANAGEMENT=SQL 安全规则管理
+com.oceanbase.odc.AuditEventType.DATABASE_PERMISSION_MANAGEMENT=库权限管理
+com.oceanbase.odc.AuditEventType.TABLE_PERMISSION_MANAGEMENT=表权限管理
+com.oceanbase.odc.AuditEventType.ENVIRONMENT_MANAGEMENT=环境管理
+com.oceanbase.odc.AuditEventType.AUTOMATION_RULE_MANAGEMENT=自动授权规则管理
+com.oceanbase.odc.AuditEventType.NOTIFICATION_MANAGEMENT=消息推送管理
+com.oceanbase.odc.AuditEventType.SENSITIVE_COLUMN_MANAGEMENT=敏感列管理
+com.oceanbase.odc.AuditEventType.DATABASE_CHANGE_CHANGING_ORDER_TEMPLATE_MANAGEMENT=数据库变更顺序模板管理
#
# AuditEventResult result type
#
-com.oceanbase.odc.AuditEventResult.SUCCESS=\u6210\u529F
-com.oceanbase.odc.AuditEventResult.FAILED=\u5931\u8D25
-com.oceanbase.odc.AuditEventResult.UNFINISHED=\u672A\u5B8C\u6210
+com.oceanbase.odc.AuditEventResult.SUCCESS=成功
+com.oceanbase.odc.AuditEventResult.FAILED=失败
+com.oceanbase.odc.AuditEventResult.UNFINISHED=未完成
#
# DBObjectType
#
-com.oceanbase.odc.DBObjectType.SCHEMA=\u6A21\u5F0F
-com.oceanbase.odc.DBObjectType.TABLE=\u8868
-com.oceanbase.odc.DBObjectType.COLUMN=\u5217
-com.oceanbase.odc.DBObjectType.INDEX=\u7D22\u5F15
-com.oceanbase.odc.DBObjectType.CONSTRAINT=\u7EA6\u675F
-com.oceanbase.odc.DBObjectType.PARTITION=\u5206\u533A
-com.oceanbase.odc.DBObjectType.SUBPARTITION=\u4E8C\u7EA7\u5206\u533A
-com.oceanbase.odc.DBObjectType.VIEW=\u89C6\u56FE
-com.oceanbase.odc.DBObjectType.TRIGGER=\u89E6\u53D1\u5668
-com.oceanbase.odc.DBObjectType.SEQUENCE=\u5E8F\u5217
-com.oceanbase.odc.DBObjectType.PROCEDURE=\u5B58\u50A8\u8FC7\u7A0B
-com.oceanbase.odc.DBObjectType.FUNCTION=\u51FD\u6570
-com.oceanbase.odc.DBObjectType.PACKAGE=\u7A0B\u5E8F\u5305
-com.oceanbase.odc.DBObjectType.PACKAGE_BODY=\u7A0B\u5E8F\u5305\u5305\u4F53
-com.oceanbase.odc.DBObjectType.SYNONYM=\u540C\u4E49\u8BCD
-com.oceanbase.odc.DBObjectType.TYPE=\u7C7B\u578B
+com.oceanbase.odc.DBObjectType.SCHEMA=模式
+com.oceanbase.odc.DBObjectType.TABLE=表
+com.oceanbase.odc.DBObjectType.COLUMN=列
+com.oceanbase.odc.DBObjectType.INDEX=索引
+com.oceanbase.odc.DBObjectType.CONSTRAINT=约束
+com.oceanbase.odc.DBObjectType.PARTITION=分区
+com.oceanbase.odc.DBObjectType.SUBPARTITION=二级分区
+com.oceanbase.odc.DBObjectType.VIEW=视图
+com.oceanbase.odc.DBObjectType.TRIGGER=触发器
+com.oceanbase.odc.DBObjectType.SEQUENCE=序列
+com.oceanbase.odc.DBObjectType.PROCEDURE=存储过程
+com.oceanbase.odc.DBObjectType.FUNCTION=函数
+com.oceanbase.odc.DBObjectType.PACKAGE=程序包
+com.oceanbase.odc.DBObjectType.PACKAGE_BODY=程序包包体
+com.oceanbase.odc.DBObjectType.SYNONYM=同义词
+com.oceanbase.odc.DBObjectType.TYPE=类型
#
# DBTableType
#
-com.oceanbase.odc.DBTableType.LOCAL_TEMPORARY=\u4E34\u65F6\u8868
-com.oceanbase.odc.DBTableType.SYSTEM_TABLE=\u7CFB\u7EDF\u8868
-com.oceanbase.odc.DBTableType.SYSTEM_VIEW=\u7CFB\u7EDF\u89C6\u56FE
-com.oceanbase.odc.DBTableType.TABLE=\u8868
-com.oceanbase.odc.DBTableType.VIEW=\u89C6\u56FE
+com.oceanbase.odc.DBTableType.LOCAL_TEMPORARY=临时表
+com.oceanbase.odc.DBTableType.SYSTEM_TABLE=系统表
+com.oceanbase.odc.DBTableType.SYSTEM_VIEW=系统视图
+com.oceanbase.odc.DBTableType.TABLE=表
+com.oceanbase.odc.DBTableType.VIEW=视图
com.oceanbase.odc.DBTableType.UNKNOWN=UNKNOWN
#
# Builtin Resource
#
-com.oceanbase.odc.builtin-resource.MaskRule.NAME.Name=\u59D3\u540D
-com.oceanbase.odc.builtin-resource.MaskRule.ID.Name=\u8EAB\u4EFD\u8BC1\u4EF6\u53F7\u7801
-com.oceanbase.odc.builtin-resource.MaskRule.MOBILE_PHONE.Name=\u624B\u673A\u53F7
-com.oceanbase.odc.builtin-resource.MaskRule.FIXED_PHONE.Name=\u56FA\u5B9A\u7535\u8BDD
-com.oceanbase.odc.builtin-resource.MaskRule.BANKCARD.Name=\u94F6\u884C\u5361\u53F7
-com.oceanbase.odc.builtin-resource.MaskRule.MAIL.Name=\u90AE\u7BB1
-com.oceanbase.odc.builtin-resource.MaskRule.DEFAULT.Name=\u7F3A\u7701\u89C4\u5219
-com.oceanbase.odc.builtin-resource.FlowConfig.DATABASE_CHANGE_ALL.Name=\u6570\u636E\u5E93\u53D8\u66F4/\u5168\u90E8\u53D8\u66F4
-com.oceanbase.odc.builtin-resource.FlowConfig.MOCK_DATA.Name=\u6A21\u62DF\u6570\u636E
-com.oceanbase.odc.builtin-resource.FlowConfig.EXPORT.Name=\u5BFC\u51FA
-com.oceanbase.odc.builtin-resource.FlowConfig.IMPORT.Name=\u5BFC\u5165
-com.oceanbase.odc.builtin-resource.FlowConfig.PERMISSION_APPLY.Name=\u6743\u9650\u7533\u8BF7
-com.oceanbase.odc.builtin-resource.FlowConfig.SHADOWTABLE_SYNC.Name=\u5F71\u5B50\u8868\u540C\u6B65
-com.oceanbase.odc.builtin-resource.FlowConfig.PARTITION_PLAN.Name=\u5206\u533A\u7BA1\u7406
-com.oceanbase.odc.builtin-resource.TriggerEvent.NEW_USER_FROM_OAUTH2.description=\u5F53\u65B0\u7528\u6237\u9996\u6B21\u4ECE OAuth2 \u767B\u5F55\u65F6\u89E6\u53D1
-com.oceanbase.odc.builtin-resource.TriggerEvent.USER_CREATED.description=\u5F53\u65B0\u7528\u6237\u9996\u6B21\u521B\u5EFA\u65F6\u89E6\u53D1
-com.oceanbase.odc.builtin-resource.TriggerEvent.USER_UPDATED.description=\u5F53\u7528\u6237\u66F4\u65B0\u65F6\u89E6\u53D1
-com.oceanbase.odc.builtin-resource.TriggerEvent.LOGIN_SUCCESS.description=\u7528\u6237\u767B\u5F55\u6210\u529F\u65F6\u89E6\u53D1
-com.oceanbase.odc.builtin-resource.iam.organization.team.display-name=\u56E2\u961F\u7A7A\u95F4
-com.oceanbase.odc.builtin-resource.iam.organization.team.description=\u652F\u6301\u591A\u9879\u76EE\u548C\u591A\u6210\u5458\uFF0C\u63D0\u4F9B\u534F\u540C\u7BA1\u63A7\u80FD\u529B\uFF0C\u9002\u5408\u56E2\u961F\u8FDB\u884C\u6570\u636E\u5E93\u5B89\u5168\u53D8\u66F4
-com.oceanbase.odc.builtin-resource.iam.organization.individual.display-name=\u4E2A\u4EBA\u7A7A\u95F4
-com.oceanbase.odc.builtin-resource.iam.organization.individual.description=\u9002\u5408\u4E2A\u4EBA\u5F00\u53D1\u8005\u8FDB\u884C\u6570\u636E\u5E93\u7075\u6D3B\u53D8\u66F4
-com.oceanbase.odc.builtin-resource.FlowConfig.ALTER_SCHEDULE.Name=\u8BA1\u5212\u53D8\u66F4
+com.oceanbase.odc.builtin-resource.MaskRule.NAME.Name=姓名
+com.oceanbase.odc.builtin-resource.MaskRule.ID.Name=身份证件号码
+com.oceanbase.odc.builtin-resource.MaskRule.MOBILE_PHONE.Name=手机号
+com.oceanbase.odc.builtin-resource.MaskRule.FIXED_PHONE.Name=固定电话
+com.oceanbase.odc.builtin-resource.MaskRule.BANKCARD.Name=银行卡号
+com.oceanbase.odc.builtin-resource.MaskRule.MAIL.Name=邮箱
+com.oceanbase.odc.builtin-resource.MaskRule.DEFAULT.Name=缺省规则
+com.oceanbase.odc.builtin-resource.FlowConfig.DATABASE_CHANGE_ALL.Name=数据库变更/全部变更
+com.oceanbase.odc.builtin-resource.FlowConfig.MOCK_DATA.Name=模拟数据
+com.oceanbase.odc.builtin-resource.FlowConfig.EXPORT.Name=导出
+com.oceanbase.odc.builtin-resource.FlowConfig.IMPORT.Name=导入
+com.oceanbase.odc.builtin-resource.FlowConfig.PERMISSION_APPLY.Name=权限申请
+com.oceanbase.odc.builtin-resource.FlowConfig.SHADOWTABLE_SYNC.Name=影子表同步
+com.oceanbase.odc.builtin-resource.FlowConfig.PARTITION_PLAN.Name=分区管理
+com.oceanbase.odc.builtin-resource.TriggerEvent.NEW_USER_FROM_OAUTH2.description=当新用户首次从 OAuth2 登录时触发
+com.oceanbase.odc.builtin-resource.TriggerEvent.USER_CREATED.description=当新用户首次创建时触发
+com.oceanbase.odc.builtin-resource.TriggerEvent.USER_UPDATED.description=当用户更新时触发
+com.oceanbase.odc.builtin-resource.TriggerEvent.LOGIN_SUCCESS.description=用户登录成功时触发
+com.oceanbase.odc.builtin-resource.iam.organization.team.display-name=团队空间
+com.oceanbase.odc.builtin-resource.iam.organization.team.description=支持多项目和多成员,提供协同管控能力,适合团队进行数据库安全变更
+com.oceanbase.odc.builtin-resource.iam.organization.individual.display-name=个人空间
+com.oceanbase.odc.builtin-resource.iam.organization.individual.description=适合个人开发者进行数据库灵活变更
+com.oceanbase.odc.builtin-resource.FlowConfig.ALTER_SCHEDULE.Name=计划变更
# below regulation module built-in
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-default-ruleset.name=\u9ED8\u8BA4\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-dev-ruleset.name=\u9ED8\u8BA4\u5F00\u53D1\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-sit-ruleset.name=\u9ED8\u8BA4\u6D4B\u8BD5\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-prod-ruleset.name=\u9ED8\u8BA4\u751F\u4EA7\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-default-ruleset.description=\u9ED8\u8BA4\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-dev-ruleset.description=\u9ED8\u8BA4\u5F00\u53D1\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-sit-ruleset.description=\u9ED8\u8BA4\u6D4B\u8BD5\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.ruleset.default-prod-ruleset.description=\u9ED8\u8BA4\u751F\u4EA7\u73AF\u5883 SQL \u5F00\u53D1\u89C4\u8303
-com.oceanbase.odc.builtin-resource.collaboration.environment.default.name=\u9ED8\u8BA4
-com.oceanbase.odc.builtin-resource.collaboration.environment.dev.name=\u5F00\u53D1
-com.oceanbase.odc.builtin-resource.collaboration.environment.sit.name=\u6D4B\u8BD5
-com.oceanbase.odc.builtin-resource.collaboration.environment.prod.name=\u751F\u4EA7
-com.oceanbase.odc.builtin-resource.collaboration.environment.default.description=\u9ED8\u8BA4\u73AF\u5883
-com.oceanbase.odc.builtin-resource.collaboration.environment.dev.description=\u5F00\u53D1\u73AF\u5883
-com.oceanbase.odc.builtin-resource.collaboration.environment.sit.description=\u6D4B\u8BD5\u73AF\u5883
-com.oceanbase.odc.builtin-resource.collaboration.environment.prod.description=\u751F\u4EA7\u73AF\u5883
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-default-ruleset.name=默认环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-dev-ruleset.name=默认开发环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-sit-ruleset.name=默认测试环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-prod-ruleset.name=默认生产环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-default-ruleset.description=默认环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-dev-ruleset.description=默认开发环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-sit-ruleset.description=默认测试环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.regulation.ruleset.default-prod-ruleset.description=默认生产环境 SQL 开发规范
+com.oceanbase.odc.builtin-resource.collaboration.environment.default.name=默认
+com.oceanbase.odc.builtin-resource.collaboration.environment.dev.name=开发
+com.oceanbase.odc.builtin-resource.collaboration.environment.sit.name=测试
+com.oceanbase.odc.builtin-resource.collaboration.environment.prod.name=生产
+com.oceanbase.odc.builtin-resource.collaboration.environment.default.description=默认环境
+com.oceanbase.odc.builtin-resource.collaboration.environment.dev.description=开发环境
+com.oceanbase.odc.builtin-resource.collaboration.environment.sit.description=测试环境
+com.oceanbase.odc.builtin-resource.collaboration.environment.prod.description=生产环境
# below built-in regulation sql development rules
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.name=\u7981\u6B62\u7F16\u8F91\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.message=\u7981\u6B62\u7F16\u8F91\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.description=\u7981\u6B62\u7F16\u8F91\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.metadata.name=\u7981\u6B62\u7F16\u8F91\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.metadata.description=\u7981\u6B62\u7F16\u8F91\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.name=\u7981\u6B62\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.message=\u7981\u6B62\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.description=\u7981\u6B62\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.metadata.name=\u7981\u6B62\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.metadata.description=\u7981\u6B62\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.name=SQL \u7A97\u53E3\u8FD4\u56DE\u7ED3\u679C\u96C6\u6700\u5927\u884C\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.message=SQL \u7A97\u53E3\u8FD4\u56DE\u7ED3\u679C\u96C6\u6700\u5927\u884C\u6570\uFF1A{0}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.description=SQL \u7A97\u53E3\u8FD4\u56DE\u7ED3\u679C\u96C6\u6700\u5927\u884C\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.metadata.name=SQL \u7A97\u53E3\u8FD4\u56DE\u7ED3\u679C\u96C6\u6700\u5927\u884C\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.metadata.description=SQL \u7A97\u53E3\u8FD4\u56DE\u7ED3\u679C\u96C6\u6700\u5927\u884C\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.name=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684 SQL \u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.message=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684 SQL \u7C7B\u578B\uFF1A{0}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.description=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684 SQL \u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.metadata.name=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684 SQL \u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.metadata.description=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684 SQL \u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.name=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684\u6700\u5927 SQL \u4E2A\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.message=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684\u6700\u5927 SQL \u4E2A\u6570\uFF1A{0}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.description=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684\u6700\u5927 SQL \u4E2A\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.metadata.name=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684\u6700\u5927 SQL \u4E2A\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.metadata.description=SQL \u7A97\u53E3\u5141\u8BB8\u6267\u884C\u7684\u6700\u5927 SQL \u4E2A\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.name=SQL \u7A97\u53E3\u7981\u6B62 PL \u8C03\u8BD5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.message=SQL \u7A97\u53E3\u7981\u6B62 PL \u8C03\u8BD5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.description=PL \u8C03\u8BD5\u4F1A\u6709\u5DE5\u4F5C\u7EBF\u7A0B\u5361\u4F4F\u7684\u98CE\u9669\uFF0C\u6050\u5F71\u54CD\u751F\u4EA7\u7CFB\u7EDF\u7684\u7A33\u5B9A\uFF0C\u4E0D\u5EFA\u8BAE\u542F\u7528 PL \u8C03\u8BD5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.metadata.name=SQL \u7A97\u53E3\u7981\u6B62 PL \u8C03\u8BD5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.metadata.description=SQL \u7A97\u53E3\u7981\u6B62 PL \u8C03\u8BD5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.name=SQL \u7A97\u53E3\u7981\u6B62\u521B\u5EFA PL
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.message=SQL \u7A97\u53E3\u7981\u6B62\u521B\u5EFA PL
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.description=SQL \u7A97\u53E3\u7981\u6B62\u521B\u5EFA PL
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.metadata.name=SQL \u7A97\u53E3\u7981\u6B62\u521B\u5EFA PL
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.metadata.description=SQL \u7A97\u53E3\u7981\u6B62\u521B\u5EFA PL
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.name=\u5916\u90E8 SQL \u5BA1\u6838\u96C6\u6210
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.message=\u5916\u90E8 SQL \u5BA1\u6838\u96C6\u6210\u7CFB\u7EDF\u62E6\u622A\u4E86\u8BE5 SQL
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.description=\u5916\u90E8 SQL \u5BA1\u6838\u96C6\u6210
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.metadata.name=\u5916\u90E8 SQL \u5BA1\u6838\u96C6\u6210
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.metadata.description=\u5916\u90E8 SQL \u5BA1\u6838\u96C6\u6210
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.name=禁止编辑结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.message=禁止编辑结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.description=禁止编辑结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.metadata.name=禁止编辑结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-edit-resultset.metadata.description=禁止编辑结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.name=禁止导出结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.message=禁止导出结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.description=禁止导出结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.metadata.name=禁止导出结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-export-resultset.metadata.description=禁止导出结果集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.name=SQL 窗口返回结果集最大行数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.message=SQL 窗口返回结果集最大行数:{0}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.description=SQL 窗口返回结果集最大行数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.metadata.name=SQL 窗口返回结果集最大行数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-return-rows.metadata.description=SQL 窗口返回结果集最大行数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.name=SQL 窗口允许执行的 SQL 类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.message=SQL 窗口允许执行的 SQL 类型:{0}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.description=SQL 窗口允许执行的 SQL 类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.metadata.name=SQL 窗口允许执行的 SQL 类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.allow-sql-types.metadata.description=SQL 窗口允许执行的 SQL 类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.name=SQL 窗口允许执行的最大 SQL 个数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.message=SQL 窗口允许执行的最大 SQL 个数:{0}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.description=SQL 窗口允许执行的最大 SQL 个数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.metadata.name=SQL 窗口允许执行的最大 SQL 个数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.max-execute-sqls.metadata.description=SQL 窗口允许执行的最大 SQL 个数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.name=SQL 窗口禁止 PL 调试
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.message=SQL 窗口禁止 PL 调试
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.description=PL 调试会有工作线程卡住的风险,恐影响生产系统的稳定,不建议启用 PL 调试
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.metadata.name=SQL 窗口禁止 PL 调试
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-debug-pl.metadata.description=SQL 窗口禁止 PL 调试
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.name=SQL 窗口禁止创建 PL
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.message=SQL 窗口禁止创建 PL
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.description=SQL 窗口禁止创建 PL
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.metadata.name=SQL 窗口禁止创建 PL
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.not-allowed-create-pl.metadata.description=SQL 窗口禁止创建 PL
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.name=外部 SQL 审核集成
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.message=外部 SQL 审核集成系统拦截了该 SQL
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.description=外部 SQL 审核集成
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.metadata.name=外部 SQL 审核集成
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-console.external-sql-interceptor.metadata.description=外部 SQL 审核集成
#
# sql-check
#
-com.oceanbase.odc.CheckViolation.LocalizedMessage=\u4F4D\u4E8E\u7B2C {0} \u884C\uFF0C\u7B2C {1} \u5217\u7684\u8BED\u53E5\u53EF\u80FD\u5B58\u5728\u95EE\u9898\uFF0C\u8BE6\u60C5\uFF1A{2}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.syntax-error.message=\u8BED\u53E5\u5B58\u5728\u8BED\u6CD5\u9519\u8BEF\uFF0C\u8BE6\u60C5\uFF1A{0}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.syntax-error.name=\u8BED\u6CD5\u9519\u8BEF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.syntax-error.description=\u5F85\u68C0\u6D4B\u7684\u8BED\u53E5\u5B58\u5728\u8BED\u6CD5\u9519\u8BEF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-calculation.message=\u5217\u6761\u4EF6\u4E0A\u5B58\u5728\u8BA1\u7B97\uFF0C\u53EF\u80FD\u5BFC\u81F4\u7D22\u5F15\u5931\u6548
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-calculation.name=\u5217\u6761\u4EF6\u4E0A\u5B58\u5728\u8BA1\u7B97
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-calculation.description=\u5217\u6761\u4EF6\u4E0A\u5B58\u5728\u8BA1\u7B97\uFF0C\u53EF\u80FD\u5BFC\u81F4\u7D22\u5F15\u5931\u6548
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-fuzzy-match.message=LIKE \u8FD0\u7B97\u5B58\u5728\u5DE6\u6A21\u7CCA\u5339\u914D\uFF0C\u53EF\u80FD\u5BFC\u81F4\u7D22\u5F15\u5931\u6548
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-fuzzy-match.name=LIKE \u8FD0\u7B97\u5B58\u5728\u5DE6\u6A21\u7CCA\u5339\u914D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-fuzzy-match.description=LIKE \u8FD0\u7B97\u5B58\u5728\u5DE6\u6A21\u7CCA\u5339\u914D\uFF0C\u53EF\u80FD\u5BFC\u81F4\u7D22\u5F15\u5931\u6548
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-implicit-conversion.message=\u5217\u6761\u4EF6\u4E0A\u5B58\u5728\u9690\u5F0F\u7C7B\u578B\u8F6C\u6362\uFF0C\u53EF\u80FD\u5BFC\u81F4\u7D22\u5F15\u5931\u6548
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-implicit-conversion.name=\u9690\u5F0F\u7C7B\u578B\u8F6C\u6362
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-implicit-conversion.description=\u5217\u6761\u4EF6\u4E0A\u5B58\u5728\u9690\u5F0F\u7C7B\u578B\u8F6C\u6362\uFF0C\u53EF\u80FD\u5BFC\u81F4\u7D22\u5F15\u5931\u6548
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.message=\u8FC7\u591A\u7684 IN \u503C\u5339\u914D\u53EF\u80FD\u5BFC\u81F4\u67E5\u8BE2\u6548\u7387\u964D\u4F4E\uFF0C\u5EFA\u8BAE\u4E0D\u8D85\u8FC7 {0} \u4E2A\uFF0C\u5B9E\u9645\u5B58\u5728 {1} \u4E2A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.name=\u8FC7\u591A\u7684 IN \u503C\u5339\u914D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.description=\u8FC7\u591A\u7684 IN \u503C\u5339\u914D\u53EF\u80FD\u5BFC\u81F4\u67E5\u8BE2\u6548\u7387\u964D\u4F4E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.max-in-expr-count=IN \u6761\u4EF6\u7684\u6570\u91CF\u6700\u5927\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.max-in-expr-count.description=\u6761\u4EF6\u8C13\u8BCD\u4E2D IN \u8FD0\u7B97\u4E2D\u8868\u8FBE\u5F0F\u6570\u91CF\u7684\u6700\u5927\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.message=\u8FC7\u591A\u7684\u8868\u5BF9\u8C61 JOIN\uFF0C\u53EF\u80FD\u5BFC\u81F4\u6267\u884C\u8BA1\u5212\u65E0\u6CD5\u6700\u4F18\uFF0C\u63A8\u8350\u4E0D\u8D85\u8FC7 {0} \u4E2A\uFF0C\u5B9E\u9645 {1} \u4E2A\u8868\u8054\u7ED3
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.name=\u8FC7\u591A\u7684\u8868\u5BF9\u8C61 JOIN
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.description=\u8FC7\u591A\u7684\u8868\u5BF9\u8C61 JOIN\uFF0C\u53EF\u80FD\u5BFC\u81F4\u6267\u884C\u8BA1\u5212\u65E0\u6CD5\u6700\u4F18
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.max-join-table-count=\u6700\u5927\u8868\u8054\u7ED3\u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.max-join-table-count.description=\u6700\u5927\u8868\u8054\u7ED3\u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-not-null-exists-not-in.message=NOT IN \u6761\u4EF6\u4E2D\u9700\u8981 NOT NULL \u6807\u8BC6\uFF0C\u907F\u514D\u9677\u5165\u5D4C\u5957\u5FAA\u73AF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-not-null-exists-not-in.name=NOT IN \u6761\u4EF6\u4E2D\u9700\u8981 NOT NULL \u6807\u8BC6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-not-null-exists-not-in.description=NOT IN \u6761\u4EF6\u4E2D\u9700\u8981 NOT NULL \u6807\u8BC6\uFF0C\u907F\u514D\u9677\u5165\u5D4C\u5957\u5FAA\u73AF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-valid-where-clause.message=UPDATE/DELETE \u8BED\u53E5\u4E2D\u7684 WHERE \u6761\u4EF6\u6052\u4E3A\u771F/\u5047\u9020\u6210\u6F5C\u5728\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-valid-where-clause.name=UPDATE/DELETE \u8BED\u53E5\u4E2D\u6CA1\u6709\u6709\u6548\u7684 WHERE \u6761\u4EF6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-valid-where-clause.description=UPDATE/DELETE \u8BED\u53E5\u4E2D\u7684 WHERE \u6761\u4EF6\u6052\u4E3A\u771F/\u5047\u9020\u6210\u6F5C\u5728\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-where-clause-exists.message=UPDATE/DELETE \u8BED\u53E5\u4E2D\u6CA1\u6709 WHERE \u6761\u4EF6\u9020\u6210\u6F5C\u5728\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-where-clause-exists.name=UPDATE/DELETE \u8BED\u53E5\u4E2D\u6CA1\u6709 WHERE \u6761\u4EF6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-where-clause-exists.description=UPDATE/DELETE \u8BED\u53E5\u4E2D\u6CA1\u6709 WHERE \u6761\u4EF6\u9020\u6210\u6F5C\u5728\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-specific-column-exists.message=INSERT/REPLACE \u8BED\u53E5\u4E2D\u6CA1\u6709\u5177\u4F53\u7684\u5217\uFF0C\u53EF\u80FD\u5BFC\u81F4\u9690\u5F0F\u8F6C\u6362\u9519\u8BEF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-specific-column-exists.name=INSERT/REPLACE \u8BED\u53E5\u672A\u6307\u5B9A\u5217\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-specific-column-exists.description=INSERT/REPLACE \u8BED\u53E5\u4E2D\u6CA1\u6709\u5177\u4F53\u7684\u5217\uFF0C\u53EF\u80FD\u5BFC\u81F4\u9690\u5F0F\u8F6C\u6362\u9519\u8BEF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-key-exists.message=\u5BF9\u5E26\u7D22\u5F15\u7684\u8868\u5BF9\u8C61 {0} \u64CD\u4F5C\u6CA1\u6709\u4F7F\u7528\u7D22\u5F15\uFF0C\u53EF\u80FD\u5BFC\u81F4\u5168\u8868\u626B\u63CF\uFF0C\u9020\u6210\u6027\u80FD\u4E0B\u964D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-key-exists.name=\u6CA1\u6709\u4F7F\u7528\u7D22\u5F15
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-key-exists.description=\u5BF9\u5E26\u7D22\u5F15\u7684\u8868\u5BF9\u8C61\u64CD\u4F5C\u6CA1\u6709\u4F7F\u7528\u7D22\u5F15\uFF0C\u53EF\u80FD\u5BFC\u81F4\u5168\u8868\u626B\u63CF\uFF0C\u9020\u6210\u6027\u80FD\u4E0B\u964D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-partition-key-exists.message=\u5BF9\u5206\u533A\u8868 {0} \u64CD\u4F5C\u6CA1\u6709\u4F7F\u7528\u5206\u533A\u952E\uFF0C\u5BFC\u81F4\u65E0\u6CD5\u8FDB\u884C\u5206\u533A\u88C1\u526A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-partition-key-exists.name=\u6CA1\u6709\u4F7F\u7528\u5206\u533A\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-partition-key-exists.description=\u5BF9\u5206\u533A\u8868\u64CD\u4F5C\u6CA1\u6709\u4F7F\u7528\u5206\u533A\u952E\uFF0C\u5BFC\u81F4\u65E0\u6CD5\u8FDB\u884C\u5206\u533A\u88C1\u526A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.message=\u8868\u5BF9\u8C61 {0} \u4E0A\u5B58\u5728\u8FC7\u591A\u7D22\u5F15\uFF0C\u53EF\u80FD\u5BFC\u81F4\u6027\u80FD\u4E0B\u964D\uFF0C\u63A8\u8350\u4E0D\u8981\u8D85\u8FC7 {1} \u4E2A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.name=\u5355\u8868\u5305\u542B\u4E86\u8FC7\u591A\u7684\u7D22\u5F15
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.description=\u5355\u8868\u5305\u542B\u4E86\u8FC7\u591A\u7684\u7D22\u5F15\uFF0C\u53EF\u80FD\u5BFC\u81F4\u6027\u80FD\u4E0B\u964D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.max-index-count=\u6700\u5927\u7D22\u5F15\u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.max-index-count.description=\u8868\u5B9A\u4E49\u4E2D\u80FD\u591F\u51FA\u73B0\u7684\u7D22\u5F15\u6570\u91CF\u6700\u5927\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prefer-local-index.message=\u63A8\u8350\u4F7F\u7528\u5C40\u90E8\u7D22\u5F15
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prefer-local-index.name=\u63A8\u8350\u4F7F\u7528\u5C40\u90E8\u7D22\u5F15
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prefer-local-index.description=\u63A8\u8350\u4F7F\u7528\u5C40\u90E8\u7D22\u5F15
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.message=\u8868\u5BF9\u8C61 {0} \u5B58\u5728\u8FC7\u591A\u7684\u5217\uFF0C\u63A8\u8350\u4E0D\u8D85\u8FC7 {1} \u4E2A\uFF0C\u5B9E\u9645 {2} \u4E2A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.name=\u5355\u8868\u5305\u542B\u4E86\u8FC7\u591A\u7684\u5217
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.description=\u5355\u8868\u5305\u542B\u4E86\u8FC7\u591A\u7684\u5217
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.max-column-definition-count=\u6700\u5927\u5217\u5B9A\u4E49\u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.max-column-definition-count.description=\u8868\u5B9A\u4E49\u4E2D\u80FD\u591F\u51FA\u73B0\u7684\u5217\u6570\u91CF\u7684\u6700\u5927\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.message=\u8868\u5B9A\u4E49\u4E2D CHAR \u7C7B\u578B\u7684\u957F\u5EA6\u8FC7\u957F\uFF0C\u5EFA\u8BAE\u4E0D\u8981\u8D85\u8FC7 {0} \uFF0C\u5B9E\u9645\u503C\u4E3A {1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.name=\u9650\u5236 CHAR \u7C7B\u578B\u5B57\u6BB5\u7684\u957F\u5EA6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.description=CHAR \u7C7B\u578B\u5B57\u6BB5\u7684\u957F\u5EA6\u4E0D\u8981\u592A\u957F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.max-char-length=CHAR \u6700\u5927\u5141\u8BB8\u957F\u5EA6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.max-char-length.description=CHAR \u6700\u5927\u5141\u8BB8\u957F\u5EA6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.message=\u552F\u4E00\u7D22\u5F15\u7684\u547D\u540D {0} \u683C\u5F0F\u4E0D\u7B26\u5408\u89C4\u8303\uFF0C\u547D\u540D\u6A21\u5F0F\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.name=\u9650\u5236\u552F\u4E00\u7D22\u5F15\u540D\u683C\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.description=\u552F\u4E00\u7D22\u5F15\u7684\u89C4\u8303\u547D\u540D\u6709\u52A9\u4E8E\u63D0\u9AD8\u6570\u636E\u5E93\u5F00\u53D1\u6548\u7387\uFF0C\u9ED8\u8BA4\uFF1Auk_${table-name}_${column-name-1}_${column-name-2}_...
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.name-pattern=\u552F\u4E00\u7D22\u5F15\u540D\u79F0\u6B63\u5219\u8868\u8FBE\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.name-pattern.description=\u552F\u4E00\u7D22\u5F15\u540D\u79F0\u6B63\u5219\u8868\u8FBE\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.foreign-constraint-exists.message=\u8868\u4E0D\u80FD\u4F7F\u7528\u5916\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.foreign-constraint-exists.name=\u8868\u4E0D\u80FD\u4F7F\u7528\u5916\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.foreign-constraint-exists.description=\u8868\u4E0D\u80FD\u4F7F\u7528\u5916\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-exists.message=\u8868\u8981\u6709\u4E3B\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-exists.name=\u8868\u8981\u6709\u4E3B\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-exists.description=\u8868\u8981\u6709\u4E3B\u952E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-table-comment-exists.message=\u8868\u5BF9\u8C61 {0} \u5FC5\u987B\u542B\u6709\u6CE8\u91CA
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-table-comment-exists.name=\u8868\u5FC5\u987B\u6CE8\u91CA
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-table-comment-exists.description=\u8868\u5BF9\u8C61\u5B58\u5728\u6CE8\u91CA\u53EF\u6709\u52A9\u4E8E\u5FEB\u901F\u4E86\u89E3\u8868\u7684\u4E1A\u52A1\u80CC\u666F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.message=\u8868\u5BF9\u8C61\u4E0D\u80FD\u4EE5 {0} \u547D\u540D\uFF0C\u8BE5\u540D\u5B57\u5904\u4E8E\u9ED1\u540D\u5355\u4E2D\uFF0C\u9ED1\u540D\u5355\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.name=\u8868\u540D\u4E0D\u80FD\u5904\u4E8E\u9ED1\u540D\u5355
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.description=\u5EFA\u8868\u65F6\u7684\u8868\u540D\uFF0C\u4FEE\u6539\u8868\u540D\u65F6\u5747\u4E0D\u80FD\u4F7F\u7528\u5904\u4E8E\u9ED1\u540D\u5355\u4E2D\u7684\u8868\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.black-list=\u9ED1\u540D\u5355
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.black-list.description=\u8868\u540D\u9ED1\u540D\u5355
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.message=\u8868\u5BF9\u8C61\u4F7F\u7528\u7684\u5B57\u7B26\u96C6 {0} \u4E0D\u5728\u5141\u8BB8\u8303\u56F4\u5185\uFF0C\u5141\u8BB8\u4F7F\u7528\u7684\u5B57\u7B26\u96C6\u5305\u62EC\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.name=\u9650\u5236\u8868\u5B57\u7B26\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.description=\u8868\u5BF9\u8C61\u4F7F\u7528\u7684\u5B57\u7B26\u96C6\u53EA\u80FD\u4ECE\u767D\u540D\u5355\u4E2D\u7ED9\u51FA\u7684\u9009\u9879\u4E2D\u9009\u62E9
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.allowed-charsets=\u5141\u8BB8\u7684\u5B57\u7B26\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.allowed-charsets.description=\u5141\u8BB8\u7684\u5B57\u7B26\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.message=\u8868\u5BF9\u8C61\u4F7F\u7528\u7684\u6392\u5E8F\u89C4\u5219 {0} \u4E0D\u5728\u5141\u8BB8\u7684\u8303\u56F4\u5185\u3002\u5141\u8BB8\u7684\u5F52\u7C7B\u5305\u62EC\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.name=\u9650\u5236\u8868\u5BF9\u8C61\u7684\u6392\u5E8F\u89C4\u5219
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.description=\u8868\u5BF9\u8C61\u4F7F\u7528\u7684\u6392\u5E8F\u89C4\u5219\u53EA\u80FD\u4ECE\u767D\u540D\u5355\u4E2D\u7ED9\u51FA\u7684\u9009\u9879\u4E2D\u9009\u62E9
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.allowed-collations=\u5141\u8BB8\u7684\u6392\u5E8F\u89C4\u5219
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.allowed-collations.description=\u5141\u8BB8\u7684\u6392\u5E8F\u89C4\u5219
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.message=\u7D22\u5F15\u4E2D\u5B58\u5728 {0} \u6B21\u5217\u5F15\u7528\uFF0C\u6700\u591A\u4E0D\u5E94\u8D85\u8FC7 {1} \u6B21\u5217\u5F15\u7528
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.name=\u9650\u5236\u5355\u4E2A\u7D22\u5F15\u5305\u542B\u5217\u7684\u4E2A\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.description=\u5355\u4E2A\u7D22\u5F15\u5B9A\u4E49\u4E2D\u7684\u5217\u5F15\u7528\u6570\u76EE\u4E0D\u5E94\u8FC7\u591A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.max-column-ref-count=\u6700\u5927\u5217\u5F15\u7528\u6570\u76EE
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.max-column-ref-count.description=\u6700\u5927\u5217\u5F15\u7528\u6570\u76EE
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.message=\u4E3B\u952E\u7EA6\u675F\u6D89\u53CA\u5217\u7684\u7C7B\u578B {0} \u4E0D\u5728\u5141\u8BB8\u8303\u56F4\u5185\uFF0C\u5141\u8BB8\u7684\u7C7B\u578B\u5305\u62EC\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.name=\u9650\u5236\u4E3B\u952E\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.description=\u8868\u7684\u4E3B\u952E\u6D89\u53CA\u7684\u5217\u5FC5\u987B\u662F\u89C4\u5219\u4E2D\u5B9A\u4E49\u7684\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.allowed-datatypes=\u5141\u8BB8\u4F5C\u4E3A\u4E3B\u952E\u7684\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.allowed-datatypes.description=\u5141\u8BB8\u4F5C\u4E3A\u4E3B\u952E\u7684\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.message=\u4E3B\u952E\u4E2D\u5B58\u5728 {0} \u6B21\u5217\u5F15\u7528\uFF0C\u6700\u591A\u4E0D\u5E94\u8D85\u8FC7 {1} \u6B21\u5217\u5F15\u7528
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.name=\u9650\u5236\u5355\u4E2A\u4E3B\u952E\u5305\u542B\u5217\u7684\u4E2A\u6570
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.description=\u5355\u4E2A\u4E3B\u952E\u5B9A\u4E49\u4E2D\u7684\u5217\u5F15\u7528\u6570\u76EE\u4E0D\u5E94\u8FC7\u591A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.max-column-ref-count=\u6700\u5927\u5217\u5F15\u7528\u6570\u76EE
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.max-column-ref-count.description=\u6700\u5927\u5217\u5F15\u7528\u6570\u76EE
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-auto-increment.message=\u9650\u5236\u4E3B\u952E\u5217\u5FC5\u987B\u81EA\u589E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-auto-increment.name=\u9650\u5236\u4E3B\u952E\u5217\u5FC5\u987B\u81EA\u589E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-auto-increment.description=\u9650\u5236\u4E3B\u952E\u5217\u5FC5\u987B\u81EA\u589E
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.message=\u7D22\u5F15\u7684\u547D\u540D {0} \u683C\u5F0F\u4E0D\u7B26\u5408\u89C4\u8303\uFF0C\u547D\u540D\u6A21\u5F0F\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.name=\u9650\u5236\u7D22\u5F15\u540D\u683C\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.description=\u7D22\u5F15\u7684\u89C4\u8303\u547D\u540D\u6709\u52A9\u4E8E\u63D0\u9AD8\u6570\u636E\u5E93\u5F00\u53D1\u6548\u7387\uFF0C\u9ED8\u8BA4\uFF1Aidx_${table-name}_${column-name-1}_${column-name-2}_...
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.name-pattern=\u7D22\u5F15\u540D\u79F0\u6B63\u5219\u8868\u8FBE\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.name-pattern.description=\u7D22\u5F15\u540D\u79F0\u6B63\u5219\u8868\u8FBE\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-name-exists.message=\u7D22\u5F15\u6216\u7EA6\u675F\u7684\u5B9A\u4E49\u6CA1\u6709\u547D\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-name-exists.name=\u7D22\u5F15\u6216\u7EA6\u675F\u9700\u8981\u8BBE\u7F6E\u540D\u79F0
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-name-exists.description=\u7D22\u5F15\u6216\u7EA6\u675F\u9700\u8981\u663E\u5F0F\u5B9A\u4E49\u540D\u79F0\uFF0C\u5426\u5219\u6570\u636E\u5E93\u4F1A\u81EA\u52A8\u547D\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.zerofill-exists.message=\u6570\u503C\u7C7B\u578B\u4F7F\u7528 ZEROFILL \u5C5E\u6027
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.zerofill-exists.name=\u6570\u503C\u7C7B\u578B\u4E0D\u80FD\u4F7F\u7528 ZEROFILL \u5C5E\u6027
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.zerofill-exists.description=\u6570\u503C\u7C7B\u578B\u4E0D\u80FD\u4F7F\u7528 ZEROFILL \u5C5E\u6027
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-charset-exists.message=\u4E0D\u80FD\u5BF9\u5217\u8BBE\u7F6E\u5B57\u7B26\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-charset-exists.name=\u4E0D\u80FD\u5BF9\u5217\u8BBE\u7F6E\u5B57\u7B26\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-charset-exists.description=\u4E0D\u80FD\u5BF9\u5217\u8BBE\u7F6E\u5B57\u7B26\u96C6
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-collation-exists.message=\u4E0D\u80FD\u5BF9\u5217\u8BBE\u7F6E\u6392\u5E8F\u89C4\u5219
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-collation-exists.name=\u4E0D\u80FD\u5BF9\u5217\u8BBE\u7F6E\u6392\u5E8F\u89C4\u5219
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-collation-exists.description=\u4E0D\u80FD\u5BF9\u5217\u8BBE\u7F6E\u6392\u5E8F\u89C4\u5219
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.message=\u7C7B\u578B\u4E3A {0} \u7684\u5217\u4E0D\u5141\u8BB8\u4E3A\u7A7A\uFF0C\u5141\u8BB8\u4E3A\u7A7A\u7684\u5217\u7684\u6570\u636E\u7C7B\u578B\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.name=\u9650\u5236\u5217\u4E0D\u53EF\u7A7A\uFF08NOT NULL)
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.description=\u9650\u5236\u5217\u4E0D\u53EF\u7A7A
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.nullable-datatype-list=\u5141\u8BB8\u4E3A\u7A7A\u7684\u5217\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.nullable-datatype-list.description=\u5141\u8BB8\u4E3A\u7A7A\u7684\u5217\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.message=\u6570\u636E\u7C7B\u578B\u4E3A {0} \u7684\u5217\u4E0D\u80FD\u6CA1\u6709\u9ED8\u8BA4\u503C\uFF0C\u5141\u8BB8\u6CA1\u6709\u9ED8\u8BA4\u503C\u7684\u5217\u7C7B\u578B\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.name=\u5217\u8981\u6709\u9ED8\u8BA4\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.description=\u5217\u8981\u6709\u9ED8\u8BA4\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.no-default-value-datatype-list=\u5141\u8BB8\u6CA1\u6709\u9ED8\u8BA4\u503C\u7684\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.no-default-value-datatype-list.description=\u5141\u8BB8\u6CA1\u6709\u9ED8\u8BA4\u503C\u7684\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-column-comment-exists.message=\u5217 {0} \u6CA1\u6709\u6CE8\u91CA
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-column-comment-exists.name=\u5217\u8981\u6709\u6CE8\u91CA
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-column-comment-exists.description=\u8868\u5B9A\u4E49\u4E2D\u5404\u4E2A\u5217\u9700\u8981\u6709\u6CE8\u91CA
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.message=\u5217\u4E0D\u80FD\u4EE5 {0} \u547D\u540D\uFF0C\u8BE5\u540D\u5B57\u5904\u4E8E\u9ED1\u540D\u5355\u4E2D\uFF0C\u9ED1\u540D\u5355\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.name=\u5217\u540D\u4E0D\u80FD\u5904\u4E8E\u9ED1\u540D\u5355
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.description=\u5EFA\u8868\u65F6\u7684\u5217\u540D\uFF0C\u4FEE\u6539\u5217\u540D\u65F6\u5747\u4E0D\u80FD\u4F7F\u7528\u5904\u4E8E\u9ED1\u540D\u5355\u4E2D\u7684\u5217\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.black-list=\u9ED1\u540D\u5355
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.black-list.description=\u5217\u540D\u9ED1\u540D\u5355
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.message=\u5217\u540D {0} \u7684\u5927\u5C0F\u5199\u8BBE\u5B9A\u4E0D\u7B26\u5408\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.name=\u9650\u5236\u5217\u540D\u5927\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.description=\u9650\u5236\u5217\u540D\u5927\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-uppercase=\u662F\u5426\u9650\u5236\u5927\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-uppercase.description=\u662F\u5426\u9650\u5236\u5927\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-lowercase=\u662F\u5426\u9650\u5236\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-lowercase.description=\u662F\u5426\u9650\u5236\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.message=\u8868\u540D {0} \u7684\u5927\u5C0F\u5199\u8BBE\u5B9A\u4E0D\u7B26\u5408\u89C4\u8303
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.name=\u9650\u5236\u8868\u540D\u5927\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.description=\u9650\u5236\u8868\u540D\u5927\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-uppercase=\u662F\u5426\u9650\u5236\u5927\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-uppercase.description=\u662F\u5426\u9650\u5236\u5927\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-lowercase=\u662F\u5426\u9650\u5236\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-lowercase.description=\u662F\u5426\u9650\u5236\u5C0F\u5199
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.message=\u9650\u5236\u8868\u7684\u5217\u81EA\u589E\u521D\u59CB\u503C\u4E3A {0}\uFF0C\u5B9E\u9645\u4E3A {1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.name=\u9650\u5236\u5EFA\u8868\u81EA\u589E\u521D\u59CB\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.description=\u9650\u5236\u5EFA\u8868\u81EA\u589E\u521D\u59CB\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.init-value=\u8868\u81EA\u589E\u521D\u59CB\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.init-value.description=\u8868\u81EA\u589E\u521D\u59CB\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.select-star-exists.message=SELECT \u8BED\u53E5\u4E2D\u4E0D\u5EFA\u8BAE\u4F7F\u7528 * \u6295\u5F71\u5168\u90E8\u5217
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.select-star-exists.name=SELECT \u8BED\u53E5\u4E0D\u5EFA\u8BAE\u4F7F\u7528 *
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.select-star-exists.description=SELECT \u8BED\u53E5\u4E0D\u5EFA\u8BAE\u4F7F\u7528 *
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.message=\u8868\u7F3A\u5C11\u5FC5\u8981\u7684\u5217\uFF1A{0}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.name=\u8868\u7F3A\u5C11\u5FC5\u8981\u7684\u5217
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.description=\u8868\u7F3A\u5C11\u5FC5\u8981\u7684\u5217
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.column-names=\u5217\u540D\u96C6\u5408
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.column-names.description=\u5217\u540D\u96C6\u5408
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-unsigned.message=\u81EA\u589E\u5217 {0} \u6700\u597D\u4F7F\u7528\u65E0\u7B26\u53F7\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-unsigned.name=\u9650\u5236\u81EA\u589E\u5217\u4F7F\u7528 UNSIGNED \u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-unsigned.description=\u65E0\u7B26\u53F7\u7C7B\u578B\u4E0D\u5B58\u50A8\u8D1F\u6570\uFF0C\u540C\u6837\u7684\u7C7B\u578B\u5B58\u653E\u7684\u6570\u503C\u8303\u56F4\u589E\u52A0\u4E00\u500D\uFF0C\u53EF\u4EE5\u907F\u514D\u81EA\u589E\u5217\u8D85\u51FA\u4E0A\u9650
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.message=\u5B58\u5728 {0} \u6761\u5BF9\u540C\u4E00\u4E2A\u8868 {1} \u7684\u4FEE\u6539\u8BED\u53E5\uFF0C\u8D85\u8FC7\u4E86\u6700\u5927\u9650\u5236 {2}\uFF0C\u5EFA\u8BAE\u5408\u5E76\u6210\u4E00\u4E2AALTER\u8BED\u53E5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.name=\u9650\u5236\u540C\u8868\u4E00\u6B21\u6267\u884C\u7684 ALTER \u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.description=\u907F\u514D\u591A\u6B21 table rebuild \u5E26\u6765\u7684\u6D88\u8017\u3001\u4EE5\u53CA\u5BF9\u7EBF\u4E0A\u4E1A\u52A1\u7684\u5F71\u54CD
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.max-alter-count=\u540C\u8868\u5141\u8BB8 ALTER \u7684\u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.max-alter-count.description=\u540C\u4E00\u4E2A\u8868\u6700\u591A\u5141\u8BB8 ALTER \u7684\u6570\u91CF
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.not-null-column-without-default-value.message=\u5217\u88AB\u6807\u8BB0\u4E3A NOT NULL \u4F46\u6CA1\u6709\u8BBE\u7F6E\u9ED8\u8BA4\u503C\uFF0C\u53EF\u80FD\u4F1A\u5BFC\u81F4\u63D2\u5165\u62A5\u9519
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.not-null-column-without-default-value.name=\u5B57\u6BB5\u7EA6\u675F\u4E3A NOT NULL \u65F6\u5FC5\u987B\u5E26\u9ED8\u8BA4\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.not-null-column-without-default-value.description=\u5B57\u6BB5\u7EA6\u675F\u4E3A NOT NULL \u65F6\u5FC5\u987B\u5E26\u9ED8\u8BA4\u503C
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.message=\u4E3B\u952E\u7D22\u5F15\u7684\u547D\u540D {0} \u683C\u5F0F\u4E0D\u7B26\u5408\u89C4\u8303\uFF0C\u547D\u540D\u6A21\u5F0F\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.name=\u9650\u5236\u4E3B\u952E\u7D22\u5F15\u540D\u683C\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.description=\u4E3B\u952E\u7D22\u5F15\u7684\u89C4\u8303\u547D\u540D\u6709\u52A9\u4E8E\u63D0\u9AD8\u6570\u636E\u5E93\u5F00\u53D1\u6548\u7387\uFF0C\u9ED8\u8BA4\uFF1Apk_${table-name}_${column-name-1}_${column-name-2}_...
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.name-pattern=\u4E3B\u952E\u7D22\u5F15\u540D\u79F0\u6B63\u5219\u8868\u8FBE\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.name-pattern.description=\u4E3B\u952E\u7D22\u5F15\u540D\u79F0\u6B63\u5219\u8868\u8FBE\u5F0F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.message=\u6570\u636E\u7C7B\u578B {0} \u7981\u6B62\u4F7F\u7528\uFF0C\u7981\u7528\u7684\u6570\u636E\u7C7B\u578B\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.name=\u7981\u7528\u67D0\u4E9B\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.description=\u7981\u7528\u67D0\u4E9B\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.datatype-names=\u7981\u7528\u7684\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.datatype-names.description=\u7981\u7528\u7684\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.allowed-datatypes=\u5141\u8BB8\u7684\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.allowed-datatypes.description=\u7D22\u5F15\u4E2D\u5141\u8BB8\u7684\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.description=\u53EA\u6709\u7279\u5B9A\u6570\u636E\u7C7B\u578B\u7684\u5217\u53EF\u4EE5\u88AB\u7D22\u5F15\u5F15\u7528\uFF0C\u907F\u514D\u9519\u8BEF\u5EFA\u7ACB\u7D22\u5F15\u5BFC\u81F4\u7684\u5927\u91CF\u8D44\u6E90\u5E76\u4EA7\u751F\u4E25\u91CD\u7684\u6027\u80FD\u95EE\u9898
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.message=\u7D22\u5F15\u5F15\u7528\u5217 {0} \u7684\u6570\u636E\u7C7B\u578B\u662F {1}\uFF0C\u8BE5\u7C7B\u578B\u4E0D\u88AB\u5141\u8BB8\u5EFA\u7ACB\u7D22\u5F15\uFF0C\u5141\u8BB8\u7684\u7C7B\u578B\uFF1A{2}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.name=\u9650\u5236\u7D22\u5F15\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.message=\u5BF9\u8C61\u5220\u9664\u8BED\u53E5\u6D89\u53CA\u7684\u6570\u636E\u5E93\u5BF9\u8C61\u7C7B\u578B {0} \u4E0D\u5728\u5141\u8BB8\u8303\u56F4\u5185\uFF0C\u5141\u8BB8\u5220\u9664\u7684\u5BF9\u8C61\u7C7B\u578B\u5305\u62EC\uFF1A{1}
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.name=\u9650\u5236\u53EF\u5220\u9664\u7684\u5BF9\u8C61\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.description=\u4E0D\u5141\u8BB8\u5220\u9664\u5141\u8BB8\u8303\u56F4\u4EE5\u5916\u7684\u6570\u636E\u5E93\u5BF9\u8C61
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.allowed-object-types=\u5141\u8BB8\u5220\u9664\u7684\u6570\u636E\u5E93\u5BF9\u8C61\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.allowed-object-types.description=\u5141\u8BB8\u5220\u9664\u7684\u6570\u636E\u5E93\u5BF9\u8C61\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-name-exists.message=\u4E3B\u952E\u7EA6\u675F/\u7D22\u5F15\u6CA1\u6709\u547D\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-name-exists.name=\u4E3B\u952E\u7EA6\u675F/\u7D22\u5F15\u9700\u8981\u8BBE\u7F6E\u540D\u79F0
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-name-exists.description=\u4E3B\u952E\u7EA6\u675F/\u7D22\u5F15\u9700\u8981\u663E\u5F0F\u5B9A\u4E49\u540D\u79F0\uFF0C\u5426\u5219\u6570\u636E\u5E93\u4F1A\u81EA\u52A8\u547D\u540D
+com.oceanbase.odc.CheckViolation.LocalizedMessage=位于第 {0} 行,第 {1} 列的语句可能存在问题,详情:{2}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.syntax-error.message=语句存在语法错误,详情:{0}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.syntax-error.name=语法错误
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.syntax-error.description=待检测的语句存在语法错误
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-calculation.message=列条件上存在计算,可能导致索引失效
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-calculation.name=列条件上存在计算
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-calculation.description=列条件上存在计算,可能导致索引失效
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-fuzzy-match.message=LIKE 运算存在左模糊匹配,可能导致索引失效
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-fuzzy-match.name=LIKE 运算存在左模糊匹配
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-fuzzy-match.description=LIKE 运算存在左模糊匹配,可能导致索引失效
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-implicit-conversion.message=列条件上存在隐式类型转换,可能导致索引失效
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-implicit-conversion.name=隐式类型转换
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.index-column-implicit-conversion.description=列条件上存在隐式类型转换,可能导致索引失效
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.message=过多的 IN 值匹配可能导致查询效率降低,建议不超过 {0} 个,实际存在 {1} 个
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.name=过多的 IN 值匹配
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.description=过多的 IN 值匹配可能导致查询效率降低
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.max-in-expr-count=IN 条件的数量最大值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-in-expr.max-in-expr-count.description=条件谓词中 IN 运算中表达式数量的最大值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.message=过多的表对象 JOIN,可能导致执行计划无法最优,推荐不超过 {0} 个,实际 {1} 个表联结
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.name=过多的表对象 JOIN
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.description=过多的表对象 JOIN,可能导致执行计划无法最优
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.max-join-table-count=最大表联结数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-table-join.max-join-table-count.description=最大表联结数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-not-null-exists-not-in.message=NOT IN 条件中需要 NOT NULL 标识,避免陷入嵌套循环
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-not-null-exists-not-in.name=NOT IN 条件中需要 NOT NULL 标识
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-not-null-exists-not-in.description=NOT IN 条件中需要 NOT NULL 标识,避免陷入嵌套循环
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-valid-where-clause.message=UPDATE/DELETE 语句中的 WHERE 条件恒为真/假造成潜在风险
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-valid-where-clause.name=UPDATE/DELETE 语句中没有有效的 WHERE 条件
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-valid-where-clause.description=UPDATE/DELETE 语句中的 WHERE 条件恒为真/假造成潜在风险
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-where-clause-exists.message=UPDATE/DELETE 语句中没有 WHERE 条件造成潜在风险
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-where-clause-exists.name=UPDATE/DELETE 语句中没有 WHERE 条件
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-where-clause-exists.description=UPDATE/DELETE 语句中没有 WHERE 条件造成潜在风险
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-specific-column-exists.message=INSERT/REPLACE 语句中没有具体的列,可能导致隐式转换错误
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-specific-column-exists.name=INSERT/REPLACE 语句未指定列名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-specific-column-exists.description=INSERT/REPLACE 语句中没有具体的列,可能导致隐式转换错误
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-key-exists.message=对带索引的表对象 {0} 操作没有使用索引,可能导致全表扫描,造成性能下降
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-key-exists.name=没有使用索引
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-key-exists.description=对带索引的表对象操作没有使用索引,可能导致全表扫描,造成性能下降
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-partition-key-exists.message=对分区表 {0} 操作没有使用分区键,导致无法进行分区裁剪
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-partition-key-exists.name=没有使用分区键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-partition-key-exists.description=对分区表操作没有使用分区键,导致无法进行分区裁剪
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.message=表对象 {0} 上存在过多索引,可能导致性能下降,推荐不要超过 {1} 个
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.name=单表包含了过多的索引
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.description=单表包含了过多的索引,可能导致性能下降
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.max-index-count=最大索引数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-index-keys.max-index-count.description=表定义中能够出现的索引数量最大值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prefer-local-index.message=推荐使用局部索引
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prefer-local-index.name=推荐使用局部索引
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prefer-local-index.description=推荐使用局部索引
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.message=表对象 {0} 存在过多的列,推荐不超过 {1} 个,实际 {2} 个
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.name=单表包含了过多的列
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.description=单表包含了过多的列
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.max-column-definition-count=最大列定义数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-columns.max-column-definition-count.description=表定义中能够出现的列数量的最大值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.message=表定义中 CHAR 类型的长度过长,建议不要超过 {0} ,实际值为 {1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.name=限制 CHAR 类型字段的长度
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.description=CHAR 类型字段的长度不要太长
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.max-char-length=CHAR 最大允许长度
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-long-char-length.max-char-length.description=CHAR 最大允许长度
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.message=唯一索引的命名 {0} 格式不符合规范,命名模式:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.name=限制唯一索引名格式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.description=唯一索引的规范命名有助于提高数据库开发效率,默认:uk_${table-name}_${column-name-1}_${column-name-2}_...
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.name-pattern=唯一索引名称正则表达式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-unique-index-naming.name-pattern.description=唯一索引名称正则表达式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.foreign-constraint-exists.message=表不能使用外键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.foreign-constraint-exists.name=表不能使用外键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.foreign-constraint-exists.description=表不能使用外键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-exists.message=表要有主键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-exists.name=表要有主键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-exists.description=表要有主键
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-table-comment-exists.message=表对象 {0} 必须含有注释
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-table-comment-exists.name=表必须注释
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-table-comment-exists.description=表对象存在注释可有助于快速了解表的业务背景
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.message=表对象不能以 {0} 命名,该名字处于黑名单中,黑名单:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.name=表名不能处于黑名单
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.description=建表时的表名,修改表名时均不能使用处于黑名单中的表名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.black-list=黑名单
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.table-name-in-black-list.black-list.description=表名黑名单
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.message=表对象使用的字符集 {0} 不在允许范围内,允许使用的字符集包括:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.name=限制表字符集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.description=表对象使用的字符集只能从白名单中给出的选项中选择
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.allowed-charsets=允许的字符集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-charset.allowed-charsets.description=允许的字符集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.message=表对象使用的排序规则 {0} 不在允许的范围内。允许的归类包括:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.name=限制表对象的排序规则
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.description=表对象使用的排序规则只能从白名单中给出的选项中选择
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.allowed-collations=允许的排序规则
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-collation.allowed-collations.description=允许的排序规则
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.message=索引中存在 {0} 次列引用,最多不应超过 {1} 次列引用
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.name=限制单个索引包含列的个数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.description=单个索引定义中的列引用数目不应过多
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.max-column-ref-count=最大列引用数目
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-index.max-column-ref-count.description=最大列引用数目
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.message=主键约束涉及列的类型 {0} 不在允许范围内,允许的类型包括:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.name=限制主键数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.description=表的主键涉及的列必须是规则中定义的数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.allowed-datatypes=允许作为主键的类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-datatypes.allowed-datatypes.description=允许作为主键的类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.message=主键中存在 {0} 次列引用,最多不应超过 {1} 次列引用
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.name=限制单个主键包含列的个数
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.description=单个主键定义中的列引用数目不应过多
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.max-column-ref-count=最大列引用数目
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-column-refs-in-primary-key.max-column-ref-count.description=最大列引用数目
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-auto-increment.message=限制主键列必须自增
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-auto-increment.name=限制主键列必须自增
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-auto-increment.description=限制主键列必须自增
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.message=索引的命名 {0} 格式不符合规范,命名模式:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.name=限制索引名格式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.description=索引的规范命名有助于提高数据库开发效率,默认:idx_${table-name}_${column-name-1}_${column-name-2}_...
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.name-pattern=索引名称正则表达式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-naming.name-pattern.description=索引名称正则表达式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-name-exists.message=索引或约束的定义没有命名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-name-exists.name=索引或约束需要设置名称
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-index-name-exists.description=索引或约束需要显式定义名称,否则数据库会自动命名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.zerofill-exists.message=数值类型使用 ZEROFILL 属性
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.zerofill-exists.name=数值类型不能使用 ZEROFILL 属性
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.zerofill-exists.description=数值类型不能使用 ZEROFILL 属性
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-charset-exists.message=不能对列设置字符集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-charset-exists.name=不能对列设置字符集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-charset-exists.description=不能对列设置字符集
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-collation-exists.message=不能对列设置排序规则
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-collation-exists.name=不能对列设置排序规则
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-collation-exists.description=不能对列设置排序规则
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.message=类型为 {0} 的列不允许为空,允许为空的列的数据类型:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.name=限制列不可空(NOT NULL)
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.description=限制列不可空
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.nullable-datatype-list=允许为空的列数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-is-nullable.nullable-datatype-list.description=允许为空的列数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.message=数据类型为 {0} 的列不能没有默认值,允许没有默认值的列类型:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.name=列要有默认值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.description=列要有默认值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.no-default-value-datatype-list=允许没有默认值的类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-default-value-exists.no-default-value-datatype-list.description=允许没有默认值的类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-column-comment-exists.message=列 {0} 没有注释
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-column-comment-exists.name=列要有注释
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-column-comment-exists.description=表定义中各个列需要有注释
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.message=列不能以 {0} 命名,该名字处于黑名单中,黑名单:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.name=列名不能处于黑名单
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.description=建表时的列名,修改列名时均不能使用处于黑名单中的列名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.black-list=黑名单
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.column-name-in-black-list.black-list.description=列名黑名单
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.message=列名 {0} 的大小写设定不符合规范
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.name=限制列名大小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.description=限制列名大小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-uppercase=是否限制大写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-uppercase.description=是否限制大写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-lowercase=是否限制小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-column-name-case.is-lowercase.description=是否限制小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.message=表名 {0} 的大小写设定不符合规范
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.name=限制表名大小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.description=限制表名大小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-uppercase=是否限制大写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-uppercase.description=是否限制大写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-lowercase=是否限制小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-name-case.is-lowercase.description=是否限制小写
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.message=限制表的列自增初始值为 {0},实际为 {1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.name=限制建表自增初始值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.description=限制建表自增初始值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.init-value=表自增初始值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-table-auto-increment.init-value.description=表自增初始值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.select-star-exists.message=SELECT 语句中不建议使用 * 投影全部列
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.select-star-exists.name=SELECT 语句不建议使用 *
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.select-star-exists.description=SELECT 语句不建议使用 *
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.message=表缺少必要的列:{0}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.name=表缺少必要的列
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.description=表缺少必要的列
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.column-names=列名集合
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.missing-required-columns.column-names.description=列名集合
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-unsigned.message=自增列 {0} 最好使用无符号类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-unsigned.name=限制自增列使用 UNSIGNED 类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-unsigned.description=无符号类型不存储负数,同样的类型存放的数值范围增加一倍,可以避免自增列超出上限
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.message=存在 {0} 条对同一个表 {1} 的修改语句,超过了最大限制 {2},建议合并成一个ALTER语句
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.name=限制同表一次执行的 ALTER 数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.description=避免多次 table rebuild 带来的消耗、以及对线上业务的影响
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.max-alter-count=同表允许 ALTER 的数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.too-many-alter-statement.max-alter-count.description=同一个表最多允许 ALTER 的数量
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.not-null-column-without-default-value.message=列被标记为 NOT NULL 但没有设置默认值,可能会导致插入报错
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.not-null-column-without-default-value.name=字段约束为 NOT NULL 时必须带默认值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.not-null-column-without-default-value.description=字段约束为 NOT NULL 时必须带默认值
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.message=主键索引的命名 {0} 格式不符合规范,命名模式:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.name=限制主键索引名格式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.description=主键索引的规范命名有助于提高数据库开发效率,默认:pk_${table-name}_${column-name-1}_${column-name-2}_...
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.name-pattern=主键索引名称正则表达式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-pk-naming.name-pattern.description=主键索引名称正则表达式
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.message=数据类型 {0} 禁止使用,禁用的数据类型:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.name=禁用某些数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.description=禁用某些数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.datatype-names=禁用的数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.prohibited-datatype-exists.datatype-names.description=禁用的数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.allowed-datatypes=允许的数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.allowed-datatypes.description=索引中允许的数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.description=只有特定数据类型的列可以被索引引用,避免错误建立索引导致的大量资源并产生严重的性能问题
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.message=索引引用列 {0} 的数据类型是 {1},该类型不被允许建立索引,允许的类型:{2}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-index-datatypes.name=限制索引数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.message=对象删除语句涉及的数据库对象类型 {0} 不在允许范围内,允许删除的对象类型包括:{1}
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.name=限制可删除的对象类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.description=不允许删除允许范围以外的数据库对象
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.allowed-object-types=允许删除的数据库对象类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-drop-object-types.allowed-object-types.description=允许删除的数据库对象类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-name-exists.message=主键约束/索引没有命名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-name-exists.name=主键约束/索引需要设置名称
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.no-primary-key-name-exists.description=主键约束/索引需要显式定义名称,否则数据库会自动命名
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.message=\u5217 {0} \u88AB\u6807\u8BB0\u4E3A\u81EA\u589E\u5217\uFF0C\u8BE5\u5217\u7684\u7C7B\u578B\u4E3A {1}\uFF0C\u4E0D\u5728\u5141\u8BB8\u7684\u7C7B\u578B\u8303\u56F4\u5185\uFF1A{2}\uFF0C\u8FD9\u53EF\u80FD\u4F1A\u5BFC\u81F4\u6570\u503C\u6EA2\u51FA\u7B49\u975E\u9884\u671F\u60C5\u51B5\u7684\u53D1\u751F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.name=\u9650\u5236\u81EA\u589E\u5217\u7684\u53EF\u9009\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.description=\u88AB\u6807\u8BB0\u4E3A\u81EA\u589E\u7684\u5217\u5E94\u8BE5\u8C28\u614E\u9009\u62E9\u6570\u636E\u7C7B\u578B\uFF0C\u907F\u514D\u6570\u503C\u6EA2\u51FA\u7B49\u9884\u671F\u5916\u60C5\u51B5\u7684\u53D1\u751F
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.allowed-datatypes=\u5141\u8BB8\u7684\u6570\u636E\u7C7B\u578B
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.allowed-datatypes.description=\u5141\u8BB8\u88AB\u6807\u8BB0\u4E3A\u81EA\u589E\u7684\u5217\u7684\u6570\u636E\u7C7B\u578B\u96C6\u5408
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.message=列 {0} 被标记为自增列,该列的类型为 {1},不在允许的类型范围内:{2},这可能会导致数值溢出等非预期情况的发生
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.name=限制自增列的可选数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.description=被标记为自增的列应该谨慎选择数据类型,避免数值溢出等预期外情况的发生
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.allowed-datatypes=允许的数据类型
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.restrict-auto-increment-datatypes.allowed-datatypes.description=允许被标记为自增的列的数据类型集合
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.object-name-using-reserved-words.message={0} \u662F\u4FDD\u7559\u5B57\uFF0C\u4E0D\u5E94\u8BE5\u4EE5\u6B64\u4F5C\u4E3A\u5BF9\u8C61\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.object-name-using-reserved-words.name=\u4FDD\u7559\u5B57\u4E0D\u5E94\u8BE5\u4F5C\u4E3A\u5BF9\u8C61\u540D
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.object-name-using-reserved-words.description=\u4FDD\u7559\u5B57\u4E0D\u5E94\u8BE5\u4F5C\u4E3A\u5BF9\u8C61\u540D
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.object-name-using-reserved-words.message={0} 是保留字,不应该以此作为对象名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.object-name-using-reserved-words.name=保留字不应该作为对象名
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.object-name-using-reserved-words.description=保留字不应该作为对象名
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.offline-schema-change-exists.message={0} \u662F offline \u7ED3\u6784\u53D8\u66F4\u8BED\u53E5\uFF0C\u53EF\u80FD\u8017\u65F6\u8F83\u4E45\uFF0C\u5EFA\u8BAE\u4F7F\u7528\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u6267\u884C\u8BE5\u8BED\u53E5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.offline-schema-change-exists.name=offline \u7ED3\u6784\u53D8\u66F4\u8BED\u53E5\u5B58\u5728
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.offline-schema-change-exists.description=offline \u7ED3\u6784\u53D8\u66F4\u8BED\u53E5\u53EF\u80FD\u6D89\u53CA\u5168\u91CF\u6570\u636E\u4FEE\u6539\uFF0C\u4F1A\u9020\u6210\u6BD4\u8F83\u4E45\u8017\u65F6\uFF0C\u53EF\u80FD\u4F1A\u5F71\u54CD\u5230\u7EBF\u4E0A\u4E1A\u52A1\uFF0C\u63A8\u8350\u4F7F\u7528\u65E0\u9501\u7ED3\u6784\u53D8\u66F4\u6267\u884C\u8BE5\u64CD\u4F5C
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.offline-schema-change-exists.message={0} 是 offline 结构变更语句,可能耗时较久,建议使用无锁结构变更执行该语句
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.offline-schema-change-exists.name=offline 结构变更语句存在
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.offline-schema-change-exists.description=offline 结构变更语句可能涉及全量数据修改,会造成比较久耗时,可能会影响到线上业务,推荐使用无锁结构变更执行该操作
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.truncate-table-exists.message=truncate \u8BED\u53E5\u5C06\u4F1A\u6E05\u7A7A\u8868\u7684\u6570\u636E\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.truncate-table-exists.name=\u5B58\u5728 truncate \u8BED\u53E5
-com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.truncate-table-exists.description=truncate \u8BED\u53E5\u5C06\u4F1A\u6E05\u7A7A\u8868\u6570\u636E\uFF0C\u5728\u751F\u4EA7\u73AF\u5883\u4E2D\u5341\u5206\u5371\u9669\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.truncate-table-exists.message=truncate 语句将会清空表的数据,请谨慎使用
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.truncate-table-exists.name=存在 truncate 语句
+com.oceanbase.odc.builtin-resource.regulation.rule.sql-check.truncate-table-exists.description=truncate 语句将会清空表数据,在生产环境中十分危险,请谨慎使用
# below masking algorithm built-in
-com.oceanbase.odc.builtin-resource.masking-algorithm.mask-all.name=\u5168\u90E8\u906E\u63A9\uFF08\u7CFB\u7EDF\u9ED8\u8BA4\uFF09
-com.oceanbase.odc.builtin-resource.masking-algorithm.personal-name-chinese.name=\u4E2A\u4EBA\u59D3\u540D\uFF08\u6C49\u5B57\u7C7B\u578B\uFF09
-com.oceanbase.odc.builtin-resource.masking-algorithm.personal-name-alphabet.name=\u4E2A\u4EBA\u59D3\u540D\uFF08\u5B57\u6BCD\u7C7B\u578B\uFF09
-com.oceanbase.odc.builtin-resource.masking-algorithm.nickname.name=\u6635\u79F0
-com.oceanbase.odc.builtin-resource.masking-algorithm.email.name=\u90AE\u7BB1
-com.oceanbase.odc.builtin-resource.masking-algorithm.address.name=\u5730\u5740
-com.oceanbase.odc.builtin-resource.masking-algorithm.phone-number.name=\u624B\u673A\u53F7\u7801
-com.oceanbase.odc.builtin-resource.masking-algorithm.fixed-line-phone-number.name=\u56FA\u5B9A\u7535\u8BDD
-com.oceanbase.odc.builtin-resource.masking-algorithm.certificate-number.name=\u8BC1\u4EF6\u53F7\u7801
-com.oceanbase.odc.builtin-resource.masking-algorithm.bank-card-number.name=\u94F6\u884C\u5361\u53F7
-com.oceanbase.odc.builtin-resource.masking-algorithm.license-plate-number.name=\u8F66\u724C\u53F7
-com.oceanbase.odc.builtin-resource.masking-algorithm.device-id.name=\u8BBE\u5907\u552F\u4E00\u8BC6\u522B\u53F7
-com.oceanbase.odc.builtin-resource.masking-algorithm.ip.name=IP \u5730\u5740
-com.oceanbase.odc.builtin-resource.masking-algorithm.mac.name=MAC \u5730\u5740
+com.oceanbase.odc.builtin-resource.masking-algorithm.mask-all.name=全部遮掩(系统默认)
+com.oceanbase.odc.builtin-resource.masking-algorithm.personal-name-chinese.name=个人姓名(汉字类型)
+com.oceanbase.odc.builtin-resource.masking-algorithm.personal-name-alphabet.name=个人姓名(字母类型)
+com.oceanbase.odc.builtin-resource.masking-algorithm.nickname.name=昵称
+com.oceanbase.odc.builtin-resource.masking-algorithm.email.name=邮箱
+com.oceanbase.odc.builtin-resource.masking-algorithm.address.name=地址
+com.oceanbase.odc.builtin-resource.masking-algorithm.phone-number.name=手机号码
+com.oceanbase.odc.builtin-resource.masking-algorithm.fixed-line-phone-number.name=固定电话
+com.oceanbase.odc.builtin-resource.masking-algorithm.certificate-number.name=证件号码
+com.oceanbase.odc.builtin-resource.masking-algorithm.bank-card-number.name=银行卡号
+com.oceanbase.odc.builtin-resource.masking-algorithm.license-plate-number.name=车牌号
+com.oceanbase.odc.builtin-resource.masking-algorithm.device-id.name=设备唯一识别号
+com.oceanbase.odc.builtin-resource.masking-algorithm.ip.name=IP 地址
+com.oceanbase.odc.builtin-resource.masking-algorithm.mac.name=MAC 地址
com.oceanbase.odc.builtin-resource.masking-algorithm.md5.name=MD5
com.oceanbase.odc.builtin-resource.masking-algorithm.sha256.name=SHA256
com.oceanbase.odc.builtin-resource.masking-algorithm.sha512.name=SHA512
com.oceanbase.odc.builtin-resource.masking-algorithm.sm3.name=SM3
-com.oceanbase.odc.builtin-resource.masking-algorithm.round.name=\u6570\u503C\u53D6\u6574
-com.oceanbase.odc.builtin-resource.masking-algorithm.null.name=\u7F6E\u7A7A
-com.oceanbase.odc.builtin-resource.masking-algorithm.default.name=\u7F3A\u7701\u89C4\u5219
+com.oceanbase.odc.builtin-resource.masking-algorithm.round.name=数值取整
+com.oceanbase.odc.builtin-resource.masking-algorithm.null.name=置空
+com.oceanbase.odc.builtin-resource.masking-algorithm.default.name=缺省规则
#
# builtin approval flow config
#
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.auto-approval.name=\u81EA\u52A8\u5BA1\u6279
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.auto-approval.description=\u81EA\u52A8\u5BA1\u6279
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner.name=\u9879\u76EE\u7BA1\u7406\u5458
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner.description=\u9879\u76EE\u7BA1\u7406\u5458
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-dba.name=\u9879\u76EE DBA
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-dba.description=\u9879\u76EE DBA
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner-dba.name=\u9879\u76EE\u7BA1\u7406\u5458 --> \u9879\u76EE DBA
-com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner-dba.description=\u9879\u76EE\u7BA1\u7406\u5458 --> \u9879\u76EE DBA
-com.oceanbase.odc.builtin-resource.regulation.risklevel.default-risk.name=\u9ED8\u8BA4\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.default-risk.description=\u9ED8\u8BA4\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.low-risk.name=\u4F4E\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.low-risk.description=\u4F4E\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.moderate-risk.name=\u4E2D\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.moderate-risk.description=\u4E2D\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.high-risk.name=\u9AD8\u98CE\u9669
-com.oceanbase.odc.builtin-resource.regulation.risklevel.high-risk.description=\u9AD8\u98CE\u9669
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.auto-approval.name=自动审批
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.auto-approval.description=自动审批
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner.name=项目管理员
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner.description=项目管理员
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-dba.name=项目 DBA
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-dba.description=项目 DBA
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner-dba.name=项目管理员 --> 项目 DBA
+com.oceanbase.odc.builtin-resource.regulation.approval.flow.config.project-owner-dba.description=项目管理员 --> 项目 DBA
+com.oceanbase.odc.builtin-resource.regulation.risklevel.default-risk.name=默认风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.default-risk.description=默认风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.low-risk.name=低风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.low-risk.description=低风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.moderate-risk.name=中风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.moderate-risk.description=中风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.high-risk.name=高风险
+com.oceanbase.odc.builtin-resource.regulation.risklevel.high-risk.description=高风险
#
# OBInstanceType
#
-com.oceanbase.odc.OBInstanceType.CLUSTER=\u96C6\u7FA4\u5B9E\u4F8B
-com.oceanbase.odc.OBInstanceType.MYSQL_TENANT=MySQL \u79DF\u6237\u5B9E\u4F8B
-com.oceanbase.odc.OBInstanceType.ORACLE_TENANT=Oracle \u79DF\u6237\u5B9E\u4F8B
+com.oceanbase.odc.OBInstanceType.CLUSTER=集群实例
+com.oceanbase.odc.OBInstanceType.MYSQL_TENANT=MySQL 租户实例
+com.oceanbase.odc.OBInstanceType.ORACLE_TENANT=Oracle 租户实例
#
# TaskType
#
-com.oceanbase.odc.TaskType.MULTIPLE_ASYNC=\u591A\u5E93\u53D8\u66F4
-com.oceanbase.odc.TaskType.ASYNC=\u6570\u636E\u5E93\u53D8\u66F4
-com.oceanbase.odc.TaskType.IMPORT=\u5BFC\u5165
-com.oceanbase.odc.TaskType.EXPORT=\u5BFC\u51FA
-com.oceanbase.odc.TaskType.MOCKDATA=\u6A21\u62DF\u6570\u636E
-com.oceanbase.odc.TaskType.ROLLBACK=\u56DE\u6EDA\u4EFB\u52A1
-com.oceanbase.odc.TaskType.PERMISSION_APPLY=\u6743\u9650\u7533\u8BF7
-com.oceanbase.odc.TaskType.SHADOWTABLE_SYNC=\u5F71\u5B50\u8868\u540C\u6B65
-com.oceanbase.odc.TaskType.PARTITION_PLAN=\u5206\u533A\u8BA1\u5212
-com.oceanbase.odc.TaskType.SQL_CHECK=SQL \u68C0\u67E5
-com.oceanbase.odc.TaskType.ALTER_SCHEDULE=\u8BA1\u5212\u53D8\u66F4
-com.oceanbase.odc.TaskType.ONLINE_SCHEMA_CHANGE=\u65E0\u9501\u7ED3\u6784\u53D8\u66F4
-com.oceanbase.odc.TaskType.GENERATE_ROLLBACK=\u5907\u4EFD\u56DE\u6EDA\u65B9\u6848\u751F\u6210
-com.oceanbase.odc.TaskType.PRE_CHECK=\u9884\u68C0\u67E5
-com.oceanbase.odc.TaskType.EXPORT_RESULT_SET=\u5BFC\u51FA\u7ED3\u679C\u96C6
-com.oceanbase.odc.TaskType.APPLY_PROJECT_PERMISSION=\u7533\u8BF7\u9879\u76EE\u6743\u9650
-com.oceanbase.odc.TaskType.APPLY_DATABASE_PERMISSION=\u7533\u8BF7\u6570\u636E\u5E93\u6743\u9650
-com.oceanbase.odc.TaskType.APPLY_TABLE_PERMISSION=\u7533\u8BF7\u6570\u636E\u8868\u6743\u9650
-com.oceanbase.odc.TaskType.SQL_PLAN=SQL \u8BA1\u5212
-com.oceanbase.odc.TaskType.DATA_ARCHIVE=\u6570\u636E\u5F52\u6863
-com.oceanbase.odc.TaskType.DATA_DELETE=\u6570\u636E\u6E05\u7406
-com.oceanbase.odc.TaskType.STRUCTURE_COMPARISON=\u7ED3\u6784\u5BF9\u6BD4
+com.oceanbase.odc.TaskType.MULTIPLE_ASYNC=多库变更
+com.oceanbase.odc.TaskType.ASYNC=数据库变更
+com.oceanbase.odc.TaskType.IMPORT=导入
+com.oceanbase.odc.TaskType.EXPORT=导出
+com.oceanbase.odc.TaskType.MOCKDATA=模拟数据
+com.oceanbase.odc.TaskType.ROLLBACK=回滚任务
+com.oceanbase.odc.TaskType.PERMISSION_APPLY=权限申请
+com.oceanbase.odc.TaskType.SHADOWTABLE_SYNC=影子表同步
+com.oceanbase.odc.TaskType.PARTITION_PLAN=分区计划
+com.oceanbase.odc.TaskType.SQL_CHECK=SQL 检查
+com.oceanbase.odc.TaskType.ALTER_SCHEDULE=计划变更
+com.oceanbase.odc.TaskType.ONLINE_SCHEMA_CHANGE=无锁结构变更
+com.oceanbase.odc.TaskType.GENERATE_ROLLBACK=备份回滚方案生成
+com.oceanbase.odc.TaskType.PRE_CHECK=预检查
+com.oceanbase.odc.TaskType.EXPORT_RESULT_SET=导出结果集
+com.oceanbase.odc.TaskType.APPLY_PROJECT_PERMISSION=申请项目权限
+com.oceanbase.odc.TaskType.APPLY_DATABASE_PERMISSION=申请数据库权限
+com.oceanbase.odc.TaskType.APPLY_TABLE_PERMISSION=申请数据表权限
+com.oceanbase.odc.TaskType.SQL_PLAN=SQL 计划
+com.oceanbase.odc.TaskType.DATA_ARCHIVE=数据归档
+com.oceanbase.odc.TaskType.DATA_DELETE=数据清理
+com.oceanbase.odc.TaskType.STRUCTURE_COMPARISON=结构对比
#
# Notification event name
#
-com.oceanbase.odc.event.ALL_EVENTS.name=\u6240\u6709\u4E8B\u4EF6
-com.oceanbase.odc.event.TASK.EXECUTION_SUCCEEDED.name=\u6267\u884C\u6210\u529F
-com.oceanbase.odc.event.TASK.EXECUTION_FAILED.name=\u6267\u884C\u5931\u8D25
-com.oceanbase.odc.event.TASK.EXECUTION_TIMEOUT.name=\u6267\u884C\u8D85\u65F6
-com.oceanbase.odc.event.TASK.PENDING_APPROVAL.name=\u5F85\u5BA1\u6279
-com.oceanbase.odc.event.TASK.APPROVED.name=\u5BA1\u6279\u901A\u8FC7
-com.oceanbase.odc.event.TASK.APPROVAL_REJECTION.name=\u5BA1\u6279\u62D2\u7EDD
-com.oceanbase.odc.event.TASK.SCHEDULING_FAILED.name=\u8C03\u5EA6\u5931\u8D25
-com.oceanbase.odc.event.TASK.SCHEDULING_TIMEOUT.name=\u8C03\u5EA6\u8D85\u65F6
+com.oceanbase.odc.event.ALL_EVENTS.name=所有事件
+com.oceanbase.odc.event.TASK.EXECUTION_SUCCEEDED.name=执行成功
+com.oceanbase.odc.event.TASK.EXECUTION_FAILED.name=执行失败
+com.oceanbase.odc.event.TASK.EXECUTION_TIMEOUT.name=执行超时
+com.oceanbase.odc.event.TASK.PENDING_APPROVAL.name=待审批
+com.oceanbase.odc.event.TASK.APPROVED.name=审批通过
+com.oceanbase.odc.event.TASK.APPROVAL_REJECTION.name=审批拒绝
+com.oceanbase.odc.event.TASK.SCHEDULING_FAILED.name=调度失败
+com.oceanbase.odc.event.TASK.SCHEDULING_TIMEOUT.name=调度超时
#
# Notification channel test message
#
-com.oceanbase.odc.notification.channel-test-message=\u3010ODC\u3011\u6D88\u606F\u901A\u9053\u9A8C\u8BC1\u6210\u529F\uFF0C\u8BF7\u5FFD\u7565\u672C\u6761\u6D4B\u8BD5\u901A\u77E5
+com.oceanbase.odc.notification.channel-test-message=【ODC】消息通道验证成功,请忽略本条测试通知
#
# Permission Apply
#
-com.oceanbase.odc.builtin-resource.permission-apply.project.description=\u7533\u8BF7\u9879\u76EE\u3010{0}\u3011\u7684\u3010{1}\u3011\u6743\u9650
-com.oceanbase.odc.builtin-resource.permission-apply.database.description=\u7533\u8BF7\u6570\u636E\u5E93\u7684\u3010{0}\u3011\u6743\u9650
-com.oceanbase.odc.builtin-resource.permission-apply.table.description=\u7533\u8BF7\u6570\u636E\u8868\u7684\u3010{0}\u3011\u6743\u9650
+com.oceanbase.odc.builtin-resource.permission-apply.project.description=申请项目【{0}】的【{1}】权限
+com.oceanbase.odc.builtin-resource.permission-apply.database.description=申请数据库的【{0}】权限
+com.oceanbase.odc.builtin-resource.permission-apply.table.description=申请数据表的【{0}】权限
#
# Multiple Async
#
-com.oceanbase.odc.builtin-resource.multiple-async.sub-ticket.description=\u3010{0}\u3011\u591A\u5E93\u53D8\u66F4 {1} \u7B2C{2}\u6279 {3}.{4}
+com.oceanbase.odc.builtin-resource.multiple-async.sub-ticket.description=【{0}】多库变更 {1} 第{2}批 {3}.{4}
#
# ResourceRoleName
#
-com.oceanbase.odc.ResourceRoleName.OWNER=\u7BA1\u7406\u5458
+com.oceanbase.odc.ResourceRoleName.OWNER=管理员
com.oceanbase.odc.ResourceRoleName.DBA=DBA
-com.oceanbase.odc.ResourceRoleName.DEVELOPER=\u666E\u901A\u6210\u5458
-com.oceanbase.odc.ResourceRoleName.SECURITY_ADMINISTRATOR=\u5B89\u5168\u7BA1\u7406\u5458
-com.oceanbase.odc.ResourceRoleName.PARTICIPANT=\u53C2\u4E0E\u8005
+com.oceanbase.odc.ResourceRoleName.DEVELOPER=普通成员
+com.oceanbase.odc.ResourceRoleName.SECURITY_ADMINISTRATOR=安全管理员
+com.oceanbase.odc.ResourceRoleName.PARTICIPANT=参与者
#
# check generated update table ddl
#
-com.oceanbase.odc.generate-update-table-ddl-check.drop-index.message=\u8BE5\u64CD\u4F5C\u6D89\u53CA\u5220\u9664\u7D22\u5F15\uFF0C\u9AD8\u98CE\u9669\u53D8\u66F4\u8BF7\u8C28\u614E\u64CD\u4F5C!
-com.oceanbase.odc.generate-update-table-ddl-check.create-index.message=\u8BE5\u64CD\u4F5C\u6D89\u53CA\u521B\u5EFA\u7D22\u5F15\uFF0C\u5982\u679C\u8868\u6570\u636E\u89C4\u6A21\u8F83\u5927\uFF0C\u6B64\u8FC7\u7A0B\u53EF\u80FD\u4F1A\u6BD4\u8F83\u8017\u65F6\uFF0C\u5EFA\u8BAE\u901A\u8FC7\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1\u6267\u884C
-com.oceanbase.odc.generate-update-table-ddl-check.drop-and-create-index.message=\u8BE5\u64CD\u4F5C\u6D89\u53CA\u5220\u9664\u548C\u521B\u5EFA\u7D22\u5F15\uFF0C\u9AD8\u98CE\u9669\u53D8\u66F4\u8BF7\u8C28\u614E\u64CD\u4F5C\uFF01\u6574\u4E2A\u8FC7\u7A0B\u4E0D\u662F\u539F\u5B50\u6027\u64CD\u4F5C\uFF0C\u5EFA\u8BAE\u5206\u6B65\u6267\u884C\uFF0C\u5148\u521B\u5EFA\u65B0\u7684\u7D22\u5F15\uFF0C\u5F85\u65B0\u7D22\u5F15\u521B\u5EFA\u5B8C\u6BD5\u5E76\u751F\u6548\u540E\u518D\u5220\u9664\u65E7\u7684\u7D22\u5F15\u3002\u5982\u679C\u8868\u6570\u636E\u89C4\u6A21\u8F83\u5927\uFF0C\u6B64\u8FC7\u7A0B\u53EF\u80FD\u4F1A\u6BD4\u8F83\u8017\u65F6\uFF0C\u5EFA\u8BAE\u901A\u8FC7\u6570\u636E\u5E93\u53D8\u66F4\u4EFB\u52A1\u6267\u884C
+com.oceanbase.odc.generate-update-table-ddl-check.drop-index.message=该操作涉及删除索引,高风险变更请谨慎操作!
+com.oceanbase.odc.generate-update-table-ddl-check.create-index.message=该操作涉及创建索引,如果表数据规模较大,此过程可能会比较耗时,建议通过数据库变更任务执行
+com.oceanbase.odc.generate-update-table-ddl-check.drop-and-create-index.message=该操作涉及删除和创建索引,高风险变更请谨慎操作!整个过程不是原子性操作,建议分步执行,先创建新的索引,待新索引创建完毕并生效后再删除旧的索引。如果表数据规模较大,此过程可能会比较耗时,建议通过数据库变更任务执行
# DatabasePermissionType
-com.oceanbase.odc.DatabasePermissionType.QUERY=\u67E5\u8BE2
-com.oceanbase.odc.DatabasePermissionType.CHANGE=\u53D8\u66F4
-com.oceanbase.odc.DatabasePermissionType.EXPORT=\u5BFC\u51FA
-com.oceanbase.odc.DatabasePermissionType.ACCESS=\u8BBF\u95EE
+com.oceanbase.odc.DatabasePermissionType.QUERY=查询
+com.oceanbase.odc.DatabasePermissionType.CHANGE=变更
+com.oceanbase.odc.DatabasePermissionType.EXPORT=导出
+com.oceanbase.odc.DatabasePermissionType.ACCESS=访问
-com.oceanbase.odc.PartitionPlanVariableKey.INTERVAL=\u95F4\u9694
-com.oceanbase.odc.PartitionPlanVariableKey.LAST_PARTITION_VALUE=\u6700\u540E\u4E00\u4E2A\u5206\u533A\u89C4\u5219\u5BF9\u5E94\u4F4D\u7F6E\u8868\u8FBE\u5F0F\u7684\u503C
-com.oceanbase.odc.partitionplan.TimeDataType=\u65F6\u95F4\u7C7B\u578B
-com.oceanbase.odc.partitionplan.NumberDataType=\u6570\u5B57\u7C7B\u578B
+com.oceanbase.odc.PartitionPlanVariableKey.INTERVAL=间隔
+com.oceanbase.odc.PartitionPlanVariableKey.LAST_PARTITION_VALUE=最后一个分区规则对应位置表达式的值
+com.oceanbase.odc.partitionplan.TimeDataType=时间类型
+com.oceanbase.odc.partitionplan.NumberDataType=数字类型
From 78c6d637bf2ca3926afb4ab7a83196a7c48cc5ee Mon Sep 17 00:00:00 2001
From: IL MARE
Date: Wed, 3 Jul 2024 11:34:47 +0800
Subject: [PATCH 3/3] fix(flow): failed to startup a ticket (#2798)
* fix timeout setting is not useful
* optimize log printing
* optimize exception throwing
* optimize the logic
* optimize the logic
* add long
* format the code
---
.../odc/service/flow/FlowInstanceService.java | 6 ++----
.../flow/task/BaseODCFlowTaskDelegate.java | 17 +++++++++++++++--
.../task/DatabaseChangeRuntimeFlowableTask.java | 3 ---
.../flow/task/MockDataRuntimeFlowableTask.java | 3 +--
.../permission/DBResourcePermissionHelper.java | 15 ++++++++++++++-
.../service/session/ConnectConsoleService.java | 3 ++-
6 files changed, 34 insertions(+), 13 deletions(-)
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/FlowInstanceService.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/FlowInstanceService.java
index f0acc1ee47..e1e2c3f03a 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/FlowInstanceService.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/FlowInstanceService.java
@@ -263,8 +263,6 @@ public class FlowInstanceService {
@Autowired
private EnvironmentRepository environmentRepository;
@Autowired
- private DBResourcePermissionHelper dbResourcePermissionHelper;
- @Autowired
private EnvironmentService environmentService;
private final List> dataTransferTaskInitHooks = new ArrayList<>();
@@ -790,8 +788,8 @@ private void checkCreateFlowInstancePermission(CreateFlowInstanceReq req) {
}
});
}
- List unauthorizedDBResources =
- dbResourcePermissionHelper.filterUnauthorizedDBResources(resource2Types, false);
+ List unauthorizedDBResources = this.permissionHelper
+ .filterUnauthorizedDBResources(resource2Types, false);
if (CollectionUtils.isNotEmpty(unauthorizedDBResources)) {
throw new BadRequestException(ErrorCodes.DatabaseAccessDenied,
new Object[] {unauthorizedDBResources.stream()
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/BaseODCFlowTaskDelegate.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/BaseODCFlowTaskDelegate.java
index d10318e9ae..b8779086a5 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/BaseODCFlowTaskDelegate.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/BaseODCFlowTaskDelegate.java
@@ -26,6 +26,7 @@
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.commons.collections4.CollectionUtils;
import org.flowable.engine.delegate.DelegateExecution;
@@ -102,7 +103,7 @@ public abstract class BaseODCFlowTaskDelegate extends BaseRuntimeFlowableDele
private void init(DelegateExecution execution) {
this.taskId = FlowTaskUtil.getTaskId(execution);
- this.timeoutMillis = FlowTaskUtil.getExecutionExpirationIntervalMillis(execution);
+ this.timeoutMillis = getTimeoutMillis(execution);
this.taskService.updateExecutorInfo(taskId, new ExecutorInfo(hostProperties));
SecurityContextUtils.setCurrentUser(FlowTaskUtil.getTaskCreator(execution));
}
@@ -113,6 +114,7 @@ private void initMonitorExecutor() {
.build();
scheduleExecutor = new ScheduledThreadPoolExecutor(1, threadFactory);
int interval = RuntimeTaskConstants.DEFAULT_TASK_CHECK_INTERVAL_SECONDS;
+ AtomicBoolean isCancelled = new AtomicBoolean(false);
scheduleExecutor.scheduleAtFixedRate(() -> {
try {
updateHeartbeatTime();
@@ -124,6 +126,13 @@ private void initMonitorExecutor() {
}
try {
if (isCompleted() || isTimeout()) {
+ if (isTimeout() && !isCancelled.getAndSet(true)) {
+ try {
+ cancel(true);
+ } catch (Exception e) {
+ log.warn("Task is timeout, failed to cancel it, errorMessage={}", e.getMessage());
+ }
+ }
taskLatch.countDown();
}
} catch (Exception e) {
@@ -188,7 +197,7 @@ protected void run(DelegateExecution execution) throws Exception {
} catch (Exception e) {
log.warn("Task timeout callback method execution failed, taskId={}", taskId, e);
}
- throw new InterruptedException();
+ throw new ServiceTaskCancelledException();
}
if (!isSuccessful()) {
// 监控线程出错导致闭锁失效,此种情况任务必须终止
@@ -312,6 +321,10 @@ protected void onTimeout(Long taskId, TaskService taskService) {
}
}
+ protected long getTimeoutMillis(DelegateExecution execution) {
+ return FlowTaskUtil.getExecutionExpirationIntervalMillis(execution);
+ }
+
/**
* This method is scheduled periodically to update the progress of the task
*/
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/DatabaseChangeRuntimeFlowableTask.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/DatabaseChangeRuntimeFlowableTask.java
index df804f412d..652a4ad26b 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/DatabaseChangeRuntimeFlowableTask.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/DatabaseChangeRuntimeFlowableTask.java
@@ -183,9 +183,6 @@ protected void onProgressUpdate(Long taskId, TaskService taskService) {
if (Objects.nonNull(asyncTaskThread)) {
double progress = asyncTaskThread.getProgressPercentage();
taskService.updateProgress(taskId, progress);
- if (System.currentTimeMillis() - asyncTaskThread.getStartTimestamp() > getTimeoutMillis()) {
- asyncTaskThread.stopTaskAndKillQuery(sessionManageFacade);
- }
}
}
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/MockDataRuntimeFlowableTask.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/MockDataRuntimeFlowableTask.java
index 8e096dcbaf..e98a73e3da 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/MockDataRuntimeFlowableTask.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/flow/task/MockDataRuntimeFlowableTask.java
@@ -87,8 +87,7 @@ public boolean isCancelled() {
private MockTaskConfig getMockTaskConfig(Long taskId, DelegateExecution execution) {
OdcMockTaskConfig config = FlowTaskUtil.getMockParameter(execution);
this.connectionConfig = FlowTaskUtil.getConnectionConfig(execution);
- return FlowTaskUtil.generateMockConfig(taskId, execution, getTimeoutMillis(),
- config, mockProperties);
+ return FlowTaskUtil.generateMockConfig(taskId, execution, getTimeoutMillis(), config, mockProperties);
}
@Override
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/permission/DBResourcePermissionHelper.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/permission/DBResourcePermissionHelper.java
index 21aab9aec4..674cbce4f4 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/permission/DBResourcePermissionHelper.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/permission/DBResourcePermissionHelper.java
@@ -22,6 +22,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
@@ -32,12 +33,15 @@
import org.springframework.stereotype.Component;
import com.oceanbase.odc.core.authority.util.SkipAuthorize;
+import com.oceanbase.odc.core.shared.constant.DialectType;
import com.oceanbase.odc.core.shared.constant.ErrorCodes;
import com.oceanbase.odc.core.shared.constant.OrganizationType;
import com.oceanbase.odc.core.shared.constant.ResourceRoleName;
import com.oceanbase.odc.core.shared.constant.ResourceType;
import com.oceanbase.odc.core.shared.exception.AccessDeniedException;
import com.oceanbase.odc.core.shared.exception.BadRequestException;
+import com.oceanbase.odc.metadb.connection.ConnectionConfigRepository;
+import com.oceanbase.odc.metadb.connection.ConnectionEntity;
import com.oceanbase.odc.metadb.connection.DatabaseEntity;
import com.oceanbase.odc.metadb.connection.DatabaseRepository;
import com.oceanbase.odc.metadb.dbobject.DBObjectEntity;
@@ -83,6 +87,9 @@ public class DBResourcePermissionHelper {
@Autowired
private PermissionCheckWhitelist permissionCheckWhitelist;
+ @Autowired
+ private ConnectionConfigRepository connectionConfigRepository;
+
private static final Set ORACLE_DATA_DICTIONARY = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
private static final Set MYSQL_DATA_DICTIONARY = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
@@ -106,13 +113,19 @@ public void checkDBPermissions(Collection databaseIds, Collection entities = databaseRepository.findByIdIn(databaseIds);
+ Set connectionIds = entities.stream()
+ .map(DatabaseEntity::getConnectionId)
+ .filter(Objects::nonNull).collect(Collectors.toSet());
+ Map id2Entity = this.connectionConfigRepository.findByIdIn(connectionIds)
+ .stream().collect(Collectors.toMap(ConnectionEntity::getId, e -> e));
List toCheckDatabaseIds = new ArrayList<>();
Set projectIds = getPermittedProjectIds();
for (DatabaseEntity e : entities) {
if (e.getProjectId() == null) {
throw new AccessDeniedException("Database is not belong to any project");
}
- if (permissionCheckWhitelist.containsDatabase(e.getName(), e.getDialectType())
+ DialectType dialectType = id2Entity.get(e.getConnectionId()).getDialectType();
+ if (permissionCheckWhitelist.containsDatabase(e.getName(), dialectType)
|| projectIds.contains(e.getProjectId())) {
continue;
}
diff --git a/server/odc-service/src/main/java/com/oceanbase/odc/service/session/ConnectConsoleService.java b/server/odc-service/src/main/java/com/oceanbase/odc/service/session/ConnectConsoleService.java
index c6e3ff673e..6ed7f89265 100644
--- a/server/odc-service/src/main/java/com/oceanbase/odc/service/session/ConnectConsoleService.java
+++ b/server/odc-service/src/main/java/com/oceanbase/odc/service/session/ConnectConsoleService.java
@@ -340,7 +340,8 @@ public AsyncExecuteResultResp getMoreResults(@NotNull String sessionId, String r
Objects.isNull(timeoutSeconds) ? DEFAULT_GET_RESULT_TIMEOUT_SECONDS : timeoutSeconds;
boolean shouldRemoveContext = context.isFinished();
try {
- List resultList = context.getMoreSqlExecutionResults(gettingResultTimeoutSeconds * 1000);
+ List resultList =
+ context.getMoreSqlExecutionResults(gettingResultTimeoutSeconds * 1000L);
List results = resultList.stream().map(jdbcGeneralResult -> {
SqlExecuteResult result = generateResult(connectionSession, jdbcGeneralResult, context.getContextMap());
try (TraceStage stage = result.getSqlTuple().getSqlWatch().start(SqlExecuteStages.SQL_AFTER_CHECK)) {