更新时间:2020-08-28 18:06
结构设计工单一般会涉及到多个实例,例如测试环境中进行结构设计,生产环境中发布这样的经典流程。因此结构设计安全规则中的基础配置项、设计规则、风险识别规则会使用变更基准库(测试环境中的库)关联的安全规则。
说明:
- 设计规则包含保存编辑,校验表头、保存编辑,校验字段、保存编辑,校验索引。如下图所示:
- 风险识别规则包含控制新建表风险、控制修改字段风险、控制修改索引风险、控制SQL执行风险。如下图所示:
而审批流程则使用生产环境中数据库的安全规则。例如:某个结构设计工单发布到B数据库,则使用B实例的安全规则。
结构设计有多个基础配置项:
注意:风险较大,仅限特殊场景使用,请谨慎开启。
配置内容 | 说明 |
---|---|
步骤 | 分为设计和发布两种节点。
|
节点名称 | 自定义节点的名称,最大支持10个字符。 |
库环境 | 决定当前节点在哪个环境下执行。 |
执行策略 |
|
可回退 | 决定发布任务是否支持回退到设计节点。 |
可跳过 | 决定是否可跳过当前步骤。 |
锚点 | 标识了工单编辑的冻结点,即锚点所在步骤成功发布之后,无法再对表结构进行编辑,工单变成已发布状态。 |
操作 | 可以根据需求移除发布节点。 |
结构设计有两个流程:
以上流程中均内置了大量的安全规则模板,您可以直接使用这些模板,也可以自定义新增规则。详细操作步骤请参见新增规则操作步骤。
@fac.
开头,后接因子名称。每个模块的不同检测点均提供不同因子,结构变更中提供因子的说明请参见下表:因子名 | 说明 |
---|---|
@fac.table_kind | 工单中编辑的表的种类。值:
|
@fac.column_kind | 表结构里面字段的种类。
|
@fac.xxxx_old | 从原有字段和索引中获取值进行对比。 |
@fac.column_is_primary | 判断字段是不是主键列。
|
@fac.column_type_support_default | 判断当前字段的数据类型是不是支持设置默认值。
CHAR 类型支持设置默认值,TEXT 类型不支持。 |
@fac.index_kind | 表结构中索引的种类。
|
@fac.index_column_count | 索引包含的字段个数。 |
@fac.change_type | DDL执行的数据库识别出的字段、索引变更类型。
|
@fac.altered_table_size | 被修改表的大小。(单位:MB) |
@fac.online_execute | 识别变更是否能ONLINE执行。
|
@fac.change_risk_level | 变更风险级别。
|
@fac.env_type | 环境类型,值是环境标识。如:DEV 、PRODUCT 。更多环境类型请参见实例环境说明。 |
if
条件之后系统执行的行为,比如:禁止提交工单、选择工作流、允许执行、拒绝执行等,这些动作表达了安全规则的主要目的。动作全部以@act.
开头,后接动作名称。每个模块的不同检测点均提供不同动作,结构设计中提供动作的说明请参见下表:动作名 | 说明 |
---|---|
@act.block_submit | 在保存表阶段使用,阻断提交并显示错误信息。用法:@act.block_submit '阻断的理由' 。 |
@act.show_warning | 在保存表阶段使用,显示警告信息(不阻断提交)。用法:@act.show_warning '警告的内容' 。 |
@act.mark_middle_risk | 在风险识别阶段使用,标记为中风险。用法:@act.mark_middle_risk '理由' 。 |
@act.mark_high_risk | 在风险识别阶段使用,标记为高风险。用法:@act.mark_high_risk '理由' 。 |
@act.forbid_submit_publish | 在设置审批流程阶段使用,阻断变更执行。用法:@act.forbid_submit_publish '理由' 。 |
@act.do_not_approve | 指定审批模板ID。详情请参见设置审批流程。 |
@act.choose_approve_template | |
@act.choose_approve_template_with_reason |
安全规则提供了大量的规则模板可直接选择启用,也可以在模板基础上按照实际需求自行调整启用。结构变更中的模板如下所示:
检测点 | 模板 |
---|---|
保存编辑,校验表头 | 新建表,禁止表名为关键字 |
新建表,限制表名长度 | |
新建表,表必须填写备注 | |
新建表,限制表名全部小写 | |
新建表,必须要有主键(PK) | |
新建表,必须要有唯一键(PK/UK) | |
索引数量合理性约束(过多时警告用户) | |
新建表,校验某些字段是否存在 | |
保存编辑,校验字段 | 新增字段,禁止字段名为关键字 |
新增字段,字段必须填写备注 | |
新增字段,限制字段名大小写 | |
原有表新增非空字段必须明确指定默认值 | |
原有字段,可空改为非空必须明确指定默认值 | |
限制新增主键字段必须是整数类型 | |
新建表要求所有字段不能为可空 | |
新增字段,限制char类型长度 | |
新增字段,限制varchar类型长度 | |
保存编辑,校验索引 | 新增索引,禁止索引名为关键字 |
新增索引,限制索引名大小写 | |
新增索引,限制Unique索引名格式 | |
新增索引,限制Normal索引名格式 | |
新增索引,限制FullText索引名格式 | |
新增索引,限制Spatial索引名格式 | |
限制新增主键字段个数 | |
限制新增索引字段个数 | |
控制新建表风险 | 控制逻辑表分表数量 |
控制表主键 | |
控制表索引总数量 | |
控制修改字段风险 | 控制删除字段 |
控制新增字段数据类型 | |
控制重命名字段 | |
控制修改字段数据类型 | |
控制修改索引风险 | 控制删除主键 |
控制删除索引 | |
控制主键更改为索引 | |
控制修改主键包含列 | |
控制修改普通索引 | |
控制新增索引类型 | |
控制SQL执行风险 | 控制核心实例风险 |
控制表存储引擎 | |
控制锁表/大表变更风险 | |
审批规则校验 | 禁止执行任何DDL变更到数据库 |
禁止执行任何DDL变更到生产库 | |
设置测试库执行DDL变更免批 | |
设置生产环境按风险级别审批 |
说明:您也可以单击重置为免审批,使工单跳过审批步骤。
参数 | 说明 |
---|---|
检测点(必选) | 选择需要增加规则的检测点。结构设计中提供了多个检测点,详情请参见检测点。 |
模板库(可选) | 安全规则模板库中提供了大量规则模板,选择了检测点以后,您可以从模板库中按需加载规则模板。可选的模板库列表请参见模板库。 |
规则名称(必填) | 自定义规则名称。(如您在模板库中选择了规则模板,此处会自动填充。) |
规则DSL(必填) | 填写规则DSL,DSL语法请参见安全规则DSL语法。(如您在模板库中选择了规则模板,此处会自动填充。) |
在文档使用中是否遇到以下问题
更多建议
匿名提交