Yearning是基于go和vue开发的一款SQL审核工具。在实际开发中,生产环境DDL、DML脚本一般需要走工单流程进行审批后执行,Yearning可以制定MySQL的SQL审核流程、规范及审批等功能。
一、主要功能
- 1.支持自定义SQL审核流程
- 2.自动化SQL语句审核,可对SQL进行自动检测并执行
- 3.自动生成DDL/DML回滚语句
- 4.可对查询结果脱敏
- 5.基于用户设置权限,分为DDL、DML、QUERY权限
- 6.支持钉钉 webhook机器人工单推送
二、下载及安装启动
- 下载地址
https://github.com/cookieY/Yearning/releases
version:3.1.1
- 解压
unzip Yearning-v3.1.1-linux-amd64.zip
- 修改 配置文件conf.toml
[Mysql]:改成自己的Mysql服务器相关信息- 提前在mysql中建立Yearning数据库(可以更改)
Secretkey:数据库加密key(仅可修改一次,否则解密会失败。建议修改默认的Secretkey值,存在安全隐患)
- 初始化及安装
cd /usr/local/mysoft/Yearning
./Yearning install
- 启动Yearning服务
./Yearning run
三、Yearning使用
- 登录Yearning
Yearning服务启动后,在浏览器输入localhost:8000访问,默认账号:admin,密码:Yearning_admin
- 修改个人账户信息
- 修改密码
- 添加用户
- 自定义SQL审核流程
- 配置数据源
可以对同一个数据源下的数据库分别配置数据源(排除的数据库),然后针对用户设置对应数据源的权限
- 设置权限
默认权限组admin,可以新建权限组(例如:DDL、DML、DQL等)admin:所有权限(查询,数据更改,表结构变更)
DQL:数据查询权限
DML:数据操作权限(insert,update,delete)
DDL:数据定义权限(添加/删除字段,添加/删除索引等)
对不同的权限组,选择对应数据源的权限
- 给用户设置权限
四、工单申请及审批
- 工单申请
根据需要选择【DML/DDL/查询】中的一种进行工单申请
- 填写工单信息提交
- 查看工单申请记录
- 工单审核及执行
按照审核流程的节点一级一级审批,如果有执行权限,可直接执行工单
lisi审核(右击"SQL检测"通过后,【同意】按钮才可点击)
wangwu审核(右击"SQL检测"通过后,【同意】按钮才可点击)
admin审核及执行(当流程最后节点人员通过后将会自动执行该工单)
整个工单审批流程结束
- 审核规则默认关闭,可以根据实际需要来打开某些规则。在SQL检测时,将进行规则检测
- 自动化任务配置相关任务后可以对符合条件的SQL语句自动执行,无需执行人手动执行。例如下图对Insert类的语句自动执行
- 设置
1.消息推送
2.LDAP设置
3.进件设置:可以设置查询最大limit数,自定义环境(默认定义了Aliyun、AWS)等
4.数据清楚:可以按时间删除工单记录