脱颖而出的OceanBase
走过第12个年头的OceanBase,早已摆脱了当初只能承载淘宝边缘业务的稚嫩,正脱颖而出,逐渐成为数据库领域的领军者。从墨天轮最新的排行榜和趋势走向来看,OceanBase成为最流行的国产数据库只是时间问题。
此外,从OB的发展历程以及目前的案例来看,金融行业一直都是它的主战场。随着今年常熟农商行核心系统上了OB之后,已经有越来越多的金融用户将它作为优先考虑的国产化替代方案。
支持OceanBase的客户端工具
本次征文的主题是OceanBase的生态工具。笔者想聊一聊一个看似不起眼却始终无法回避的工具 - 数据库的SQL开发客户端工具。一款好用的工具,会大大提升SQL开发、数据处理的效率。根据笔者查阅的资料,目前支持OB(包含MySQL模式和Oracle模式)的SQL客户端工具还比较少,主要有:
OceanBase Developer Center(ODC)
这是OB官方出品的工具,使用体验良好,但它只支持OB(MySQL和Oracle两种模式)一种类型的数据库。ODC分为Web和客户端两个版本,前者是公网云端产品,一般是给OB Cloud用户使用的;对于绝大部分以On-Premises方式部署OB的金融用户来说,后者可能才是更符合实际场景的选择。
DBeaver
作为一款完全开源的SQL开发客户端工具,DBeaver也非常受欢迎。根据该项目在Github上的Issue列表可以得知,去年底就已经支持了OB的两种模式,不失为一个不错的选择。
Navicat Premium 16
在Navicat最新的版本中,已经支持了OceanBase的社区版和企业版,但都只兼容MySQL模式。Oracle模式还未兼容,预计要等到明年。Navicat在国内用户众多,功能也非常强大,在此不做过多赘述。
OBClient
当然,还有最原始的命令行工具OBClient。原先连接MySQL模式和Oracle模式需要使用不同的命令行工具,但根据最新的资料显示,OBClient已经支持两种不同的模式。命令行工具的使用群体相对会少很多,可能除了DBA之外,没有人会想用它。
金融业对于客户端工具的诉求
在笔者近年来与金融行业用户的交流中发现,由于业务的发展,法律法规的约束以及政策的影响,传统的数据库客户端工具已经渐渐地难以满足他们的诉求,主要体现在以下几方面:
兼容能力 - 支持多云异构数据库
通过Gartner、微软等业界巨头的分析调查报告可以知道,金融行业的数据库环境日趋复杂,多云异构并存是常态。稍具规模的金融机构,其内部数据库数量超过200个以上的非常常见。在这样的环境中,只支持单一数据库的客户端工具可能无法满足金融行业的实际场景。毕竟每种客户端工具都有一定的学习成本和交互习惯,如果访问不同的数据库需要来回切换不同的客户端,不论体验还是效率可能都很糟糕,而且传统的客户端工具对于国产数据库的支持通常比较差,或者相对滞后。
安全能力 - 支持权限控制和审计
随着国家近些年出台的一系列数据安全相关的法律法规和政策,金融业对于数据库的安全管控有了更高的要求。比如等保2.0中,就要求对于数据库的管控要进行权限分离,必须设立数据库安全人员、审计人员、操作人员等不同的角色,还需要配备身份鉴别,访问控制,安全审计等措施。传统的客户端工具一般只注重功能和易用性,像权限管理、数据脱敏、行为审计等数据安全相关的特性几乎是缺失的,用户访问数据库的行为无法得到有效地约束、管控和记录,所以数据误删除,恶意篡改,泄露,滥用等情况时有发生。
融合能力 - 支持与内部流程、系统对接
金融机构内部一般会通过工单(ITSM、OA等)系统来管控用户对于数据的变更、提取及查询等需求,但这类系统并不是专门针对数据库的场景来设计的,最后需要在数据库中执行的操作往往和流程本身是脱节的,没有形成闭环,存在诸多的安全隐患,且效率也不高。因此与这些流程、系统进行对接,才能让整个数据处理的过程安全可控。
信创能力 - 与信创平台兼容
信创的建设已经成为许多金融用户的“硬指标”。传统的客户端工具基本都出自国外厂商,而且只能运行在Windows或者MacOS等平台,加上盗版盛行,这不仅会带来安全隐患,也难以满足信创的要求。有些金融机构甚至已经不允许再采购和使用PL/SQL Developer,DBVisualizer这样的工具。
数据库管控的新思路
QueryX是一款基于Web的数据库安全管控平台,支持16种国内外常见的数据库。当然,也包括OceanBase的MySQL模式和Oracle模式。
它可以作为复杂的多云异构数据库环境的统一访问入口。管理者可以通过它来发现所有敏感数据,提前配置脱敏规则,并为数据分级分类,从而可以统一规划安全合规的数据访问策略;在用户访问数据的过程中,可以通过动态脱敏防止敏感数据外泄,也可以通过可配置的拦截规则主动干预用户潜在的高危操作:比如全表删除、全表更新、删库、删表等;对于用户临时的提权申请,则可以通过QueryX内置的流程审批系统,快速进行审批和执行,使整个流程形成闭环;同时它还提供了全域动态审计以及异常识别能力,可以快速帮助管理者捕捉用户的异常行为,及时预警,快速止损。
QueryX对于OB的重点支持能力
权限管控
QueryX提供了系统权限和数据权限,前者用于控制产品本身的菜单、功能是否可见、可用;后者则可以控制用户访问数据时的各种管控需求,它可以为不同的用户批量设置数据源级别、Schema级别、表级别或列级别等不同粒度的权限,以零信任为原则,始终设置最小访问权限。
智能拦截
在传统的客户端工具中执行SQL语句时,我们无法对其进行任何干预,只能依赖于外部的数据库防火墙这样的产品。但QueryX在将SQL语句发送到数据库服务器之前,会先进行一次解析,并且匹配自定义的拦截规则。如果命中了,则SQL语句会被实时拦截,将数据安全风险扼杀在萌芽期。这种主动干预的机制,是传统的堡垒机产品所不具备的。
安全审计
QueryX也作为统一的数据库访问入口,可以对用户的行为进行全域审计。所有在QueryX上执行的SQL语句,包括用户对产品功能的操作都会以日志的形式被记录下来。通过过滤、搜索可以快速对用户行为进行审计。此外,用户还可以根据需要从原始的日志中提炼出符合各自需求的审计指标,比如下班后执行的SQL数量、查询超过100行的SQL数量、过去一周内执行SQL最多的用户等等,然后将这些指标进行图形化展示,方便审计部门的审查。
SQL开发
QueryX提供了符合使用习惯的SQL开发工作台,可以对SQL关键字、表名、列名进行联想提示,帮助DBA、开发人员以及业务人员快速编写SQL语句。
对象管理
QueryX支持OceanBase MySQL和Oracle两种模式中常用对象的管理,基本涵盖了日常的需求。