一款 SQL 高效审计工具 | 解放DBA双手
介绍
Yearning MYSQL SQL语句审核平台。提供数据库查询审计,SQL审核等多种功能,简单便捷,可一键安装部署。
主要功能
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语法高亮/自动补全 快速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大咖说 | 携程:从日志分析平台到综合性管理平台
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
