本文为您介绍如何为不同的数据库类型创建规则模板,并支持查看、复制和删除规则模板。
当前系统预设的规则模板为 MySQL 系统内置模板、TDSQL-C 公网全局规则模板。
规则模板包括以下规则内容:
SQL 窗口:预置 SQL 操作中的规则和支持的 SQL 类型,支持启用和不启用规则。
SQL 变更:预置 SQL 变更操作中强制改进项、风险改进项、建议改进项的规则,并给出 SQL 示例,支持启用和不启用规则。
审批人员:支持编辑 SQL 变更、SQL 导入导出、权限申请工单审批节点及审批人员。
前提条件
创建规则模板
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 在页面上方单击创建模板。
4. 在弹出的对话框中输入模板名称,选择数据库类型,单击确定。


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

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

审批人员
选择审批人员,单击
,输入节点名称、选择审批人员,单击确定。

若需添加多级审批人员,请重复执行该步骤。

说明:
腾讯云主账号默认为主账号审批人员。
7. 设置完成后,单击提交。
新创建的规则模板默认不开启。
查看规则模板
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 查看规则模板列表。具体参数说明如下表所示。

参数 | 说明 |
模板 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 | 允许常用查询类语句(默认) | Select,Union,Show,Explain,Use,Begin,Commit,Rollback | |
10001 | 允许插入数据 | Insert | |
10002 | 允许删除数据 | Delete | |
10003 | 允许更新数据 | Update | |
10004 | 允许创建数据库 | CreateDatabase | |
10005 | 允许删除数据库 | DropDatabase | |
10006 | 允许修改数据库 | AlterDatabase | |
10007 | 允许创建表 | CreateTable | |
10008 | 允许删除表 | DropTable | |
10009 | 允许修改表 | AlterTable | |
10010 | 允许重命名表 | RenameTable | |
10011 | 允许清空表 | TruncateTable | |
10012 | 允许检查表 | CheckTable | |
10013 | 允许分析表 | AnalyzeTable | |
10016 | 允许创建索引 | CreateIndex | |
10017 | 允许删除索引 | DropIndex | |
10018 | 允许创建视图 | CreateView | |
10019 | 允许删除视图 | DropView | |
10020 | 允许创建用户 | CreateUser | |
10021 | 允许删除用户 | DropUser | |
10022 | 允许修改用户 | AlterUser | |
10023 | 允许重命名用户 | RenameUser | |
10024 | 允许设置密码 | SetPwd | |
10025 | 允许设置角色 | SetRole | |
10026 | 允许设置默认角色 | SetDefaultRole | |
10027 | 允许授权 | Grant | |
10028 | 允许 Kill | Kill | |
10029 | 允许 Binlog | Binlog | |
10030 | 允许不能识别的语句(启用有风险) | Unknown | |
10031 | 允许授权角色 | GrantRole | |
10032 | 允许回收角色权限 | RevokeRole | |
10033 | 允许回收权限 | Revoke | |
10034 | 允许 Flush | Flush | |
10035 | 允许删除存储过程 | DropProcedure | |
10036 | 允许创建存储过程 | ProcedureInfo | |
10037 | 允许 Call | Call | |
10038 | 允许 Set | Set | |
10039 | 允许锁表 | LockTables | |
10040 | 允许解除表锁 | UnlockTables | |
10041 | 允许创建保存点 | SavePoint | |
10042 | 允许删除保存点 | ReleaseSavePoint | |
10051 | 允许 Prepare | Prepare | |
10052 | 允许 Execute | Execute | |
10053 | 允许 Deallocate | Deallocate | |
10054 | 允许 LoadData | LoadData | |
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 | 允许常用查询类语句(默认) | Select,Union,SetOpr,Show,Explain,Use,Begin,Commit,Rollback |
20001 | 允许插入数据 | Insert |
20002 | 允许删除数据 | Delete |
20003 | 允许更新数据 | Update |
20004 | 允许创建数据库 | CreateDatabase |
20005 | 允许删除数据库 | DropDatabase |
20006 | 允许修改数据库 | AlterDatabase |
20007 | 允许创建表 | CreateTable |
20008 | 允许删除表 | DropTable |
20009 | 允许修改表 | AlterTable |
20010 | 允许重命名表 | RenameTable |
20011 | 允许清空表 | TruncateTable |
20012 | 允许检查表 | CheckTable |
20013 | 允许分析表 | AnalyzeTable |
20014 | 允许优化表 | OptimizeTable |
20015 | 允许修复表 | RepairTable |
20016 | 允许创建索引 | CreateIndex |
20017 | 允许删除索引 | DropIndex |
20018 | 允许创建视图 | CreateView |
20019 | 允许删除视图 | DropView |
20020 | 允许创建用户 | CreateUser |
20021 | 允许删除用户 | DropUser |
20022 | 允许修改用户 | AlterUser |
20023 | 允许重命名用户 | RenameUser |
20024 | 允许设置密码 | SetPwd |
20025 | 允许设置角色 | SetRole |
20026 | 允许设置默认角色 | SetDefaultRole |
20027 | 允许授权 | Grant |
20028 | 允许 Kill | Kill |
20029 | 允许 Binlog | Binlog |
20030 | 允许不能识别的语句(启用有风险) | Unknown |
20031 | 允许授权角色 | GrantRole |
20032 | 允许回收角色权限 | RevokeRole |
20033 | 允许回收权限 | Revoke |
20034 | 允许 Flush | Flush |
20035 | 允许删除存储过程 | DropProcedure |
20036 | 允许创建存储过程 | ProcedureInfo |
20037 | 允许 Call | Call |
20038 | 允许 Set | Set |
20039 | 允许锁表 | LockTables |
20040 | 允许解除表锁 | UnlockTables |
20041 | 允许创建保存点 | SavePoint |
20042 | 允许删除保存点 | ReleaseSavePoint |
20051 | 允许 Prepare | Prepare |
20052 | 允许 Execute | Execute |
20053 | 允许 Deallocate | Deallocate |
20054 | 允许 LoadData | LoadData |
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; |