//
//
//
//
//
//
//
//
//
//
软件Tags:
Yearning是一款卓越的数据库审核管理工具,旨在协助用户进行SQL查询、审核、推送、导入导出、审核查询及用户权限管理等多项操作,切实提升用户的工作效率。它能够高效检测SQL语句并支持二次开发,诚邀有需求的用户前来下载体验!
我的工单
对于执行失败或驳回的工单,用户可点击执行信息重新修改SQL并提交。
对于执行成功的工单,用户可以查看回滚语句并快速提交SQL。
提交工单-DDL
如需获取表结构的详细信息,务必填写表名并完整填写工单信息。
所有SQL在检测后只有错误等级为0时,提交按钮才会被激活。
如下拉列表框内无相关数据源,请联系管理员确认是否已赋予相应数据源权限。
提交工单-DML
查询语句应在查询页面提交,避免将查询语句放入DML审核中。
查询
若开启查询审核,提交查询申请后需等待相应审核人同意方可进行查询。
超级管理员在设置页面开启数据导出功能后,查询申请页面才会显示数据导出按钮。
由于导出数据为.csv格式,若导出数据中包含json等数据,可能会导致数据分隔异常(csv默认使用逗号分隔)。
获取表结构功能需点击相应表名,此为前置条件。
快速提交功能仅支持同查询数据源的DML语句(查询数据源必须为读写类型)。
如下拉列表框内无相关数据源,请联系管理员确认是否已赋予相应数据源权限。
工单审核
实时刷新开关默认为打开状态,若需删除记录,请先关闭该开关。
若定时工单的时间小于当前时间,则该工单将立即执行(请确保Yearning所处环境的时区与使用者一致,否则将导致定时执行异常!)。
目前仅支持延时工单的中止,其他工单执行后无法中止!
执行成功的工单可点击执行信息按钮查看回滚语句。
查询审核
点击“全部中止”按钮将会中止所有用户的查询权限。若未在设置页面开启查询审核开关,则默认用户查询申请提交后自动获得查询权限。用户查询时限请在设置页面进行设置。
点击“清除空查询工单”,可删除无查询记录的空查询工单(此情况多发生于用户申请查询工单后未进行查询)。
用户管理
当多级审核关闭后,系统不会自动重置执行人的用户角色,请自行重置相应用户角色。
数据库管理
所有添加的数据源应在添加之前点击测试连接按钮进行连接性测试,以确保连接正常。
数据源分为查询数据源、非查询数据源及读写数据源。查询数据源仅会出现在细粒度权限的查询数据源范围内。非查询数据源同理。(查询与执行数据源应分开,以保证线上执行数据源不会因查询慢SQL影响业务)默认为读写数据源。此类别添加后无法通过编辑进行修改,请谨慎操作。
数据源详细信息中的密码为假密码展示,并不会回传真实密码信息(并不妨碍编辑修改密码),以确保安全性。
设置
ldap设置请参考Yearning ldap配置。
目前ldap并未实现基于filter的过滤搜索,仅支持全局搜索。
由于ldap测试未进行dc搜索(管路员用户并不需要dc搜索),所以测试成功并不代表ldap用户100%可访问,即使填写了ldap管理员用户信息但SCE信息填写有误。
目前脱敏规则为无差别化脱敏,不论查询何种库,只要该字段符合脱敏规则便会自动隐式显示。
输入框配置,必须点击添加按钮,使配置添加后保存才会生效。
所有设置均生效,其他用户刷新页面后即可生效。
审核规则
数值型规则中的0值均为不受限制。
开启检查时间字段的默认值,所有时间类型字段必须设置默认值,并且默认值必须为RENT_TIMESTAMP。
osc相关规则请参考相关工具参数说明。
OinTableSize当表体积大于该值时,如启动osc则走osc执行。
受制于各种条件影响,影响行数的判断并不一定准确,走主键及索引的语句将提交准确性,仅供部分参考,如预测结果偏移量较大,可考虑优化语句性能或提高影响行数上限(影响行数基于explain)。
文本类型输入框填写多值时,请使用英文逗号分隔(例如:charset范围, collate范围)。
AutoTask
用户可通过该功能设置自动执行任务。当提交的dml语句符合相应任务条件时,将会自动执行,无需审核人审核。
该功能仅限于dml语句使用,请谨慎使用!
1、SQL查询
查询导出
查询自动补全
2、SQL审核
流程化工单
SQL语句检测
SQL语句执行
SQL回滚
SQL自动审核执行
3、审核记录
4、查询审计
5、推送
E-mail工单推送
自定义webhook消息推送
6、其他
LDAP登陆
用户权限及管理
权限组划分
自定义审核层级
注意事项
Yearning不依赖任何第三方SQL审核工具作为审核引擎,内部已自主实现审核及回滚相关逻辑。
仅依赖MySQL数据库。
MySQL版本必须为5.7及以上(8.0及以上请将sql_mode设置为空),并已自行安装完毕且创建Yearning库,字符集应为UTF8mb4(仅Yearning所需MySQL版本)。
Yearning基于1080p分辨率开发,仅支持1080p及以上显示器访问。
对于设置页面配置重叠的问题请确认自己的分辨率及是否进行了放大操作。
请使用Chrome最新版本(不包括360等其他魔改版本)。
Yearning下载
Yearning-go提供二进制下载包。
请选择最新版本,在Assets中选择Yearning-x.x.x.linux-amd64.zip包进行下载。
如需进行代码修改或自己编译,请移步至二次开发页面。
Yearning目录结构
Yearning(SQL审核平台)
1.填写配置文件
Yearning(SQL审核平台)
关于SecretKey
SecretKey为token/数据库密码加密/解密的salt。
建议所有用户在初次安装Yearning之前更改SecretKey(不更改将存在安全风险)。
格式:大小写字母均可,长度必须为16位,如长度不是16位将会导致无法新建数据源。
特别注意:
此key仅可在初次安装时更改!之后不可再次更改!如再次更改将导致之前已存放的数据源密码无法解密,最终无法获取相关数据源信息。
使用帮助
Yearning(SQL审核平台)
2.初始化数据结构
./Yearning -m
请务必在-s启动前首先执行-m初始化操作!
如要再次初始化,请先将Yearning库下所有表删除,否则重复执行无效。
3.启动服务
默认启动
./Yearning -s
参数启动
./Yearning -s -b "172.27.80.35" -p "8000"
打开http://172.27.80.35:8000
默认账号/密码:admin/Yearning_admin
注意事项
语法支持
Yearning目前兼容99%的MySQL标准SQL语法。
但由于审核逻辑等因素的限制,某些SQL语句的反馈结果并不能保证绝对准确。
已知不支持的语句类型有:
复杂的查询语句(多表、多函数、非必现,并非所有复杂语句均不支持)。
外键相关语句。
不支持跨库DML语句的回滚。
存储过程/触发器。
影响行数
Yearning采用Explain分析SQL语句的影响行数。由于Explain生成的影响行数受主键、索引等其他因素的影响,并不能100%保证其准确性,其更多是反映该语句导致的全表扫描行数,因此对于误差较大的语句具有一定的优化参考意义。
预检查
Yearning采用预检查的方法进行SQL检测,对于同一工单内添加并编辑的语句会产生字段不存在的错误(在2.3.0版本开始将逐步兼容)。
例如
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执行中是逐条执行并检测。当第一条执行后表内生成该字段,第二条执行前检测自然也就正常。
使用osc
Yearning采用exec调用pt-osc的方式使用pt功能。管理员需在规则设置页面中填写相关pt-osc配置,并打开osc使用开关。需要注意的是,使用pt-osc的DDL语句不得含有dbname.tablename这样的写法!请符合pt-osc的写法!
生成回滚语句
Yearning采用解析binlog的方式来获得回滚语句。由于MySQL的replication协议限制,必须拥有SUPER、REPLICATION SLAVE、REPLICATION CLIENT、ALL PRIVILEGES权限的账号才能获得binlog流。因此,如想体验生成回滚语句备份功能,请确保对应填写的数据源账号拥有相应权限,同时对应数据源应开启binlog功能。