安全管控白皮书
提示
- 查看完整产品白皮书,可点击下载pdf文档
一、背景
数据库是应用运行的核心。应用开发过程中,数据库 SQL 的规范编写与正确设计是数据库稳定运行的基础保障。因此,SQL 审核已经成为一个必不可少的措施与环节,通过 SQL 审核来提升 SQL 质量,提前消除或大幅度降低不良 SQL 引发的数据库问题,保障安全、稳定、高效的数据库运行环境。事前预防重于事后救火,应用从开发、测试、发布、运维的整个生命周期里,SQL 审核的位置越靠前,SQL 问题的解决效果越好、成本越低。为此通常需要投入大量 DBA 资源来审核各应用的 SQL 语句规范性、性能、创建对象的规范性等,以确保应用系统运行的高效和稳定。但是人工审核存在四大难以克服的问题。1.标准尺度不一。SQL 审核和质量分析对 DBA 的能力和经验有一定的要求,且人工审核容易出现标准尺度不一的情况。2.DBA 资源有限。人工审核的极限是 100 条/天,现有的 DBA 资源往往难以应对大批量的 SQL 审核发布局面。3.规范落地和监督约束难。SQL 开发规范数量繁多、体系庞大,靠自觉遵守,规范难以落地,监督约束也难以把控。4.审核结果无法可视化。人工审核结果难以结构化存储、分析、可视化展示;难以有效帮助 DBA 更好地做出决策,为 SQL 质量提升提供优化建议。
二、产品介绍
薄冰 SQL 质量管理系统遵循的核心思想是规范化管理和全周期管理。
规范化管理是指对 SQL 代码进行标准化、规范化、自动化的管理。通过制定 SQL 代码的规范、制定审核规则、提供自动化的审核工具等,可以保证 SQL 代码的质量、可维护性和安全性。
全周期管理是指对 SQL 代码进行从开发到运维的全生命周期管理。通过在开发、测试、部署、运维等各个环节对 SQL 代码进行审核和优化,可以避免 SQL 代码的质量问题在生命周期内的逐渐积累,保证 SQL 代码的质量和性能。
在具体落地实践中,薄冰科技结合客户实际业务需求和技术特点,制定符合实际情况的规范和标准,同时结合自动化工具、性能分析工具等,形成完整的 SQL 质量管理体系。这样可以帮助企业和个人提高 SQL 代码的质量、保障数据库的安全性、提高数据库的性能,提高工作效率和业务价值。
司南 SQL 质量管控平台由数据采集、数据存储、数据分析和结果展示四大模块组成。通过对被审核系统进行在线/离线数据采集,司南将采集的所有数据全部存储在资料库中,然后对采集的数据通过算法进行精准分析,最终通过可视化的方式将分析结果进行展示。
三、核心价值
3.1. 久经实践的审核规则与解析引擎
作为 SQL 质量审核系统,SQL 审核规则无疑是核心。规则参与方深刻了解规则背后的原因与意义是规则顺利推行的前提。司南 SQL 审核系统的规则选取建立在深刻理解每条特定规范背后原理,并充分经过行业生产实践的基础上。薄冰依靠自身技术能力及多年对数据库的深入研究,将客户痛点需求与自身经验相融合,形成一套融合了上千条专家经验的规则库,通过管理 SQL、表、索引、序列、执行计划、数据字典、性能数据,并与 SQL 解析引擎有机结合,呈现出最全面的审核结果、最优的修改建议,并最终形成最佳的实践方案和标准。
同时,通过系统清晰的阐明规范的原理与意义,从而帮助开发者潜移默化的学习,推动规范的真正落地与实行。
3.2. 四个阶段:开发、测试、发布和生产
当前企业的 SQL 审核优化大部分只针对于上线后已出现的 SQL 质量问题,而 SQL 隐患存在于整个产品生命周期。一般来说,企业在应用开发阶段就需要严格遵守 SQL 开发规范,并在项目管理各个流程中完善 SQL 编写最佳实践,同时还需要帮助开发人员解决开发中遇到的 SQL 问题和记录发布信息。
司南 SQL 质量管控平台涵盖了开发、测试、上线发布、生产运行的 4 个阶段,可在流程中有效跟踪审核的 SQL。司南平台通过云客户端 SQL 调试以及自助审核报告,实现与使用者的即时互动反馈,可以令开发人员真正做到自助式 SQL 审核,并以工单的形式实现团队协作。司南平台使开发、运维、测试的交流变得高效,促进整个项目管理流程进入良性循环,帮助企业快速实现 Devops。具体应用场景包括:
开发阶段:可以帮助开发人员检查 SQL 代码的规范性和合规性,规避潜在的性能问题和安全风险,保证 SQL 代码的质量和可维护性。
测试阶段:可以帮助测试人员对 SQL 代码进行质量检查,保证测试数据的准确性和一致性,避免测试数据泄露和测试结果不准确的情况。
发布阶段:可以帮助管理员检查 SQL 代码的安全性和性能问题,避免因 SQL 代码质量问题引起的系统崩溃、性能下降、数据泄露等问题。
运行阶段:可以帮助运维人员监控 SQL 代码的执行情况和性能指标,快速发现并解决 SQL 代码存在的问题,保障系统的稳定性和安全性。
综上所述,司南 SQL 质量管理平台在开发到运维全生命周期中都具有重要的应用价值。通过 SQL 审核系统的应用,可以规范 SQL 代码的质量、保障数据库的安全性、提高数据库的性能,帮助企业提高业务效率和降低维护成本。
3.3. 七大使用场景
传统的 SQL 审核只关注生产运维的使用场景,而忽略了运维前置的重要性。司南深入一线客户使用场景,贴近用户的真实需求,总结出 SQL 审核的七类使用场景,并给出经过市场验证的方案和 SQL 审核能力。
数据库开发:开发人员在开发 SQL 代码时,可以通过 SQL 审核系统对 SQL 代码进行自动化检查和审查,以确保代码符合规范、可维护性强,并且没有安全隐患。
应用测试:SQL审核系统可以帮助测试人员对SQL代码进行质量检查,发布测试报告,避免有质量问题的 SQL 发布。
应用发布审核:帮助管理员检查 SQL 代码的安全性和性能问题,避免因 SQL 代码质量问题引起的系统崩溃、性能下降、数据泄露等问题。
数据库优化:SQL 审核系统可以对 SQL 代码进行分析,发现 SQL 代码中存在的性能问题,包括慢查询、索引缺失、重复查询等问题,并提供优化建议和方案,帮助数据库管理员和开发人员优化数据库性能。
数据库监控:SQL 审核系统可以实时监控数据库的性能指标,如 CPU 利用率、内存使用率、磁盘空间等,提供报警机制,及时发现和处理问题。
数据库合规性:SQL 审核系统可以根据不同的法规和标准,检查 SQL 代码是否符合合规要求。
数据库安全审计:SQL 审核系统可以对 SQL 代码进行审计,记录 SQL 代码的执行情况,包括执行时间、执行结果、执行者等信息,并且可以配置告警机制,及时发现和处理安全问题。
......