规则模板包括以下规则内容:
·SQL 窗口:预置 SQL 操作中的规则和支持的 SQL 类型,支持启用和不启用规则。
·SQL 变更:预置 SQL 变更操作中强制改进项、风险改进项、建议改进项的规则,并给出 SQL 示例,支持启用和不启用规则。
·审批人员:支持编辑 SQL 变更、SQL 导入导出、权限申请工单审批节点及审批人员。
一、支持的数据库
仅支持 MySQL 和 TDSQL-C 事务集群、TDSQL MySQL 数据库。具体支持的版本请参见 支持的数据库。
二、前提条件
子账号已具有 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 的规则模板列表。
八、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; |
十二、TDSQL MySQL 窗口规则说明
| ID | 规则组 | 规则名称 | SQL 类型 | 配置值 |
| 1000 | DML-SQL | 允许常用查询类语句(默认) | Select,Union,SetOpr,Show,Explain,Use,Begin,Commit,Rollback | NA |
| 1001 | DML-SQL | 允许插入数据 | Insert | NA |
| 1002 | DML-SQL | 允许删除数据 | Delete | NA |
| 1003 | DML-SQL | 允许更新数据 | Update | NA |
| 1004 | DML-SQL | 允许 Execute | Execute | NA |
| 1005 | DML-SQL | 允许 Deallocate | Deallocate | NA |
| 1006 | DML-SQL | 允许 Prepare | Prepare | NA |
| 3015 | DML-SQL | 允许 Call | Call | NA |
| 2001 | DDL-SQL | 允许创建数据库 | CreateDatabase | NA |
| 2002 | DDL-SQL | 允许删除数据库 | DropDatabase | NA |
| 2003 | DDL-SQL | 允许修改数据库 | AlterDatabase | NA |
| 2101 | DDL-SQL | 允许创建表 | CreateTable | NA |
| 2102 | DDL-SQL | 允许删除表 | DropTable | NA |
| 2103 | DDL-SQL | 允许修改表 | AlterTable | NA |
| 2104 | DDL-SQL | 允许重命名表 | RenameTable | NA |
| 2105 | DDL-SQL | 允许清空表 | TruncateTable | NA |
| 2106 | DDL-SQL | 允许检查表 | CheckTable | NA |
| 2107 | DDL-SQL | 允许分析表 | AnalyzeTable | NA |
| 2108 | DDL-SQL | 允许优化表 | OptimizeTable | NA |
| 2109 | DDL-SQL | 允许修复表 | RepairTable | NA |
| 2201 | DDL-SQL | 允许创建索引 | CreateIndex | NA |
| 2202 | DDL-SQL | 允许删除索引 | DropIndex | NA |
| 2301 | DDL-SQL | 允许创建视图 | CreateView | NA |
| 2302 | DDL-SQL | 允许删除视图 | DropView | NA |
| 3013 | DDL-SQL | 允许删除存储过程 | DropProcedure | NA |
| 3014 | DDL-SQL | 允许创建存储过程 | ProcedureInfo | NA |
| 3001 | UserAndPermission | 允许创建用户 | CreateUser | NA |
| 3002 | UserAndPermission | 允许删除用户 | DropUser | NA |
| 3003 | UserAndPermission | 允许修改用户 | AlterUser | NA |
| 3004 | UserAndPermission | 允许重命名用户 | RenameUser | NA |
| 3005 | UserAndPermission | 允许设置密码 | SetPwd | NA |
| 3006 | UserAndPermission | 允许设置角色 | SetRole | NA |
| 3007 | UserAndPermission | 允许设置默认角色 | SetDefaultRole | NA |
| 3008 | UserAndPermission | 允许授权 | Grant | NA |
| 3009 | UserAndPermission | 允许授权角色 | GrantRole | NA |
| 3010 | UserAndPermission | 允许回收角色权限 | RevokeRole | NA |
| 3011 | UserAndPermission | 允许回收权限 | Revoke | NA |
| 3012 | SystemAndSession | 允许 Flush | Flush | NA |
| 3016 | SystemAndSession | 允许 Set | Set | NA |
| 3101 | SystemAndSession | 允许 Kill | Kill | NA |
| 4001 | QueryAndTransaction | 允许锁表 | LockTables | NA |
| 4002 | QueryAndTransaction | 允许解除表锁 | UnlockTables | NA |
| 5001 | QueryAndTransaction | 允许创建保存点 | SavePoint | NA |
| 5002 | QueryAndTransaction | 允许删除保存点 | ReleaseSavePoint | NA |
| 6001 | PerformanceAndSecurityRestrictions | SQL 执行超时时间(单位:秒) | NA | 300 |
| 6002 | PerformanceAndSecurityRestrictions | 禁止 DML 影响行数超过阈值执行 | NA | 2000 |
| 6003 | PerformanceAndSecurityRestrictions | 禁止 DDL 表空间超过阈值执行(单位:MB) | NA | 2048 |
| 6004 | PerformanceAndSecurityRestrictions | 控制单次执行 SQL 个数 | NA | 100 |
| 6005 | PerformanceAndSecurityRestrictions | 控制单次执行 SELECT SQL 个数 | NA | 10 |
| 6006 | PerformanceAndSecurityRestrictions | 控制单次执行 DML SQL 个数 | NA | 100 |
| 6007 | WindowOperation | 禁用结果集复制 | NA | NA |
| 6008 | WindowOperation | 禁用结果集导出 | NA | NA |
| 6009 | PerformanceAndSecurityRestrictions | 单次查询最大返回行数 | NA | 200 |
| 6010 | PerformanceAndSecurityRestrictions | 限制 SELECT 允许 SQL 全表扫描的最大值(单位:MB) | NA | 10240 |
| 6011 | PerformanceAndSecurityRestrictions | 禁止 SELECT 预估扫描行数超过阈值执行 | NA | 200000 |
| 6012 | PerformanceAndSecurityRestrictions | 禁止无 WHERE 条件的 UPDATE/DELETE | NA | NA |
| 6013 | PerformanceAndSecurityRestrictions | 禁止无 WHERE 条件的 SELECT | NA | NA |
| 9999 | PerformanceAndSecurityRestrictions | 允许不能识别的语句(启用有风险) | Unknown | NA |
十三、TDSQL MySQL 变更规则说明
| 规则分类 | 规则 ID | 规则名称 | SQL 示例 |
| 强制改进项 | 101001 | 不能删除数据库 | DROP DATABASE test; |
| | 101002 | 不能删除表 | DROP TABLE test; |
| | 101003 | 不能清空表 | TRUNCATE TABLE test; |
| | 101004 | 不能删除列 | ALTER TABLE test DROP COLUMN id; |
| | 101005 | DELETE/UPDATE 操作必须携带 WHERE 条件 | DELETE FROM test; |
| | 101007 | 不能使用 USE 指定数据库 | USE test; |
| | 101009 | 不支持事务 | BEGIN; |
| | 101010 | 不支持临时表 | CREATE TEMPORARY TABLE test; |
| 风险改进项 | 101008 | 不能在 SQL 中指定字符集 | SET NAMES utf8; |
| | 102001 | 创建表需要存在主键 | CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=InnoDB; |
| | 102002 | 需要指定建立 InnoDB 的存储引擎 | CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=MyIsam; |
| | 102003 | DELETE/UPDATE 语句需要携带 LIMIT 选项 | DELETE FROM test WHERE id > 10; |
| | 102004 | DELETE/UPDATE 语句不要携带 ORDER BY 选项 | DELETE FROM test ORDER BY id; |
| 建议改进项 | 103001 | 创建表建议存在索引 | CREATE TABLE test (id bigint(20) NOT NULL) ENGINE=InnoDB; |
| | 103002 | 创建表不建议使用外键 | CREATE TABLE test (f1 bigint(20) NOT NULL,CONSTRAINT fk_f1 FOREIGN KEY (f1) REFERENCES test2 (f1)) ENGINE=InnoDB; |
| | 103005 | 表名/字段名不建议为保留字 | CREATE TABLE charset (charset bigint(20) NOT NULL) ENGINE=InnoDB; |