本文为您介绍如何为不同的数据库类型创建规则模板,并支持查看、复制和删除规则模板。
当前系统预设的规则模板为 MySQL 系统内置模板。
规则模板包括以下规则内容:
SQL 窗口:预置 SQL 操作中的规则和支持的 SQL 类型,支持启用和不启用规则。
SQL 变更:预置 SQL 变更操作中强制改进项、风险改进项、建议改进项的规则,并给出 SQL 示例,支持启用和不启用规则。
审批人员:支持编辑 SQL 变更、SQL 导入导出、权限申请工单审批节点及审批人员。
前提条件
创建规则模板
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 在页面上方单击创建模板。
4. 在弹出的对话框中输入模板名称,选择数据库类型,单击确定。
![](https://qcloudimg.tencent-cloud.cn/image/document/2dfe62db01c4d7785beedfc135e78ad8.png)
5. 在已创建的规则模板对应的操作列单击查看。
6. 在规则概览区域,单击编辑,选择规则类型,设置具体规则。
![](https://qcloudimg.tencent-cloud.cn/image/document/4505ae2061f2b49c9e7619c8d2a480b6.png)
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 | |
SQL 变更
选择 SQL 变更,分别选择全部、强制改进项、风险改进项、建议改进项,对系统预置的规则,在状态列单击开关启用或不启用规则。
说明:
默认开启 SQL 变更中的所有规则。
![](https://qcloudimg.tencent-cloud.cn/image/document/6bb925b64ce5f513a1599d14ab400244.png)
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; |
审批人员
选择审批人员,单击![](https://qcloudimg.tencent-cloud.cn/image/document/5085c69b3334d7609dc55dfaf7bd7006.png)
,输入节点名称、选择审批人员,单击确定。
![](https://qcloudimg.tencent-cloud.cn/image/document/5085c69b3334d7609dc55dfaf7bd7006.png)
若需添加多级审批人员,请重复执行该步骤。
![](https://qcloudimg.tencent-cloud.cn/image/document/b66dea27e03efee97e99667552cadcf1.png)
说明:
腾讯云主账号默认为主账号审批人员。
7. 设置完成后,单击提交。
新创建的规则模板默认不开启。
查看规则模板
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 查看规则模板列表。具体参数说明如下表所示。
![](https://qcloudimg.tencent-cloud.cn/image/document/f5bf6eeb370b02b2beb847e77f1a2200.png)
参数 | 说明 |
模板 ID/名称 | 单击模板 ID,可查看规则模板详情。 在模板 ID 右侧单击 ![]() 在模板名称右侧 ![]() |
数据库类型 | 规则模板适用的数据库类型。 |
关联数据源数 | 该规则已关联的数据源数量,鼠标悬停至此列的数字处,将展示被管控的数据源名称。单击数据源名称,可跳转至实例详情页面。 |
默认 | 规则模板是否为默认模板。 每一种数据类型只允许开启一个默认的规则模板。 |
操作 | 查看规则模板详情:查看模板信息和规则概览,具体操作请参见 查看规则模板详情。 复制已有规则模板:单击复制,在弹出的对话框中输入新的模板名称,单击确定。 删除规则模板:单击删除,在弹出的对话框中单击确定。 说明: 预置模板和已设置为默认开启的模板不支持删除操作。 |
查看规则模板详情
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 单击模板 ID 或在操作列单击查看,进入规则模板详情页面。
4. 查看规则模板信息和规则概览。
![](https://qcloudimg.tencent-cloud.cn/image/document/6f325350121810f43e7c65be14e14b76.png)
模板信息
模板 ID:在右侧单击![](https://qcloudimg.tencent-cloud.cn/image/document/c30467aecb664424d24a41a717386d6e.png)
,可复制模板 ID。
![](https://qcloudimg.tencent-cloud.cn/image/document/c30467aecb664424d24a41a717386d6e.png)
模板名称:在右侧![](https://qcloudimg.tencent-cloud.cn/image/document/bdbc6916eb9354bfc251116891e9190c.png)
,可编辑模板名称。预置规则模板不支持该操作。
![](https://qcloudimg.tencent-cloud.cn/image/document/bdbc6916eb9354bfc251116891e9190c.png)
是否默认模板:单击开关,可启用或不启用模板。
关联实例:可查看该规则模板关联的数据源名称。
规则概览
可查看 SQL 窗口、SQL 变更、审批人员,可在页面右上方单击编辑,修改规则和审批人员。
说明:
预置规则不支持编辑操作。
修改规则模板,将会影响规则模板所关联的所有实例,请谨慎操作。
启用规则模板
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 在待启用规则模板对应的默认列开启开关。
支持单击模板 ID 或在操作列单击查看,进入规则模板详情页面,在模板信息处开启开关。
说明:
默认开启预置规则模板。
每一种数据类型只允许开启一个规则模板。
下载规则模板列表
1. 登录 DMC 控制台。
2. 在左侧导航栏,选择安全发布 > 实例管控 > 规则模板。
3. 在页面右上方单击![](https://qcloudimg.tencent-cloud.cn/image/document/ac626e9284b128598572c92c52621a01.png)
,下载格式为.csv 的规则模板列表。
![](https://qcloudimg.tencent-cloud.cn/image/document/ac626e9284b128598572c92c52621a01.png)