一款 SQL 高效审计工具 | 解放DBA双手

介绍

Yearning MYSQL SQL语句审核平台。提供数据库查询审计,SQL审核等多种功能,简单便捷,可一键安装部署

一款 SQL 高效审计工具 | 解放DBA双手_第1张图片

主要功能

  • SQL查询

    • 查询导出

    • 查询自动补全

  • SQL审核

    • 流程化工单

    • SQL语句检测

    • SQL语句执行

    • SQL回滚

  • 历史审核记录

  • 查询审计

  • 推送

    • E-mail工单推送

    • 钉钉webhook机器人工单推送

  • 其他

    • LDAP登陆

    • 用户权限及管理

    • 拼图式细粒度权限划分(共12项独立权限,可随意组合)

开源地址

https://gitee.com/cookieYe/Yearning

https://github.com/cookieY/Yearning

部署安装

(两种方式,可参考https://guide.yearning.io/install.html)
1.  docker容器安装 (内含dockerfile文件)
   
2.  wget https://github.com/cookieY/Yearning/releases/download/v2.1.3/Yearning-2.1.3.linux-amd64.zip

模块介绍

  • Dashboard

    dashboard主要展示Yearning各项数据包括用户数/数据源数/工单数/查询数以及其他图表,个人信息栏内用户可以修改密码/邮箱/真实姓名,同时可以查看该用户权限以及申请权限

  • 我的工单

    展示用户提交的工单信息.,对于执行失败/驳回的工单点击详细信息后可以重新修改sql并提交

    对于执行成功的工单可以查看回滚语句并且快速提交SQL

  • 工单DLL

    DDL相关SQL提交审核,查看表结构/索引,SQL语法高亮/自动补全

  • DML审核

    DML相关SQL提交审核,SQL语法高亮/自动补全

一款 SQL 高效审计工具 | 解放DBA双手_第2张图片

  • 查询

    查询/导出数据 SQL语法高亮/自动补全 快速DML语句提交

  • 工单审核

    DDL/DML管理员审核并执行

  • 查询审核

    用户查询审核

  • 权限审核

    用户权限审核

  • 用户管理

    创建/修改/删除用户

  • 数据库管理

    添加/编辑/删除 数据源

  • 用户权限

    用户权限修改/清空

  • 基础设置和进阶设置

    设置消息推送相关信息 包括钉钉机器人/email,设置LDAP相关信息,全局配置信息,全局配置开关

  • 审核规则

    设置SQL检测规则

审核流程

Yearning采用二级/多级的审核模式,可根据实际需求变更相关使用流程,执行人角色必须在开启多级审核之后才可指定(开启请前往设置页面),如果需要将多级审核改为二级审核,请先确保所有多级审核的工单都已确认执行。否则未执行工单将无法找回。当多级审核关闭后系统并不会自动将角色为执行人的用户重置角色,请自行重置相应用户角色

总结操作注意项

1.语法支持

Yearning是一个SQL审核平台,目前仅仅支持Mysql,在本人测试中目前兼容99%的Mysql 标准SQL语法。但由于审核逻辑等因素的限制,对一些SQL语句并不能保证得到正确的反馈,已知不支持的语句类型有:

  • 复杂的查询语句(多表,多函数,非必现。并不是所有复杂语句不支持)

  • create table like 语句

  • 视图语句

  • 外键相关语句

2.影响行数

Yearning采用Explain分析SQL语句的影响行数。由于Explain生成的影响行数受主键,索引等其他因素的影响,并不能100%保证其准确性。其更多的是反应了该语句导致的全表扫描行数,所以对于误差较大的语句具有一定的优化参考意义。

3.预检查

Yearning采用预检查的方法进行SQL检测,对于同一工单内添加并编辑的语句会产生字段不存在的错误

例如:

ALTER TABLE core_data_sources ADD t1 int( 11) DEFAULT 0 COMMENT '已退换货数量';ALTER TABLE core_data_sources ADD t2 int( 11) DEFAULT 0 COMMENT '申请中数量' AFTER t1;

该工单第二条语句依赖第一条语句创建的字段。由于当前数据库并没有t1这个字段,所以该工单检测时会报错t1字段不存在的问题。

语句本身没有问题因为在mysql执行中是逐条执行并检测。当第一条执行后表内生成该字段,第二条执行前检测自然也就正常。

4.生成回滚语句

Yearning 采用解析binlog方式的方式获得回滚语句。由于Mysql replication协议限制,必须拥有SUPER/REPLICATION SLAVE, REPLICATION CLIENT ,ALL PRIVILEGES 权限的账号才可以获得binlog流。所以,如想体验生成回滚语句备份功能,请确保对应填写的数据源账号拥有相应权限,同时对应数据源应开启binlog功能。

目前yearning版本迭代很快,相关不足也许很快就会修复,大家可以持续关注开源官网。

推荐书籍,最近非常火

Elasticsearch大咖说 | 携程:从日志分析平台到综合性管理平台

一款 SQL 高效审计工具 | 解放DBA双手_第3张图片

你可能感兴趣的:(Devops)