数据管理DMS的SQL审核功能,支持对上传的SQL语句进行审核并提供优化建议,避免无索引或不规范的SQL语句,降低SQL注入风险。
前提条件
数据库类型如下:- RDS MySQL、PolarDB MySQL版、AnalyticDB MySQL版、其他来源MySQL。
- RDS MariaDB。
- PolarDB分布式版。
- Oracle。
- PolarDB PostgreSQL版(兼容Oracle)。
- OceanBase。
背景信息
项目研发过程中,需要通过数据库的增、删、改、查等SQL操作来完成业务逻辑的处理及页面数据的展现。而在项目正式发布到线上之前,需要对涉及的SQL进行全面的审核,避免不符合数据库开发规范的SQL发布到线上影响生产服务。例如如下建表语句未增加主键、未添加表格备注且未对字段增加备注信息:
CREATE TABLE `test_sql_review_table` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`gmt_create` datetime NOT NULL,
`name` varchar(256) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
若所有SQL都由DBA逐一进行人工审核,人力资源消耗过大,也容易降低研发效率。
现DMS推出的SQL审核功能将结合安全规则的SQL审核优化建议,对SQL进行审核并提供优化建议,您可以在安全规则中自定义SQL规范,例如表要有主键、限制主键列类型及限制主键包含列的个数等,更多信息,请参见配置SQL审核优化建议。
操作步骤
- 登录数据管理DMS 5.0。
- 在顶部菜单栏中,选择 。
- 在页面右上角,单击SQL审核。
- 配置SQL审核工单参数。
- 单击提交申请。
- 查看SQL审核结果。
系统将提供如下六种SQL审核检测状态:
状态 说明 动作 检测通过 该语句不存在必须改进项,但可能存在潜在问题或建议改进项。 您可以单击详情,查看SQL语句与对应的SQL建议。 若需要调整SQL语句,您可以单击调整SQL,调整SQL语句。
检测不通过 该语句存在必须改进项。 请单击详情查看SQL建议,并单击调整SQL,调整SQL语句。 人工通过/人工不通过 除DMS审核SQL以外,若存在一些历史问题暂时无法修复或无需修复。 您可以选择人工不通过,手动标注检测结果。 或解析异常 DMS无法识别的SQL语句。 请单击调整SQL,调整SQL语句,并重新提交审核。 等待分析 DMS未开始识别SQL语句。 无 - 单击提交审批,管理员或DBA将再次确认SQL。审批通过后即工单流程结束。说明 若存在检测不通过或解析异常状态的SQL语句,系统将在提交审批后报错。