规则模板

最近更新时间:2025-12-01 15:34:21

我的收藏
本文为您介绍如何为不同的数据库类型创建规则模板,并支持查看、复制和删除规则模板。
当前系统预设的规则模板为 MySQL 系统内置模板TDSQL-C 公网全局规则模板
规则模板包括以下规则内容:
SQL 窗口:预置 SQL 操作中的规则和支持的 SQL 类型,支持启用和不启用规则。
SQL 变更:预置 SQL 变更操作中强制改进项、风险改进项、建议改进项的规则,并给出 SQL 示例,支持启用和不启用规则。
审批人员:支持编辑 SQL 变更、SQL 导入导出、权限申请工单审批节点及审批人员。

支持的数据库

仅支持 MySQL 和 TDSQL-C 事务集群数据库。具体支持的版本请参见 支持的数据库

前提条件

子账号已具有 DMC 相关功能页面的访问权限,具体说明及操作请参见 DMC 用户权限设置。主账号默认拥有全部权限。

创建规则模板

1. 登录 DMC 控制台
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板
3. 在页面上方单击创建模板
4. 在弹出的对话框中输入模板名称,选择数据库类型,单击确定

5. 在已创建的规则模板对应的操作列单击查看
6. 规则概览区域,单击编辑,选择规则类型,设置具体规则。

SQL 窗口
选择 SQL 窗口,对系统预置的规则,在状态列单击开关启用或不启用规则。SQL 窗口规则请参见 SQL 窗口和 SQL 变更规则说明
SQL 变更
选择 SQL 变更,分别选择全部、强制改进项、风险改进项、建议改进项,对系统预置的规则,在状态列单击开关启用或不启用规则。
说明:
默认开启 SQL 变更中的所有规则。SQL 变更规则请参见 SQL 窗口和 SQL 变更规则说明

审批人员
选择审批人员,单击

,输入节点名称、选择审批人员,单击确定
若需要创建新的联系人或联系组,请单击创建用户/用户组。具体操作请分别参见用户使用说明为用户组添加用户
若需添加多级审批人员,请重复执行该步骤。

说明:
腾讯云主账号默认为主账号审批人员。
7. 设置完成后,单击提交
新创建的规则模板默认不开启。

查看规则模板

1. 登录 DMC 控制台
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板
3. 查看规则模板列表。具体参数说明如下表所示。

参数
说明
模板 ID/名称
单击模板 ID,可查看规则模板详情。
在模板 ID 右侧单击

,可复制模板 ID。
在模板名称右侧

,可编辑模板名称。预置规则模板不支持该操作。
数据库类型
规则模板适用的数据库类型。
关联数据源数
该规则已关联的数据源数量,鼠标悬停至此列的数字处,将展示被管控的数据源名称。单击数据源名称,可跳转至管控实例详情页面。
是否默认模板
规则模板是否为默认模板。
每一种数据类型只允许开启一个默认的规则模板。
操作
查看规则模板详情:查看模板信息和规则概览,具体操作请参见 查看规则模板详情
复制已有规则模板:单击复制,在弹出的对话框中输入新的模板名称,单击确定
删除规则模板:单击删除,在弹出的对话框中单击确定
说明:
预置模板和已设置为默认开启的模板不支持删除操作。

查看规则模板详情

1. 登录 DMC 控制台
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板
3. 单击模板 ID 或在操作列单击查看,进入规则模板详情页面。
4. 查看规则模板信息和规则概览。

模板信息
模板 ID:在右侧单击

,可复制模板 ID。
模板名称:在右侧

,可编辑模板名称。预置规则模板不支持该操作。
是否默认模板:单击开关,可启用或不启用模板。
关联实例:可查看该规则模板关联的数据源名称。单击数据源名称,可跳转至管控实例详情页面。
规则概览
可查看 SQL 窗口、SQL 变更、审批人员,可在页面右上方单击编辑,修改规则和审批人员。
说明:
预置规则不支持编辑操作。
修改规则模板,将会影响规则模板所关联的所有实例,请谨慎操作。

启用规则模板

1. 登录 DMC 控制台
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板
3. 在待启用规则模板对应的默认列开启开关。
支持单击模板 ID 或在操作列单击查看,进入规则模板详情页面,在模板信息处开启开关。
说明:
默认开启预置规则模板。
每一种数据类型只允许开启一个规则模板。

下载规则模板列表

1. 登录 DMC 控制台
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板
3. 在页面右上方单击

,下载格式为.csv 的规则模板列表。

SQL 窗口和 SQL 变更规则说明

MySQL SQL 窗口规则说明

ID
规则组
规则名称
SQL类型
配置值
10000
DML-SQL
允许常用查询类语句(默认)
Select,Union,SetOpr,Show,Explain,Use,Begin,Commit,Rollback
NA
10001
DML-SQL
允许插入数据
Insert
NA
10002
DML-SQL
允许删除数据
Delete
NA
10003
DML-SQL
允许更新数据
Update
NA
10004
DDL-SQL
允许创建数据库
CreateDatabase
NA
10005
DDL-SQL
允许删除数据库
DropDatabase
NA
10006
DDL-SQL
允许修改数据库
AlterDatabase
NA
10007
DDL-SQL
允许创建表
CreateTable
NA
10008
DDL-SQL
允许删除表
DropTable
NA
10009
DDL-SQL
允许修改表
AlterTable
NA
10010
DDL-SQL
允许重命名表
RenameTable
NA
10011
DDL-SQL
允许清空表
TruncateTable
NA
10012
DDL-SQL
允许检查表
CheckTable
NA
10013
DDL-SQL
允许分析表
AnalyzeTable
NA
10014
DDL-SQL
允许优化表
OptimizeTable
NA
10015
DDL-SQL
允许修复表
RepairTable
NA
10016
DDL-SQL
允许创建索引
CreateIndex
NA
10017
DDL-SQL
允许删除索引
DropIndex
NA
10018
DDL-SQL
允许创建视图
CreateView
NA
10019
DDL-SQL
允许删除视图
DropView
NA
10020
用户和权限
允许创建用户
CreateUser
NA
10021
用户和权限
允许删除用户
DropUser
NA
10022
用户和权限
允许修改用户
AlterUser
NA
10023
用户和权限
允许重命名用户
RenameUser
NA
10024
用户和权限
允许设置密码
SetPwd
NA
10025
用户和权限
允许设置角色
SetRole
NA
10026
用户和权限
允许设置默认角色
SetDefaultRole
NA
10027
用户和权限
允许授权
Grant
NA
10028
系统和会话控制
允许 Kill
Kill
NA
10029
系统和会话控制
允许 Binlog
Binlog
NA
10030
性能和安全限制
允许不能识别的语句(启用有风险)
Unknown
NA
10031
用户和权限
允许授权角色
GrantRole
NA
10032
用户和权限
允许回收角色权限
RevokeRole
NA
10033
用户和权限
允许回收权限
Revoke
NA
10034
系统和会话控制
允许 Flush
Flush
NA
10035
DDL-SQL
允许删除存储过程
DropProcedure
NA
10036
DDL-SQL
允许创建存储过程
ProcedureInfo
NA
10037
DML-SQL
允许 Call
Call
NA
10038
系统和会话控制
允许 Set
Set
NA
10039
查询与事务控制
允许锁表
LockTables
NA
10040
查询与事务控制
允许解除表锁
UnlockTables
NA
10041
查询与事务控制
允许创建保存点
SavePoint
NA
10042
查询与事务控制
允许删除保存点
ReleaseSavePoint
NA
10051
DML-SQL
允许 Prepare
Prepare
NA
10052
DML-SQL
允许 Execute
Execute
NA
10053
DML-SQL
允许 Deallocate
Deallocate
NA
10054
DML-SQL
允许 LoadData
LoadData
NA
10101
性能和安全限制
SQL 执行超时时间(单位:秒)
NA
300
10102
性能和安全限制
禁止 DML 影响行数超过阈值执行
NA
2000
10103
性能和安全限制
禁止 DDL 表空间超过阈值执行(单位:MB)
NA
2048
10104
性能和安全限制
控制单次执行 SQL 个数
NA
100
10105
性能和安全限制
控制单次执行 SELECT SQL 个数
NA
10
10106
性能和安全限制
控制单次执行 DML SQL 个数
NA
100
10107
窗口操作
禁用结果集复制
NA
NA
10108
窗口操作
禁用结果集导出
NA
NA
10109
性能和安全限制
单次查询最大返回行数
NA
200
10110
性能和安全限制
限制 SELECT 允许 SQL 全表扫描的最大值(单位:MB)
NA
10240
10111
性能和安全限制
禁止 SELECT 预估扫描行数超过阈值执行
NA
200000
10112
性能和安全限制
禁止无 WHERE 条件的 UPDATE/DELETE
NA
NA
10113
性能和安全限制
禁止无 WHERE 条件的 SELECT
NA
NA

MySQL SQL 变更规则说明

规则分类
规则 ID
规则名称
SQL 示例
强制改进项

1001
不能删除数据库
DROP DATABASE test;

1002
不能删除表
DROP TABLE test;

1003
不能清空表
TRUNCATE TABLE test;

1004
不能删除列
ALTER TABLE test DROP COLUMN id;

1005
DELETE/UPDATE 操作必须携带 WHERE 条件
DELETE FROM test;

1007
不能使用 USE 指定数据库
USE test;

1009
不支持事务
BEGIN;

1010
不支持临时表
CREATE TEMPORARY TABLE test;
风险改进项
1008
不能在 SQL 中指定字符集
SET NAMES utf8;

2001
创建表需要存在主键
CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=InnoDB;

2002
需要指定建立 InnoDB 的存储引擎
CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=MyIsam;

2003
DELETE/UPDATE 语句需要携带 LIMIT 选项
DELETE FROM test WHERE id > 10;

2004
DELETE/UPDATE 语句不要携带 ORDER BY 选项
DELETE FROM test ORDER BY id;
建议改进项

3001
创建表建议存在索引
CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=InnoDB;

3002
创建表不建议使用外键
CREATE TABLE test (f1 bigint(20) NOT NULL,CONSTRAINT fk_f1 FOREIGN KEY (f1) REFERENCES test2 (f1)) ENGINE=InnoDB;

3003
不建议创建分区表
CREATE TABLE test (id bigint(20) NOT NULL) PARTITION by hash (id) (PARTITION x, PARTITION y);

3005
表名/字段名不建议为保留字
CREATE TABLE charset (charset bigint(20) NOT NULL) ENGINE=InnoDB;
3006
同一张表的多条 ALTER 语句建议合为一条
ALTER TABLE test ADD COLUMN f1 int;ALTER TABLE test ADD COLUMN f2 int;

TDSQL-C SQL 窗口规则说明

ID
规则组
规则名称
SQL类型
配置值
20000
DML-SQL
允许常用查询类语句(默认)
Select,Union,SetOpr,Show,Explain,Use,Begin,Commit,Rollback
NA
20001
DML-SQL
允许插入数据
Insert
NA
20002
DML-SQL
允许删除数据
Delete
NA
20003
DML-SQL
允许更新数据
Update
NA
20004
DDL-SQL
允许创建数据库
CreateDatabase
NA
20005
DDL-SQL
允许删除数据库
DropDatabase
NA
20006
DDL-SQL
允许修改数据库
AlterDatabase
NA
20007
DDL-SQL
允许创建表
CreateTable
NA
20008
DDL-SQL
允许删除表
DropTable
NA
20009
DDL-SQL
允许修改表
AlterTable
NA
20010
DDL-SQL
允许重命名表
RenameTable
NA
20011
DDL-SQL
允许清空表
TruncateTable
NA
20012
DDL-SQL
允许检查表
CheckTable
NA
20013
DDL-SQL
允许分析表
AnalyzeTable
NA
20014
DDL-SQL
允许优化表
OptimizeTable
NA
20015
DDL-SQL
允许修复表
RepairTable
NA
20016
DDL-SQL
允许创建索引
CreateIndex
NA
20017
DDL-SQL
允许删除索引
DropIndex
NA
20018
DDL-SQL
允许创建视图
CreateView
NA
20019
DDL-SQL
允许删除视图
DropView
NA
20020
用户和权限
允许创建用户
CreateUser
NA
20021
用户和权限
允许删除用户
DropUser
NA
20022
用户和权限
允许修改用户
AlterUser
NA
20023
用户和权限
允许重命名用户
RenameUser
NA
20024
用户和权限
允许设置密码
SetPwd
NA
20025
用户和权限
允许设置角色
SetRole
NA
20026
用户和权限
允许设置默认角色
SetDefaultRole
NA
20027
用户和权限
允许授权
Grant
NA
20028
系统和会话控制
允许 Kill
Kill
NA
20029
系统和会话控制
允许 Binlog
Binlog
NA
20030
性能和安全限制
允许不能识别的语句(启用有风险)
Unknown
NA
20031
用户和权限
允许授权角色
GrantRole
NA
20032
用户和权限
允许回收角色权限
RevokeRole
NA
20033
用户和权限
允许回收权限
Revoke
NA
20034
系统和会话控制
允许 Flush
Flush
NA
20035
DDL-SQL
允许删除存储过程
DropProcedure
NA
20036
DDL-SQL
允许创建存储过程
ProcedureInfo
NA
20037
DML-SQL
允许 Call
Call
NA
20038
系统和会话控制
允许 Set
Set
NA
20039
查询与事务控制
允许锁表
LockTables
NA
20040
查询与事务控制
允许解除表锁
UnlockTables
NA
20041
查询与事务控制
允许创建保存点
SavePoint
NA
20042
查询与事务控制
允许删除保存点
ReleaseSavePoint
NA
20051
DML-SQL
允许 Prepare
Prepare
NA
20052
DML-SQL
允许 Execute
Execute
NA
20053
DML-SQL
允许 Deallocate
Deallocate
NA
20054
DML-SQL
允许 LoadData
LoadData
NA
20101
性能和安全限制
SQL 执行超时时间(单位:秒)
NA
300
20102
性能和安全限制
禁止 DML 影响行数超过阈值执行
NA
2000
20103
性能和安全限制
禁止 DDL 表空间超过阈值执行(单位:MB)
NA
2048
20104
性能和安全限制
控制单次执行 SQL 个数
NA
100
20105
性能和安全限制
控制单次执行 SELECT SQL 个数
NA
10
20106
性能和安全限制
控制单次执行 DML SQL 个数
NA
100
20107
窗口操作
禁用结果集复制
NA
NA
20108
窗口操作
禁用结果集导出
NA
NA
20109
性能和安全限制
单次查询最大返回行数
NA
200
20110
性能和安全限制
限制 SELECT 允许 SQL 全表扫描的最大值(单位:MB)
NA
10240
20111
性能和安全限制
禁止 SELECT 预估扫描行数超过阈值执行
NA
200000
20112
性能和安全限制
禁止无 WHERE 条件的 UPDATE/DELETE
NA
NA
20113
性能和安全限制
禁止无 WHERE 条件的 SELECT
NA
NA

TDSQL-C SQL 变更规则说明

规则分类
规则 ID
规则名称
SQL 示例
强制改进项
201002
不能删除表
DROP TABLE test;
201003
不能清空表
TRUNCATE TABLE test;
201001
不能删除数据库
DROP DATABASE test;
201004
不能删除列
ALTER TABLE test DROP COLUMN id;
201005
DELETE/UPDATE 操作必须携带 WHERE 条件
DELETE FROM test;
201007
不能使用 USE 指定数据库
USE test;
201009
不支持事务
BEGIN;
201010
不支持临时表
CREATE TEMPORARY TABLE test;
风险改进项
201008
不能在 SQL 中指定字符集
SET NAMES utf8;
202001
创建表需要存在主键
CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=InnoDB;
202002
需要指定建立 InnoDB 的存储引擎
CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=MyIsam;
202003
DELETE/UPDATE 语句需要携带 LIMIT 选项
DELETE FROM test WHERE id > 10;
202004
DELETE/UPDATE 语句不要携带 ORDER BY 选项
DELETE FROM test ORDER BY id;
建议改进项
203001
创建表建议存在索引
CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=InnoDB;
203002
创建表不建议使用外键
CREATE TABLE test (f1 bigint(20) NOT NULL,CONSTRAINT fk_f1 FOREIGN KEY (f1) REFERENCES test2 (f1)) ENGINE=InnoDB;
203003
不建议创建分区表
CREATE TABLE test (id bigint(20) NOT NULL) PARTITION by hash (id) (PARTITION x, PARTITION y);
203005
表名/字段名不建议为保留字
CREATE TABLE charset (charset bigint(20) NOT NULL) ENGINE=InnoDB;
203006
同一张表的多条 ALTER 语句建议合为一条
ALTER TABLE test ADD COLUMN f1 int;ALTER TABLE test ADD COLUMN f2 int;