Yearning MYSQL SQL语句审核平台。提供查询审计,SQL审核等多种功能
Feature 功能
SQL查询查询工单导出自动补全,智能提示查询语句审计SQL审核流程化工单SQL语句检测与执行SQL回滚历史审核记录推送E-mail工单推送钉钉webhook机器人工单推送用户权限及管理角色划分基于用户的细粒度权限注册其他todoListLDAP登录动态审核规则配置AutoTask自动执行注意事项Yearning 不依赖于任何第三方SQL审核工具作为审核引擎,内部已自己实现审核/回滚相关逻辑。
仅依赖Mysql数据库。
mysql版本必须5.7及以上版本,请事先自行安装完毕且创建Yearning库,字符集应为UTF-8/UTF8mb4 (仅Yearning所需mysql版本)
Yearning日志仅输出error级别,没有日志即可认为无运行错误!
Yearning 基于1080p分辨率开发仅支持1080p及以上显示器访问
由于使用较多新的前端技术栈,请使用Chrome最新版本(不包括360等其他魔改版本)
特别注意语法支持
Yearning 目前兼容99%的Mysql 标准SQL语法。
但由于审核逻辑等因素的限制,对一些SQL语句并不能保证得到正确的反馈
已知不支持的语句类型有:
复杂的查询语句(多表,多函数,非必现。并不是所有复杂语句不支持)create table like 语句视图语句外键相关语句影响行数
Yearning采用Explain分析SQL语句的影响行数。由于Explain生成的影响行数受主键,索引等其他因素的影响,并不能100%保证其准确性。其更多的是反应了该语句导致的全表扫描行数,所以对于误差较大的语句具有一定的优化参考意义。
预检查
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执行中是逐条执行并检测。当第一条执行后表内生成该字段,第二条执行前检测自然也就正常。
生成回滚语句
Yearning 采用解析binlog方式的方式获得回滚语句。由于Mysql replication协议限制,必须拥有SUPER/REPLICATION SLAVE, REPLICATION CLIENT ,ALL PRIVILEGES 权限的账号才可以获得binlog流。所以,如想体验生成回滚语句备份功能,请确保对应填写的数据源账号拥有相应权限,同时对应数据源应开启binlog功能。
效果展示



