参考链接
https://www.toutiao.com/a6757504816143958542/

说明介绍
提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!

功能介绍

  1. SQL查询查询导出查询自动补全
  2. SQL审核流程化工单SQL语句检测SQL语句执行SQL回滚
  3. 历史审核记录
  4. 查询审计
  5. 推送E-mail工单推送钉钉webhook机器人工单推送
  6. 其他LDAP登陆用户权限及管理拼图式细粒度权限划分(共12项独立权限,可随意组合)

项目地址
https://gitee.com/cookieYe/Yearning

页面展示
一个SQL语句审核平台---Yearning MYSQL_第1张图片

一个SQL语句审核平台---Yearning MYSQL_第2张图片

一个SQL语句审核平台---Yearning MYSQL_第3张图片

一个SQL语句审核平台---Yearning MYSQL_第4张图片

一个SQL语句审核平台---Yearning MYSQL_第5张图片

一个SQL语句审核平台---Yearning MYSQL_第6张图片

一个SQL语句审核平台---Yearning MYSQL_第7张图片

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

二级审核流程:

1.使用人根据自己拥有的权限向对应的工单提交单元(DDL,DML)提交工单
2.管理员收到消息后在审核工单页面审核该工单请求并执行/驳回 对应工单
3.执行记录将会记录在该管理员用户下
多级审核流程:

1.使用人根据自己拥有的权限向对应的工单提交单元(DDL,DML)提交工单,
2.管理员收到消息后在审核工单页面审核该工单请求并同意/驳回 对应工单并选择对应执行人(执行人必须是角色为执行人的用户)
3.执行人收到工单后 执行/驳回该工单
4.执行记录将会记录在该执行人用户下

部署
Yearning 不依赖于任何第三方SQL审核工具作为审核引擎,内部已自己实现审核/回滚相关逻辑。仅依赖Mysql数据库。mysql版本必须5.7及以上版本,请事先自行安装完毕且创建Yearning库,字符集应为UTF-8/UTF8mb4 (仅Yearning所需mysql版本)Yearning日志仅输出error级别,没有日志即可认为无运行错误!Yearning 基于1080p分辨率开发仅支持1080p及以上显示器访问(可到官网下载二进制文件)
https://github.com/cookieY/Yearning/releases/download/v2.2.1/Yearning-2.2.1.linux-amd64.zip

1、解压后修改配置文件

cat conf.toml
[Mysql]
Db = "Yearning"
Host = "127.0.0.1"
Port = "3306"
Password = "xxxx"
User = "root"

[General] #数据库加解密key,只可更改一次。
SecretKey = "dbcjqheupqjsuwsm"

初始化数据库
./Yearning -m

查看数据库的字符集
MySQL [(none)]> select SCHEMA_NAME,DEFAULT_CHARACTER_SET_NAME,DEFAULT_COLLATION_NAME,SQL_PATH from information_schema.SCHEMATA;
一个SQL语句审核平台---Yearning MYSQL_第8张图片
启动服务及相关参数

一个SQL语句审核平台---Yearning MYSQL_第9张图片
一个SQL语句审核平台---Yearning MYSQL_第10张图片

参数启动
nohup ./Yearning -s &
打开浏览器对应端口 ,默认密码:admin/Yearning_admin

报错及解决

[root@test3-3 Yearning-go]# ./Yearning -m
Error 1045: Access denied for user ''@'127.0.0.1' (using password: NO)
MySQL [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'etiir2020' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.05 sec)

需要再数据库中创建Yearning数据库,并且字符集为utf8mb4;
一个SQL语句审核平台---Yearning MYSQL_第11张图片