MySQL 审计

Yearning SQL审计平台

Yearning 是面向中小型企业的轻量级MySQL SQL语句审核平台,提供查询审计,SQL审核,权限控制,自定义审核流程等功能。规范了SQL脚本执行的流程,降低了数据损坏丢失的风险。安装非常简单,可以到中文文档 https://guide.yearning.io/了解。

Yearning官网

https://guide.yearning.io/

Yearning的Github仓库地址

https://github.com/cookieY/Yearning/releases

Yearning的安装包

Yearning-2.3.0-RC3-path1-linux-amd64.zip

Yearning的功能

  • SQL查询
    • 查询导出
    • 查询自动补全
  • SQL审核
    • 流程化工单
    • SQL语句检测
    • SQL语句执行
    • SQL回滚
    • SQL自动审核执行
  • 历史审核记录
  • 查询审计
  • 推送
    • E-mail工单推送
    • 自定义webhook消息推送
  • 其他
    • LDAP登陆
    • 用户权限及管理
    • 权限组划分
    • 自定义审核层级

      Yearning的配置使用-解压压缩包,编辑配置文件 conf.toml

      解压缩包文件

      1. unzip Yearning-2.3.0-RC3-path1-linux-amd64.zip -d ./
      image.png

      解压后的目录如下

      image.png

      配置数据库信息

      1. vim conf.toml
      image.png :::danger

      关于 SecretKey

      SecretKey 是 token/数据库密码加密/解密的 salt。
      建议所有用户在初次安装 Yearning 之前将 SecretKey 更改(不更改将存在安全风险)
      格式: 大小写字母均可, 长度必须为 16 位 如长度不是16位将会导致无法新建数据源
      特别注意:
      此 key 仅可在初次安装时更改!之后不可再次更改!如再次更改会导致之前已存放的数据源密码无法解密,最终导致无法获取相关数据源信息 :::

Yearning的使用

1.使用帮助

  1. ./Yearning -h

image.png

2.初始化数据结构

  1. ./Yearning -m

:::danger 请务必在-s 启动前首先执行-m 初始化操作!
如要再次初始化,请先把 yearning 库下所有表删除,否则重复执行无效 ::: image.png

3.启动服务

默认启动

  1. ./Yearning -s

参数启动

  1. ./Yearning -s -b "172.27.80.35" -p "8000"

image.png

4.登录Web管理界面

image.png

5.配置数据源

Yearning部署好后,可以将需要管理的MySQL数据源配置进去。

6.角色帐号管理

然后就是创建和分配帐号了,除了自带的超级管理员外,要创建两种帐号:
Yearning的用户角色分别为:提交人,操作人,超级管理员(仅admin用户) 三类。
提交人帐号: 用来提交的SQL工单,查询工单的功能,分给普通开发者用来提交SQL脚本工单。
操作人帐号: 除了有提交人帐号拥有的功能外,还有审核并执行SQL工单的功能,这种帐号一般分给运维或者DBA使用。

7.工单

工单能够规范SQL脚本的执行流程,将执行的过程记录清楚,作为后面复盘和甩锅背锅的依据。
2021-05-28-00-11-36-387789.png
提交SQL工单
提交完了,DBA审核脚本是否合规,做出批准和驳回的决定 。
2021-05-28-00-11-36-684667.png
SQL工单审核
提交人还可以查询自己的提交记录、审核结果、执行情况。
2021-05-28-00-11-37-035290.png
查询我的工单
一切清清楚楚,明明白白,规范了流程,降低了沟通成本,并对执行的过程记录在案。还能自动生成回滚语句以防不测。

8.注意事项

Yearning 目前兼容99%的MySQL标准SQL语法,目前不支持跨库DML语句回滚,也不支持存储过程和触发器,好像外键也不支持。