金融客户数据库使用方面安全管控流程重在安全和流程管控。当研发团队规模很大,甚至包含外部开发商的情况下,传统的流程对日常应用发布和问题处理效率制约很大,对变更方案和结果可能缺少充分的技术审核/保护/跟踪/回滚机制。本文分享一款数据变更管控产品在 杭州银行 的使用案例供金融行业同行参考。
本文是转载,原文见左下角“原文链接”
数据变更(也称数据修改或数据订正)是生产数据库常见的业务场景之一。一般有两种情况会涉及:
金融行业尤其是银行业,通常都将生产库在网络上做了物理隔离,只有 DBA 或运维团队少数人可以直接访问。但对研发或业务团队来说,数据变更又是一个高频需求,而不规范的变更操作还会给数据库带来安全风险,如何在确保安全的前提下提高变更效率值得探索。本文将通过杭州银行的一个真实案例,分享云趣 QueryX 数据库管控系统(以下简称 QueryX )在日益复杂的数据库环境里,助力杭州银行建立起一套更安全便捷的数据变更流程。
杭州银行内数据库数量超过200套,涵盖了 TiDB、OceanBase、Oracle、MySQL和PostgreSQL 等多种类型。同时,根据公开资料显示,行内有超过 40 多家外包厂商 10 几个团队共计上千名研发人员,每周都有大量数据变更的需求。一般情况下,他们会将 SQL 脚本准备好并上传至 FTP 服务器,然后在内部系统 PMS 上提交工单,经过审批后,由运维人员在特定的2 - 3台主机上登录堡垒机获取工单对应的 SQL 脚本文件,然后使用传统的数据库客户端工具直连数据库来执行 SQL。这种模式中工单审批、脚本文件流转、SQL 语句执行相互割裂,需要线上线下来回切换,从而带来安全隐患:- SQL脚本在多人之间流转的过程中,因为不同的操作系统和聊天工具,可能存在复制粘贴错误或者字符集问题。比如 update 语句复制不完整,漏掉 where 条件,导致全表更新。这类错误往往很隐蔽,肉眼很难发现;
- 变更涉及的 SQL 数量可达几万甚至数十万条,即使 SQL 在测试环境验证过,也很难完全避免诸如语法错误、不规范,Schema/表/视图/字段名错误等问题,人工审核难免有疏漏。一旦执行阶段发现错误,运维可能要和研发反复沟通,效率低下;更严重的,如果出现变更错误,数据回滚/回退的成本不低;
- 一次变更通常涉及多个 SQL 脚本文件,人工执行 SQL 语句是一件枯燥、繁重、易出错的重复劳动。且文件之间存在上下文逻辑关系,运维人员不但需要准确地知道文件和数据库的对应关系,而且要了解每个文件的执行顺序。这就导致运维人员的工作雪上加霜;
- 如果运维人员“灵光乍现”,对变更语句进行魔改,就会出现工单内容和执行内容不一致的情况,事后审计有遗漏。更严重的是,对于“别有用心者”,他可以很轻松地篡改、删除数据;
- 由于生产网络物理隔离,实际的变更操作需要在固定且有限的几台主机上完成,运维人员需要抢占资源,这会进一步导致阻塞,影响变更效率。
根据 QueryX 大盘数据统计,每个工单所涉及的 SQL 语句数量从几万到几百万不等。行内运维团队总共不到 20 人,每周四的变更日对于他们来说都是一次不小的挑战。为了解决上述问题,云趣的技术团队从去年开始,和杭州银行项目负责人俞杰进行了多次技术交流和需求沟通。俞老师提出:希望能打通开发和生产变更中间的壁垒,在安全可控的前提下,进一步提升变更的准确性和便利性,尤其是将行内的工单系统、CMDB系统两者串联起来,使得行内沉淀的数据有效“消费”起来,数据有“消费”,就反向促进底层基础数据的正确性。最终我们决定基于行内新一代内部系统“雪狼”,结合云趣 QueryX 来打造一套新的数据变更流程。我们将“雪狼”平台与 QueryX 进行了深度对接,将原先割裂的数据变更流程串联打通,做到提单 -> 审批 -> 流转 -> 执行 -> 反馈的线上闭环,并且还将 QueryX 上的 SQL 开发,SQL 审核能力整合到雪狼平台。让整个变更流程更加安全可控的同时,还提升了变更的准确性和时效性。具体如下:“雪狼”是杭州银行内部用于替换 PMS 的一个大型综合性IT项目管理平台。研发人员都要通过它来提交数据变更工单。但它并不具备 SQL 开发以及 SQL 审核这两个在数据变更场景中非常重要的能力。在将 QueryX 的这两项能力整合到“雪狼”平台后,研发人员在提交工单时,可以直接在“雪狼”平台编写 SQL,获得和传统数据库客户端工具类似的 SQL 开发体验。而且,QueryX 的 SQL 开发编辑器还支持以附件形式上传 SQL 脚本,支持定义执行顺序。而 SQL 审核能力,则能帮助研发人员提前发现海量 SQL 语句中的各种问题,比如语法错误、对象错误、开发规范以及高危操作(比如全表删除、全表更新等)。这能在很大程度上规避一些低级错误,且无需人工介入。
QueryX 和雪狼平台对接后,使得通过审批后的工单(包含 SQL 脚本)可以直接流转到 QueryX 平台,同时,在 QueryX 执行完的SQL结果也能返回给雪狼平台。这给运维人员带来以下好处:
无需在手动复制粘贴 SQL 语句,也无需关心执行顺序,减少出错的概率;
可以利用 QueryX 提供的批量执行功能,一键执行一条工单下的所有语句;
无法编辑 SQL 语句,避免“灵光乍现”式的修改;
实时将 SQL 语句执行结果推送到雪狼平台,让研发人员及时看到执行结果;
简化后的步骤不仅可以提升变更效率而且能有效降低出错的概率。杭州银行内部有一套分库分表的 Mycat 集群,有 48 个节点,原先需要将同样的 SQL 脚本在每个节点上分别执行一遍,这对于运维人员无疑是一种折磨。但是通过【批量执行】功能,只需点击一次鼠标,就可以完成整个变更。
由于运维人员无法修改 SQL,再加上 QueryX 的SQL审计能力,可以将工单内容和对应的 SQL脚本一并记录下来并且进行关联,规避原来的模式下,工单内容和 SQL 语句分开审计所带来的漏洞,也能改善传统堡垒机录屏方式带来的审计效率低的问题。工单和 SQL 执行日志沉淀下来后,可根据审计需求配置出对应的指标,然后通过 QueryX 的大盘来展示。相关人员可以通过诸如执行时间、工单报错率、是否有二次变更等关键指标,一目了然地看到研发人员提交的工单质量。
QueryX 是基于浏览器的 B/S 架构产品,无需在机器上安装客户端,只要网络通畅,有符合要求的浏览器,运维人员就可以直接登录进行变更。无需在变更日抢占有限的主机资源,所有人员可以同时完成自己名下的变更工单。
根据公开资料显示,前些年有部分大行及中小银行因为使用了来路不明的数据库客户端而中了勒索病毒,被迫支付巨额费用来解锁。QueryX 由云趣科技自主研发,符合信创及合规要求,技术栈安全可控。
QueryX 上线后,已经纳管了超过 200 套数据库,俞老师表示:
* 通过 QueryX 的 SQL 审核功能,有效规避高风险SQL语句,降低数据变更给数据库带来的安全风险。* 将数据变更流程打通形成闭环后,运维人员无法再修改变更脚本,规避审计漏洞,进一步满足金融业合规要求。* 在变更效率上,以一个库有 50 个附件来举例,之前手工变更至少需要 3 小时,目前引入平台后,只需要点击【批量变更】按钮,时间缩短至 20 分钟。* 开发可以实时自行查看变更进度和 SQL 执行日志,减少了运维和开发之间的沟通成本。* 数据变更步骤简化后,我们用相同的运维人员,能在更少的时间内支撑更多的变更需求。根据大盘信息显示,上线后每个月执行的变更语句接近 1000 万条,在刚刚过去的 11 月份,由于核心系统升级,变更语句数量更是高达 3000 多万条。浙江云趣网络科技有限公司(简称:云趣科技)是一家专业的数据库综合服务提供商。公司的商务总部在宁波,研发总部在杭州,同时在北京、上海、深圳、西安等地都设有分公司和分支机构。云趣团队通过在数据库、云计算等领域多年的积累,自主研发了数据库安全管控、智能运维、SQL代码审核、数据同步等多款企业级产品,同时提供国产化数据库咨询、设计、实施、运维管理等一站式专业服务。我们希望通过“构建多云合一,创造数据价值”的理念,并以“产品+服务”的模式帮助企业在迈向多云战略和数字化改革的过程中,持续提升数据库系统的安全合规水平和运行效率,释放数据驱动时代的想象力。