为什么审计平台不适合进行数据库变更管理?

关于视源电子

广州视源电子科技股份有限公司 (CVTE) 成立于 2005 年 12 月,旗下拥有多家业务子公司。

file

截至 2022 年底,公司总人数超 6000 人,约 60% 为技术人员。公司的主营业务为液晶显示主控板卡和交互智能平板等显控产品的设计、研发与销售,产品已广泛应用于家电领域、 教育信息化领域、企业服务领域等。自成立以来,依托在音视频技术、信号处理、电源管理、人机交互、应用开发、系统集成等电子产品领域的软硬件技术积累,在细分市场逐步取得领先地位,并建立了教育数字化工具及服务提供商希沃(seewo)、智慧协同平台 MAXHUB 等多个业内知名品牌。

困扰已久的数据库变更发布管理

视源电子此前已经采购了数据库审计安全平台,其理论上可以实现对所有数据库访问的监控与阻断,从而避免违规操作。然而实际使用过程中,却并不能很好的应对复杂的数据库变更管理需求:

  • 拦截规则粒度较粗:由于无法进行精细化的规则设置,粗粒度的规则可能造成误拦截
  • 固定规则无法灵活调整:由于类似防火墙的固定规则配置,一旦终端用户发现规则错误或是需要临时放行,只能不断的反复修改规则
  • 不支持 SQL 审核规范:审计平台的拦截规则基本只限定于 SQL 类型,但是对于更细节的 SQL 审核规范完全无法支持,例如命名风格、字段类型约束等
  • 拦截能力不稳定:存在不明原因的 SQL 执行错误,只能关闭拦截功能才能解决
  • 缺乏线上流程管控:所有的发布依然需要人工在多个割裂的系统中对接,无法在一个闭环流程中实现提交、审核与发布,增加了不必要的沟通成本,也引入了更多的故障点。
  • 缺乏高级发布能力:视源电子一个现实需求是将同一个变更发布到多个工厂的系统中,原有流程中只能逐个登录堡垒机执行,效率低下。
  • 无法实现变更版本化管理:虽然审计平台能够记录所有的变更,但其目的是为了审计,事实上无法支持版本管理中需要的变更差异比对、变更历史分析、历史变更组织编排等能力。
  • 无法管理账号权限:由于存在发布与查询的现实需求,需要将生产系统的账号提供给研发人员,即便做了账号权限的控制,但是下发的账号无法进行有效的管理和回收,也无法控制账号在研发团队间的传播

由于安全平台的诸多局限,为了不影响用户的正常使用,事实上只能放弃拦截功能,而仅仅采用其审计能力。然而变更质量管控的问题依然无法得到解决,成为了日常数据库管理中最大的痛点。

Bytebase:为制造行业带来全新的数据库变更管理体验

专业的事情交给专业的产品。经过充分的试用评估,视源电子选择了 Bytebase 来作为其真正意义上的数据库变更管理平台。作为一款聚焦于数据库变更管理的产品,Bytebase 很好的满足了视源电子在数据库管理需求中的诸多关键需求。

数据库变更全流程管控

file

Bytebase 提供了一站式的变更管理流程,形成变更的合并、审核、发布、通知、记录的完整生命周期管理,同时通过接口等方式与上下游的研发工具实现联动,将原本割裂的行为实现了闭环统一。

  • 合并。可以通过 UI,代码仓库,接口等多种方式合并变更,不同研发团队可以按需选择。
  • 审核。提供了强大的自动审核功能,实现多维度的 SQL 检查。
  • 发布。可以一键将工单发布到目标数据库,避免手工执行低效易错。
  • 通知。可以集成主流 IM,实现流程节点自动化通知。
  • 记录。有别于审计平台只记录最终执行语句,Bytebase 可将记录工单项目的流程信息以及变更前后的结构快照,实现更专业的变更历史管理。

提升发布效率

file

在强调对流程管控的同时,Bytebase 提供了多种能力,帮助开发团队提升其发布效率,其中的一些切实解决了视源团队此前面临的问题。

  • 批量发布。Bytebase 支持多种高级发布能力,其中的批量分组功能可以将大量数据库进行灵活的分组发布,避免逐个库执行的低效,也解决了自定义批处理脚本无法灵活应对交叉分组的问题。
  • 可执行性验证。Bytebase 可以更好的帮助研发同学写出真正可执行的 SQL,不仅包括了语法检查与对象名校验,对于一些特定操作,例如修改被视图引用的表结构(在 Postgres 中需要删除该视图才能修改表结构),可以自动给出视图定义方便研发改写脚本,得到研发团队的一致好评。
  • 简化版本管理。在原有的流程中,测试环境的变更脚本需要通过电子表格等工具进行手工记录与编排,再逐个发布至生产系统,繁琐且易错。Bytebase 提供了变更列表管理功能,可以从历史记录或文件中导入变更,编排后实现一键发布,工作体验得到明显改善。

将访问合规融入流程

file

Bytebase 同时提供了多种安全能力,实现了所有人工直接访问数据库的安全管控。

  • 统一的权限管控。利用一套账号角色体系,可以管理所有项目中的数据库权限,无需将数据库的直接访问权给到开发者。
  • 细粒度的查询导出权限。可以精确到表级或语句级的细粒度权限分配,确保数据的访问合规。
  • 严格控制变更类需求。所有的变更类需求强制通过工单形式执行,便于流程审核与记录。

由浅到深的落地实践

为了确保落地效果,管理团队与不同的项目研发团队进行了深入的沟通,结合实际情况进行分阶段推行,取得了很好的效果。

  • 分部门逐步推广。优先在需求较为迫切的部门推广,例如制造部门急需分组变更等能力。
  • 分场景逐项落地。针对变更最为频繁,场景最为复杂的营销部门,并不急于全面推广,而是结合常规发布、大版本发布、数据修复等不同场景制定不同的应对策略,优先将临时性、易出错的数据变更纳入管理,再逐步接管其他场景,从而让开发团队能够适应新的流程。
  • 分功能逐级演进。优先采用易于上手的 UI 变更工作流,逐步在一些部门启用 GitOps 工作流,实现更无缝的变更体验。

在与视源技术团队合作的过程中,我们也深刻体会到了其专业性,不但将 Bytebase 的各项功能进行了充分的发挥,还贡献了很多极有价值的应用场景。后续的工作中 Bytebase 仍将全力支持,协助视源电子进一步完善新一代的数据库变更管理流程⛽️。


💡 更多资讯,请关注 Bytebase 公号:Bytebase

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/189994.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

离散时间系统模型

离散时间系统模型 离散时间系统模型是表示数字滤波器的方案。MATLAB 科学计算环境支持若干种离散时间系统模型,这些模型将在以下章节中介绍: ​传递函数零极点增益状态空间部分分式展开式(残差形式)二阶节 (SOS)格型结构体卷积矩…

为什么笔记不收录,小红书作品收录逻辑分析!

小红书作品收录问题,是平台大家广泛关注的问题。这是因为,一篇作品是否被有效收录,将会直接决定作品所能捕获的流量。今天给大家分享下为什么笔记不收录,小红书作品收录逻辑分析! 一、作品收录是指什么 小红书平台的作…

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑

Kotlin Multiplatform稳定版本发布:加速跨平台开发的新里程碑 引言 在最新的消息中,JetBrains团队宣布Kotlin Multiplatform(KMP)将于2023年10月稳定发布。这一消息对于广大开发者来说毫无疑问是一个令人振奋的消息。KMP的正式生…

后端面试问题(学习版)

JAVA相关 JAVA语言概述 1. 一个".java"源文件中是否可以包含多个类?有什么限制? 可以。 一个源文件可以声明多个类,但是最多只能有一个类使用public进行声明 且要求声明public的类的类名与源文件相同。 2. Java的优势&#xff…

C++——const成员

这里先用队列举例&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <assert.h> using namespace std; class SeqList { public:void pushBack(int data){if (_size _capacity){int* tmp (int*)realloc(a, sizeof(int) * 4);if (tm…

在以BUF,字节存储区中,存放有n个带符号整数。试编写统计其中负偶数个数(假设≤9)并且显示。

;默认认采用ML6.11汇编程序 DATAS SEGMENT;此处输入数据段代码BUF DB -2,2,3,4,-4N$-BUF DATAS ENDS STACKS SEGMENT;此处处输入堆栈段代码 STACKS ENDS CODES SEGMENTASSUME CS:CODES,DS: DATAS, SS:STACKS START:MOV AX, DATASMOV DS,AXMOV BX,0MOV CX,0 LOP: mov AX,[BX] RO…

【Java】集合(一)单列集合List

1.集合 可以动态保存任意多个对象&#xff0c;并提供了一系列的操作对象的方法&#xff1a;add、remove、set、get等。 2.集合框架体系 分为两大类&#xff1a; 单列集合和双列集合 3.List接口基本介绍 List接口是Collection接口的子接口 List集合类中元素有序&#xff0…

【LeetCode】每日一题 2023_11_13 区域和检索 - 数组可修改(树状数组/线段树)

文章目录 刷题前唠嗑题目&#xff1a;区域和检索 - 数组可修改题目描述代码与解题思路偷看大佬题解 结语 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 今天是中等题&#xff0c;貌似挺简单的&#xff0c;先试试水 题目&#xff1a;区域和检索 - 数组可修…

Spring Data JPA方法名命名规则

最近巩固一下JPA&#xff0c;网上看到这些资料&#xff0c;这里记录巩固一下。 一、Spring Data Jpa方法定义的规则 简单条件查询 简单条件查询&#xff1a;查询某一个实体类或者集合。 按照Spring Data的规范的规定&#xff0c;查询方法以find | read | get开头&…

mysql 中with的用法(1)

mysql 中with的用法 1、案例一&#xff1a; 建表&#xff1a; CREATE TABLE employees (employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),salary INT );INSERT INTO employees (employee_id, first_name, last_name, salary) VALUES (1, John, Do…

代码随想录算法训练营第五十天丨 动态规划part13

300.最长递增子序列 思路 首先通过本题大家要明确什么是子序列&#xff0c;“子序列是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序”。 本题也是代码随想录中子序列问题的第一题&#xff0c;如果没接触过这种…

第 371 场 LeetCode 周赛题解

A 找出强数对的最大异或值 I 模拟 class Solution { public:int maximumStrongPairXor(vector<int> &nums) {int n nums.size();int res 0;for (auto x: nums)for (auto y: nums)if (abs(x - y) < min(x, y))res max(res, x ^ y);return res;} };B 高访问员工 …

在mac上使用jmap -heap命令报错:Attaching to process ID 96530, please wait...

在mac上执行命令jmap -heap 96530 报错&#xff1a; Attaching to process ID 96530, please wait... ERROR: attach: task_for_pid(96530) failed: (os/kern) failure (5) Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Cant attach to the proc…

Unity中Shader的雾效

文章目录 前言一、Unity中的雾效在哪开启二、Unity中不同种类雾的区别1、线性雾2、指数雾1&#xff08;推荐用这个&#xff0c;兼具效果和性能&#xff09;3、指数雾2&#xff08;效果更真实&#xff0c;性能消耗多&#xff09; 三、在我们自己的Shader中实现判断&#xff0c;是…

如何选择共享wifi项目服务商,需要注意哪些?

在移动互联网时代&#xff0c;无线网络已经成为人们生活中不可或缺的一部分。随着5G时代的到来&#xff0c;共享WiFi项目成为了市场上备受关注的焦点。在众多共享WiFi公司中&#xff0c;如何选择共享wifi项目服务商合作&#xff0c;今天我们就来盘点下哪些公司可靠&#xff01;…

mysql主从复制和读写分离

什么叫主从复制&#xff1f; 主从复制架构图和数据流向 主MySQL上的数据、新增、修改库、表、表里的数据。都会同步到从MySQL上 面试题&#xff1a;MySQL的主从复制模式 1、 异步复制&#xff1a;MySQL的默认复制就是异步复制。工作中也一般使用异步复制。只要执行完之后&am…

Halcon WPF 开发学习笔记:HSmartWindowControlWPF正常加载

文章目录 加载问题相关文章彻底解决 加载问题 我们在WPF中使用Halcon的时候&#xff0c;会出现图片被拉伸的问题&#xff0c;需要拖动才可以解决&#xff0c;我网上找了好久&#xff0c;终于找到了如何成功解决这个问题。 相关文章 3.7 Halcon 窗体显示对象消失问题 【halcon】…

【springboot】Failed to start bean ‘webServerStartStop‘;

新同事新建了一个项目springboot项目&#xff0c;启动时候报错。 具体错误如下&#xff1a; Failed to start bean webServerStartStop; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server 未能启动bea…

关于淘宝API接口你必须了解的API2.0

据说API从1.0升级到2.0啦&#xff1f;今天我们来聊一聊关于淘宝API接口你必须了解的API2.0 然而 作为新手小白 …… 并不懂API是毛线 好吧 …… 今天 我们就来上一堂小白入门课 几句话聊聊API 高级淘客 请忽略 请批评 请交流 还有请看到最底下 有重磅消息&#xf…

[论文阅读] CLRerNet: Improving Confidence of Lane Detection with LaneIoU

Abstract 车道标记检测是自动驾驶和驾驶辅助系统的重要组成部分。采用基于行的车道表示的现代深度车道检测方法在车道检测基准测试中表现出色。通过初步的Oracle实验&#xff0c;我们首先拆分了车道表示组件&#xff0c;以确定我们方法的方向。我们的研究表明&#xff0c;现有…