这是学习笔记的第 2332篇文章

对于数据库客户端的使用,一直以来都有一些困扰,我想对很多人来说都或多或少会有:

1)多种数据库的客户端软件使用方式是独立的,几乎不存在交集

2)客户端软件的安装对于多数据库版本的兼容能力不同,比如Navicat低版本软件对于JSON类型的支持就很有限,比如Workbench的高版本对于MySQL协议服务不兼容(如MyCAT中间件,TiDB服务等)

3)对于客户端的使用难以审计,权限过大难以追溯,权限过小对业务不可用

4)客户端的权限数量众多,难以管理

5)客户端软件大多数是付费软件

6)对于DBA和很多后端开发同学来说,要做这样一款软件其实有些超纲,对于前端服务和用户体验的优化是比较困难的。

在找到CloudQuery这个项目的时候,是比较好奇的,不知道它能够解决我们工作中的哪些痛点,对于我来说,有两个硬性需求:

1)能够实现基于MySQL侧的WEB端管理

2)能够实现审计功能,

这两个需求能够满足,就算是前进了一大步。所以我找了个时间做了下测试,仅供参考。

1.软件安装

CloudQuery的官网是:http://cloudquery.club/

这个产品是免费使用的,目前来看还在不断的迭代中,软件的安装模式有如下的几类,我个人比较倾向于离线版本的安装,因为实际的线上环境网络是受限制的,至少从安全性上考虑能够做到一定的隔离。

推荐使用完整版,因为完整版已经包含了审计插件,如果下载标准版后要补充审计功能还需要再次安装审计插件,下载的模式目前支持迅雷,百度网盘,腾讯微云和天翼云,是把安装文件托管在这些下载通道下。

对于很多同学来说,可能会有几个难点:

1)环境的配置是基于Linux环境,CentOS 7.5以上版本,所以不是基于Windows的exe安装

2)Linux环境中需要安装基础的docker环境,否则环境构建会失败

3)安装文件在2~3G左右,会比预想的大,下载的速度会比预期的慢一些

4)如果服务器配置比较低,安装中可能会有一些意料之外的问题,推荐按照官方要求的配置来部署

下载安装文件的过程基于网盘的流量情况,下载可能会花费一些时间,下载后解压的一些镜像文件如下,也可以整体看到一些技术栈的使用情况,比如整体服务是基于微服务架构的,数据库技术栈应该是使用了PostgreSQL+Redis,其中占用空间最大的terminal,是我个人比较喜欢的一个终端管理功能。

安装的过程比较简单,如下的3个命令即可安装:

# unzip CloudQuery-[对应的安装版本].zip
# chmod +x cloudquery-community.sh
# ./cloudquery-standard.sh install

默认会自动启动服务,也可以使用cloudquery-stop.sh,cloudquery-start.sh手工启停。

# ./cloudquery-stop.sh
# ./cloudquery-start.sh

在安装前还是需要确认下内核版本和docker版本,可以使用如下的命令:

1)uname -r  确保是在3.10.0以上

2)docker version

如果docker兼容性不足,可以考虑合适的镜像,使用命令:

# yum list docker-ce --showduplicates | sort -r

在这里我使用的是 docker-ce-18.06.3.ce-3.el7 版本。

2.客户端功能体验

安装后,可以使用http://[IP]:9898来访问

第一次使用建议用超级管理员 admin001,避免一些权限上的差异导致的使用问题对于体验来说会比较全面。

总体来看,这个WEB端工具软件支持的数据库还是比较多的,目前支持8款数据库,我以MySQL侧的使用为主。

首先要配置数据库连接,这个过程属于常规操作,配置完毕后可以测试连接。

在数据查询区域可以选择对应的连接别名和对应的数据库,这样就可以根据使用场景灵活的切换数据库了,这个设计点还是不错的,在这个设计点上,比workbench要快捷一些。

对于查询结果集的导出,支持Excel,CSV,txt和PDF,值得一提的是,文件的导出都是可追溯的,有个小功能是“下载中心”,在里面可以随时提取。

导出的Excel格式文件如下:

个人最喜欢的功能是基于终端模式的,在连接配置处点开“打开终端”,整个操作和自己的客户端使用没有区别,对于后端管理来说很便捷清晰。

查询执行计划和SQL文本格式化功能也是齐全的,这些算是一些使用中的加分项。

对于SQL的语法提示还是比较实用的,这里可以看到也会做出提示。

对于数据库变更操作来说,这里的操作是可以随时编辑,确认之后就立即生效。

关于执行历史,这些是持久化存储的,可以随时查看,能够满足基本的审计需求,如果需要定位到使用人的基本信息是在审计模块中。

3.平台化管理

权限管理应该是CloudQuery的一大亮点了,是基于RBAC的权限模型设计,如果对于权限的管理无法实现细粒度多维度的管理,等推广到业务侧再进行管理是比较困难的。这里可以根据组织架构进行管理,可以分配不同的部门和小组进行管理,在其中配置相应的用户。

对于权限体系,主要实现了角色和权限两大层面,可以根据不同的角色类型进行不同的权限配置管理。

对于连接的管理也可以进行细粒度的管理,可以根据某一些权限明细项,对应指定很细粒度的权限配置。

还有一个亮点的部分就是连接的共享,默认我们创建的连接是可以共享的,比如我把一个数据库连接配置共享给某个同事,他不需要做额外的配置刷新数据查询区就可以直接复用,对于类似租户管理的模式是比较适用的,比如一个开发组我们给予开发组长一定的权限,那么他可以把某个数据库的连接配置在内部进行共享,避免重复配置和管理,后续管理信息变化也可以联动变更。

此外有一些比较个性化的服务,比如个人文件夹等,可以把导出的文件存储下来,通过Web端进行管理。

最后是审计的部分,是整个产品的重心和亮点,也是业务侧使用WEB端比较关心的,对于审计侧的基础功能来说都能够支持,比如审计分析看板和审计日志查询。

对于审计日志的查询,这是区别于客户端使用之外的体验,毕竟在平台化管理中可以方便审计管理和分析,对于管理员和安全审计来说,可以直接通过这个看板和明细列表看到整体的使用情况。

小结

CloudQuery是一种全新的数据库客户端使用模式,能够让客户端的使用从本地单一模式变为WEB统一管控模式,适合从0到1 的构建整个基础服务体系,在整体的使用上能够满足一些基础使用需求(数据查询,数据导出,数据格式化)和管理需求(执行历史,下载文件管理,审计看板等),此外,产品是完全免费使用的,并且支持离线安装。

当日在使用中也会有一些疑问和问题,比如在安装部署方面需要投入较多的精力且安装文件较大,会有一些额外的资源成本和学习成本,同时产品文档中对于一些技术细节的内容比较少,对于服务的监控,高可用管理和平滑升级应该会随着业务需求的接入成为一个新的关注目标。官方在使用的过程中也给予了大力支持,整体上对于使用者来说,是相对便捷轻量的。

最后提一下,v1.3.4在今天发布了,感兴趣的可以试一下最新的改进功能。

各大平台都可以找到我

  • 微信公众号:杨建荣的学习笔记

  • Github:@jeanron100

  • CSDN:@jeanron100

  • 知乎:@jeanron100

  • 头条号:@杨建荣的学习笔记

  • 网易号:@杨建荣的数据库笔记

  • 大鱼号:@杨建荣的数据库笔记

  • 腾讯云+社区:@杨建荣的学习笔记

近期热文:

我们为什么在MySQL中几乎不使用分区表

新年大吉 总结了如下的感想

《大江大河2》最触动我的一段经典对话

MySQL 8.0给开发方向带来的一些困扰

迁移到MySQL的业务架构演进实战

MySQL业务双活的初步设计方案

如何优化MySQL千万级大表,我写了6000字的解读

一道经典的MySQL面试题,答案出现三次反转

小白学MySQL要多久?我整理了10多个问题的答案

转载热文:

2020年度20多款主流数据库重大更新及技术要点回顾

工行“去O”数据库选型与分布式架构设计

MySQL 实战笔记 第01期:MySQL 角色管理

MGR用哪个版本?5.7 vs 8.0

SQLcl这个可爱的小工具,来了解一下呀~

CPU占用又爆了?MySQL到底在干什么

这个MySQL优化原理剖析,比照X光还清楚

自己动手写SQL执行引擎

最受欢迎的微服务框架概览

程序员,保住你的钱袋子!

QQ群号:763628645

QQ群二维码如下, 添加请注明:姓名+地区+职位,否则不予通过

在看,让更多人看到

CloudQuery,一款基于WEB的数据库客户端测试相关推荐

  1. postgresql 客户端_一款功能强大的数据库客户端:DataGrip

    前言 在我们日常的程序开发中,很大一部分时间是在与数据库打交道. 查数据,导数据,检查SQL执行计划,优化SQL等,是我们数据库开发工作的重要组成部分,而且很多时候我们会使用到多款数据库,如Oracl ...

  2. 分享:Guacamole 0.7.1 发布,基于Web的VNC客户端

    分享:Guacamole 0.7.1 发布,基于Web的VNC客户端 Guacamole 0.7.1 发布,基于Web的VNC客户端 http://www.oschina.net/news/35808 ...

  3. cpanel重启PHP服务_8款基于Web控制面板的服务器管理工具,开源免费,系统管理员利器...

    监控使用率,性能和维护系统架构是一项复杂的任务.当企业构建基础结构时,包括服务器,数据库,消息传递,身份验证,负载均衡等多个组件在内的基础结构会带来高复杂性. 当系统管理员管理1-2台服务器时,可能很 ...

  4. html5登录界面源代码_TwinCAT HMI,一款基于web的人机界面产品

    纯属个人爱好,推荐一下这款产品,相比于传统HMI,优势很明显,不足也很明显,各位看官仁者见仁智者见智吧! 安装软件: Beckhoff官网下载: 1.TF2000-HMI-Engneering.exe ...

  5. 推荐一款基于web的Unix系统管理工具webmin

    webmin不仅提供了基于web的系统管理方式,同时它还支持多机集群系统管理配置. webmin是一款开源软件,它的很多功能都可以借鉴到集群管理界面里面,当然也可借鉴到存储管理平台,该软件模块化很强, ...

  6. web远程桌面客户端_您所说的内容:桌面与基于Web的电子邮件客户端

    web远程桌面客户端 We clearly tapped into a subject you all have a strong opinion about with this week's Ask ...

  7. 命令行管理 Linux服务器困难?别怕,今天介绍一款基于 Web 的Linux管理神器:Webmin

    对于任何 Linux 初学者来说,从命令行管理和管理 Linux 服务器都是非常困难的,在这种情况下,您可以使用 Webmin 从基于 Web 的界面管理您的 Linux 服务器. Webmin 是一 ...

  8. 一款基于 Web 的通用数据管理工具 CloudQuery(转载)

    前段时间,公司因为业务发展,数据量攀升,老板迫切需要一个工具对数据进行精细化管理,一是确实需要精细化管理:二是因为我们公司小,数据本来就乱,加上前两天链家员工删库跑路事件,老板估计有点慌,万一谁心情不 ...

  9. 推荐一款最好用Mysql数据库客户端

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 二师兄 来源 | 公众号「程序新视界」 今天给 ...

最新文章

  1. Transformer新型神经网络在机器翻译中的应用 | 公开课笔记
  2. linux vi 强制退出_linux的编辑大法
  3. Bootstrap简介及Bootstrap里的栅格系统col-md/sm/xs-x;
  4. 在php中怎么用js跳转页面跳转,在php中怎么用redirect实现页面跳转?
  5. php获取系统常量函数,PHP:从php文件中获取PHP的变量,函数和常量
  6. Java并发之Thread类的使用
  7. Python获取网络中的存活主机以及哪些主机是Linux
  8. django-rest-framework-jwt的使用
  9. 双向电平转换芯片TXB0304应用笔记
  10. patch补丁文件格式
  11. 常用数字音频功放芯片-音频放大器
  12. 必备知识:相机标定-旋转矩阵性质
  13. python龙卷风框架,龙卷风python的简单异步示例
  14. Markdown 插入视频
  15. MATLAB colormap函数详解
  16. java多文件生成zip_如何在java中创建多部分压缩zip文件
  17. 国王匿名信息服务器,扮国王还是卫兵? 角色扮演服务器登录美服
  18. centos无法ping通百度
  19. CodeForces - 940E Cashback (DP+思维模型)
  20. 千篇一律:“外挂”泛滥的网游公关写作

热门文章

  1. 哄女朋友玩的c语言编程,在线教学:哄女朋友陪你玩游戏的真正秘诀
  2. bilibili自动挂机PHP_BilibiliHelper
  3. C#将GridView中的数据导出为excel文件
  4. 我在滴滴数据分析岗实习了8个月
  5. 【疑难解决】RTSP协议视频流媒体平台EasyNVR调用云台控制接口返回400报错的问题处理
  6. 【21】面向流水线的指令设计(下):奔腾4是怎么失败的?
  7. 网页文本解析利器“美丽汤”
  8. html 文本框赋值日期代码,如何获取到input输入框 中date的当前日期
  9. 【图文详解】彻底了解红黑树底层实现原理
  10. 关于项目中Spring版本与jdk1.8兼容问题解决