简介
CloudQuery 是基于 Web 的统一数据操作平台,是将所有的数据库收纳在一个平台内,用户仅需一个浏览器和一个账号,便可对平台内所有的数据库,进行数据操作、数据分析和数据管理,且 CloudQuery 支持市面上如 MySQL , Oracle ,SQLServer 等主流的数据库,(未来会支持 20 主流数据源),并集成权限管理、审计分析和组织架构管理等众多刚需功能,帮助开发、运维和测试人员大幅度提高工作效率。
优点
①所有数据库统一收纳在一个入口,不用下载客户端,只需要用一个账号和一个浏览器就能登录访问和操作所有权限内数据
②支持多种数据库驱动,目前支持Oracle、SQL Server、MySQL、Postgres、Redis、HBase、达梦、DBLE、ShardingSphere,并在逐步增加
③ 可在用户层面通过给不同账号分配权限,达到数据库权限细化隔离的目的
④审计&分析,可以看到数据的运行情况、执行语句的排行榜,执行的占比情况等,并可查看审计明细
⑤ 完全开源
部署
推荐配置
完整版部署服务器配置建议 8 核 16G 及以上。
标准版部署服务器配置建议 4 核 8G 及以上。
审计插件建议独立部署,服务器配置 4 核 8G 及以上。
操作系统建议使用 CentOS 7。
首先,前往 CloudQuery 官网 下载在线安装脚本。
1、执行安装脚本
给安装脚本增加执行权限
chmod +x cloudquery-all-online-latest.sh
权限添加完成后通过给脚本传 install 参数进行安装
./cloudquery-all-online-latest.sh install
执行后就会显示进度条,开始安装应用。
SSL证书配置
2、安装过程
安装过程无需人工参与,分为环境和应用安装两步
环境安装:安装应用运行所需的环境,有进度条显示安装进度,安装完成会有提示。
应用安装: 会自动下载安装包并解压安装。
数据库相关
psql -U postgres
#密码Hello123$$
\dt
\d tablename
select * from cq_user_connections;
select * from cq_users;
3、应用启动
应用安装完成后会自动启动,同时有个运行检监脚本,正常运行会提示 CloudQuery 启动成功。
启动成功后,可用浏览器访问 http://机器 IP:9898,使用应用
初始管理员账号密码:admin001/password
后续可用服务的方式管理应用启动或停止。
systemctl start cloudquery
systemctl stop cloudquery
防火墙配置,仅开放应该开放的端口,其它禁用。 本文使用9898。
若cloudquery安装在内网环境,该主机没用公网访问地址,若要访问使用可在内网环境的windows系统主机内进行,或采用在有公网地址的主机内通过nginx4层反向代理实现访问(因为需要执行的sql是通过4层mysql协议传输的,不可使用upstream7层代理模块,若nginx不支持stream协议则需重新编译,nginx -V查看当前nginx编译时参数,重新编译时加上--with-stream --with-stream_ssl_module参数再替换nginx可执行文件即可)
stream{
upstream cloudquery{
server 172.16.0.13:9898;#内网cloudquery实际安装的主机地址和访问端口
}
server {
listen 9898;#公网监听cloudquery服务的端口
proxy_pass cloudquery;
}
}
操作使用
数据查询
SDT 工具栏
登录进入后会自动打开「数据操作」界面,在界面左侧可看到 SDT 工具栏,从左到右分别为:
- ① 主题切换 切换 CloudQuery 整体界面的日夜模式。
- ② 数据库元素搜索 输入名称,可搜索元素树或 SDT 已加载的数据库元素等。
- ③ 新建查询新建查询窗口,可选择连接和库,编辑语句进行查询。
- ④ 添加数据库连接 点击会弹出新增连接面板,选择所需连接类型及对应版本。目前支持的数据源有:MySQL、SQLServer、Oracle、MongoDB、Redis、MariaDB 和达梦等。不同类型数据源所需参数不同。连接默认公开,若勾选私有连接,则仅创建该连接的用户可见。点击『测试连接』可查看连接是否正常可用。
- ⑤ 创建组信息 点击『添加组』按钮,弹出新增组信息面板,可自定义组名称;创建成功后在 SDT 菜单栏中可查看该组。
- ⑥ 层级目录收起 对展开的所有层级目录收起。
- ⑦ 刷新菜单 刷新元素树或 SDT 各元素节点。
SDT 菜单栏
- 连接自己所需的数据源(这里以 MySQL 为例)。当连接成功后,将在页面左侧看到 SDT 菜单栏。
- 右键点击连接。可看到相关菜单信息,分别为:
-
- ① 关闭连接:点击关闭连接,即表示切断与编辑器之间的会话,将无法对此连接中数据库中的内容进行查看或操作
- ② 新建查询:在编辑框中新建一个页面进行查询
- ③ 打开终端:当编辑区不能满足操作需求时,可打开终端进行操作。(注明:只有创建此连接的人才有权利打开终端)
- ④ 连接管理:点击此按钮,则会跳转至 Owner 设置栏--->「连接管理」界面查看此连接的相关信息或进行相关操作
- ⑤ 移动到组:将此连接移动到相应的组中
- ⑥ 复制名称:复制该连接的名称
- 右键点击此数据库。打开连接后将会看到所包含的所有数据库,我们以 MySQL 连接中 cloudquery 这个数据库为例,右键点击后可看到的菜单信息为:
-
- 删除数据库:即删除此数据库
- 添加数据库:输入数据库名,选择字符集,选择排序顺序,系统将会自动生成 SQL,点击确定后将会提示添加数据库成功
- 转储 SQL 文件:可将 SQL 文件重命名,并设置导出数据行数,转储到 个人设置栏--->「个人文件夹」的 Export 文件夹内
- 复制名称:复制数据库名称
-
- 刷新:刷新此列
- 双击打开数据库,将会看到数据库里的所有内容:表,视图,函数组和存储过程组。
-
- 右键点击表,可看到添加表,复制名称和刷新。
- 右键点击视图,可看到添加表,复制名称和刷新
- 函数组和存储过程只能复制名称和刷新
- 以 CQ 数据库中的表为例,双击打开表,会看到下一级目录:列组,索引组,外键组,触发器组,再往下还可以看到更具体的内容,这里不做说明。
- 以表为例,选择任意一个表,右键点击,将会看到常用的一些表功能,例如 打开表、重命名、删除表、添加表、截断表、清空表、转储 SQL 文件等。
- 操作结束后,可点击 SDT 工具栏中的『层级目录』按钮收回。
编辑工具栏
在「数据操作」界面的中间上册,可看到编辑器编辑器工具栏,按钮从左到右依次为:
- 语句执行:在编辑框内输入 SQL 语句,点击此按钮即执行语句。
- 语句终止:可终止执行耗时较长语句
- 执行计划:可通过 Explain 来展示 SQL 语句的执行详情
- 事务提交:提交语句按钮
- 回滚:可将执行完的结果集恢复为原样
- 选择自动/手动:选择自动或手动提交
- 格式化:可将语句进行格式化
- 全部折叠:可将所有已格式化的语句进行折叠
- 全部展开:可将所有已格式化的语句进行展开
- 放大字体:将编辑框中的语句字体放大
- 缩小字体:将编辑框中的语句字体缩小
- 添加收藏:可对编写的 SQL 语句进行收藏并设置别名
- 收藏管理:可搜索语句或语句别名,点击使用后就会在编辑框内直接生成语句
- 打开文件:点击可直接打开个人文件夹内容
- 打开本地文件:点击可执行本地文件
- 保存文档:可将输入的 SQL 文档保存至个人文件夹内
- 文档另存为:可将文档重新命名,并选择不同编码
编辑栏
- 语句输入:在选择连接和数据库后,便可在编辑栏内输入 SQL 语句(可上下左右调整或选择全屏编辑)
- 语句智能提示:在编辑栏内输入 SQL 语句时,系统会根据所输入的语句进行智能提示
- 便捷操作:语句输入后,可点击右键,会弹出『复制』『执行(选中语句)』『执行计划(选中语句)』三个按钮,三个按钮均支持快捷键操作
- 从 SDT 菜单栏中打开:我们也可在 SDT 菜单栏中选择连接--->数据库--->选择类型--->直接打开自己所需的内容,例如 MySQL 连接下的 CQ 数据库中的表类型,选择 A1 表,双击就会在编辑栏内自动打开执行。
结果集和执行日志
当在编辑栏内输入 SQL 语句或在 SDT 菜单栏中打开所选内容后,会在编辑框的下方会看到结果集和执行日志。
- 结果集:
-
- 刷新:可对结果集进行刷新
- 添加:可在结果集中添加数据
- 删除:可在结果集中删除数据
- 提交:在结果集中编辑完成后提交更改
- 取消:在结果集中编辑完成后取消操作,数据便会复原
- 查看单元格:点击某一行数据并点击此按钮,便可查看、复制或编辑数据库内容。
- 结果集导出:点击填写文件名,选择导出格式(EXCEL、CXV、TXT、PDF 四种格式可选),选择导出数据行数,即可导出。(导出完成后也可在 个人信息栏--->下载中心界面查看、下载或删除)
- 执行日志:点击便可查看该语句的执行日志。
侧边栏
侧边栏中我们可以看到树节点信息(上图以 PG 连接中的 public 数据库 a1_ccc 表为例):
- 所属表:a1_ccc
- 行数:9
- 表目录:cloudquery
- 表架构:public
- 表名称:a1_ccc
- 表类型:base table
- 是否可插入数据:YES
- 是否可修改:No
底部状态栏
在底部状态栏中可看到:
- 正在执行的 SQL 语句
- 该语句的执行耗时
- 可看到该表在数据库的行列位置??
- 编码列表:可根据编码打开各类本地文件。
- 文本换行的方式:可选择 LF 和 CRLF
- 当前所在数据库:PostgreSQL
系统设置
组织架构
图 1
图 2
点击系统设置栏--->「组织架构」,点击运维部门,即可看到图 1
- 可看到页面左侧的排列结构为 公司 --->部门 --->小组,右键点击公司名称「图尔兹」,会看到『修改名称』『添加部门』『添加组』按钮,可根据实际需要编辑。
- 右键点击部门「运维部门」,会看到『添加部门』『添加组』『删除』三个按钮,可根据实际需要编辑。右键点击组「运维 2 组」,将会看到删除该组按钮。
- 点击 「新增用户」按钮,即可看到图 2。可在该页面中为新用户设置账号密码等。在设置完成后,便可在右侧上方的信息栏目录中看到用户姓名、登录账号、所属部门、状态等信息。
- SA 可在状态栏中选择某一用户的状态是否可用,如 将小明的状态由“正常”改为“锁定”,则小明将无法登录使用,当我们把他的状态由“锁定”改为“正常”时,小明可重新登录使用。
- 在状态栏后,点击「编辑」按钮,可以编辑用户信息,如修改用户姓名,手机号码,邮箱,所属部门等。
- 在「编辑」按钮之后,可选择「重置密码」,此项功能将会重置该用户的登录密码,并会在页面上生成该用户的新密码,原有密码将无效。将此密码发送给用户之后,用户需登录并在自己的个人信息栏中重新修改为自己能记住的密码。
- 「重置密码」按钮之后是「删除」按钮,可选择在系统中删除该用户。
- 在小组列表中,可点击「成员管理」按钮,可批量将某一用户添加到组中。(点击「移出」,可把用户移出小组)
角色管理
- 打开角色管理界面,在右侧上方会看到查询角色和重置两个按钮,可根据角色名进行查询,查询结束后如需再查询其他角色,点击重置即可再次查询。
- 在查询栏下方,会看到添加和批量删除按钮,当我们点击『添加』按钮,将会看到有三个步骤进行添加
-
- ① 新增角色:选择角色名称,填写角色描述,选择是否继承一个现有角色。选择是否对角色进行时效性限制,例如可以设置该角色只能在一月份的周一到周五使用。
- ② 授予权限:可对该角色进行系统授权(注明:界面上将只展示三个系统权限,分别为 系统设置、审计分析、添加连接)例如我们可以只对该角色授权「添加连接」权限,则拥有该角色的用户审计分析和系统设置按钮将消失,功能将无法使用。
- ③ 绑定用户:在权限设置完成之后,我们将可选择用户进行绑定,例如选择小明授权,则小明将拥有该角色和该角色的权限。
- 当在查询栏输入 “明明”这个角色后,会看到角色列表。这里会看到“明明”的角色名称,角色的描述,父角色,拥有的权限,具体影响到哪些用户,有效期是永久还是有期限,当前状态是否正常有效。
- 点击「编辑」按钮,即可对角色进行编辑。例如修改角色描述,修改角色的继承,或开启角色的时效性,我们可以把它修改为固定日期有效,例如可选择具体时间段可用。
- 在「编辑」按钮之后会看到「授权按钮」。以明明这个角色为例,在界面左侧将会看到明明这个角色不具有的权限,在右侧将会看到角色所具有的权限,若是想授予角色更多权限,勾选并移到右侧即可,若想收回权限,把右侧的权限移到左侧即可。
- 「授权按钮」之后是「绑定用户」按钮。点击可选择将该角色绑定给某一用户,例如搜索小花这个用户,勾选小花,并把它移到右侧,则该用户将拥有该角色及角色所有的权限。若想收回勾选并移到左侧即可。
系统权限
在权限管理界面,可看到详细的权限列表,例如权限名,权限的类型,权限描述,授予了哪些角色,影响力哪些用户。
应用列表
在应用列表界面,可以添加、查看、编辑应用列表信息(应用指的是由 SA 创建,分配给指定 Owner 或负责人查看部署节点等信息的一个名称)
- 添加应用:点击「添加应用」列表按钮,则会看到图 1,填写应用名称、ID、应用的描述、负责人、DBA、主机列表、应用的语言和标签,则会得出一个新的应用。
- 查看应用:在应用列表的主页面,会看到所创建的每一条应用,如应用名称、ID、应用描述等等,同时每个分列中都可搜索查看。
- 编辑应用:顾名思义,点击「编辑」按钮,则可对该应用进行编辑。
owner 设置
连接管理
- 以 MySQL_001 这个连接为例,点击会看到连接详情,例如数据源版本、地址、端口,用户名等,同时可在「连接详情」按钮的右侧选择『编辑』连接或『删除连接』。
- 点击左侧上方的「总览」按钮,会看到自己权限范围内所能看到的连接总数、连接用户总数、应用总数、应用账号总数。
访问设置
- 角色管理
- 点击「访问设置」中的『角色管理』,可在右侧看到角色管理页面,可在右侧输入栏中查询想要找的角色(注:此时分配的角色是 Owner 所分配的,角色继承的也是此连接中的角色) ,再往下可添加角色,之后可勾选权限名和权限类型,最后绑定用户,则该用户即可获得此连接中的角色和角色相关的权限。
-
- 也在角色列表中查看、编辑、删除相关角色。
- 数据权限管理
-
- 点击「访问设置」中的『数据操作权限』,在右侧可看到数据操作权限页面。在右侧输入栏中查询想要找的权限,再往下可添加数据操作权限。例如上图,我们添加一个名叫:小花的权限,分配给他 MySQL 连接中 cloudquery 数据库查看表和视图的权限,则小花将只能查看 cloudquery 数据库的表和视图。
- 在权限列表中可看到详细的权限信息,例如权限类型、数据库、对象、列、操作权限等。
- 权限集管理
-
- 点击「权限集管理」在右侧可看到权限集管理页面,可在右侧输入栏中查询想要找的权限,再往下可添加新的权限集。例如上图,我们创建了一个“小花的权限集”,并可把相关的权限勾选到右侧,点击确定则会在权限集列表中新增一个名叫“小花的权限集”,如此就可以通过新增一个角色,来授予某用户“小花的权限集”。
- 点击查看权限详情,则会看到权限名、类型、权限对象及可执行的操作;也可以点击「编辑」或「删除」进行权限的编辑或删除。
应用管理
- 单击「应用」中的具体应用,则会看到应用的详情,例如应用名称、ID、创建人、负责人、IP 地址、探针状态和应用状态等信息。
- 右键点击“应用”可绑定应用。右键点击『应用』可解绑应用。
- 这里的应用账号对应的是数据库,授权是 Owner 对用户授予的数据库权限。点击添加,可选择数据库、填写账号、生成密码、并选择应用账号的权限和有效期后,则会在应用账号列表里生成应用账号,同时我们可在应用列表里修改密码或删除应用账号。
- 在应用分析中我们可以看到今日常用表、Top SQL、慢 SQL:
-
- 今日常用表:在这里会看到今天常用表的读写次数
- Top SQL:可看到执行次数多少的排行情况
- 慢 SQL:可看到执行耗时由高到低的排行情况
审计
审计分析
审计分析指可对在平台内所有执行的 SQL 语句进行审计分析。可限定审计分析的时长为今日、七日或全部,从左到右可看到:
- 执行语句的总数
- 错误语句数
- 活跃用户数
- 各具体的执行占比情况
- 今日用户排行情况、用户名和执行次数
审计明细
在审计明细中可以看到详细的审计数据情况
- 由上到下,当我们在查找审计明细信息时,可先选择自己的过滤条件,如选择用户、数据源类型、语句明细(可复制)、语句类型、执行结果、开始结束日期。如需更换过滤条件,点击「重置」即可。
- 当选择好自己的过滤条件点击查询后,将得到所需信息,此时可选择导出审计明细信息到本地。(同时导出的信息也会在「下载中心」同步,方便再次下载)
个人
个人文件夹
- 在个人文件夹页面,可点击右上角「新建文件夹」按钮新建一个文件夹,点击「导入文件」按钮,把文件上传到此文件夹,(可在终端访问该文件)
- 可将数据查询--->『编辑栏』中的内容保存到个人文件夹中,也可以在「审计明细」中导出文件保存至个人文件夹的 Export 目录中。
- 在个人文件夹页面的下方,可看到更多详细信息。
下载中心
当我们在审计明细中导出数据后,详细下载信息就会在这里展示出来,可以看到导出的文件名、导出语句(支持复制)、导出格式、导出行数、任务创建时间、任务状态,最后可选择下载或删除。
执行历史
- 在执行历史界面的左侧为语句执行的详细信息,可选择今日、一周、一月的执行历史信息。在执行历史的列表中,我们可看到执行的连接、数据库、执行的 SQL 语句(可复制)执行结果如何,具体的执行时间,耗时情况信息。
- 在右侧可快捷打开常用连接。