全部产品
云市场

SQL审核/sqlreview

更新时间:2018-12-29 11:58:38

需求背景

  • 项目在研发过程中会通过数据库的各种增、删、改、查SQL操作数据库来完成业务处理逻辑、页面相关数据的展现。那么在项目正式发布到线上之前,有必要对本次涉及到有过更新的所有SQL进行全面的审核,避免不符合数据库开发规范的SQL发布到线上影响生产服务
  • 如果所有SQL都需要DBA逐个人肉审核,对人力将是一个极大的开销,随着业务的高频发展,对研发效率也比较难以保障。
  • 【SQL审核】这个模块的存在就是为帮助研发全自助的进行SQL审核,并返回相关优化建议实现研发全自助的变更上线支持。

目的

  • 对需要发布的SQL进行审核
    • 避免无索引SQL的上线(性能差的SQL)
    • 避免SQL书写不规范,如SQL注入风险、select * 等不应该存在的情况的发生

效果

  • 确保每一个SQL都能走上索引
  • 确保不出现SQL注入、select * 等不合规写法的SQL上线

注意事项

  • SQL审核发生在代码上线之前,所以目前仅针对DMS企业版内注册为“测试”环境的数据库资源
  • 提交附件中SQL涉及到的相关表必须在所选数据库中存在,否则无法有效审核并给出索引建议
  • 支持.xml.txt后缀的SQL文本附件提交进行审核,未来将开发.sql后缀的SQL文本附件进行提交审核
  • 当前暂未支持OpenAPI的方式进行调用创建,预计在19年2月份的样子会支持

操作步骤

创建工单

  • 1:入口,左侧【SQL审核】tab展开后新建

    入口

  • 2:新建工单

输入项 输入方式 输入值 备注说明
项目名称 手工输入 按照实际项目需求进行输入,便于区分与后续跟进
数据源 手工输入,下拉选择 选择本次项目使用的线下测试环境作为目标库,需要有目标数据库的“变更”权限
业务说明 手工输入 按需详细描述本次项目涉及的业务范围,以助于后续相关人员快速了解诉求
相关人员 手工输入,下拉选择 用@触发选择一个目标用户,可多次选择
上传文件 按钮“添加”选择目标文件后,点击“上传” 1、ibatis和mybatis文件使用.xml后缀;
2、纯SQL文本使用.txt后缀,SQL之间使用分号隔开
3、可一次选择多个文件、也可选择单个文件进行任务的提交

新建工单

  • 3:按照需求进行相应的SQL审核操作
    • 提交成功后,系统会根据规则对符合开发规范、存在索引的SQL自动通过审核(无推荐索引),自动判断为===》已检测通过;
    • 符合开发规范、不存在索引的SQL自动通过审核(有推荐索引),自动判断为===》已检测通过;
    • 对不符合开发规范的SQL将会自动判断为===》检测不通过

SQL审核

  • 4:查看“检测不通过”SQL的原因,可以点击查看原因,也可从操作列表中的详情调整SQL更多进行对应的处理

    • 若SQL书写不合理则调整SQL书写后,点击确定则会重新检测该SQL(对于xml格式的动态SQL,需要给出每一种详细组合)

      调整SQL

  • 5:当所有SQL都达到已检测通过状态则可以进行工单的审核提交,入口为【检查结果】

    检查结果

  • 6:需要的流程审批设置为实例对应的【安全规则】中所配置的流程

    审批