1 遇到的问题
(1)发版小心谨慎。新版本发版(SQL由开发环境转入测试环境、测试环境迁移正式环境)经常一些SQL语句忘记执行,导致花大量时间定位bug,最终发现是sql引起的。
(目前基于人工记录的方式,经常会有记录漏的情况,包含系统字典的配置及新增的sql语句)
(2)DDL语句不规范。目前开发的项目为自行建表,出现了部分表没有注释,导致后续维护困难的现象。
(3)数据库回滚不方便。在遇到一些场景需要恢复数据库的时候,无法快速有效的对数据库进行回滚。
2 目的
(1)SQL审核查询平台的主要目的是将不同环境的SQL进行平稳迁移,同时在一定程度保证数据表的安全性。
(2)保护正式环境,对delete、drop语句进行权限隔离
(3)数据库细粒度的权限控制,为不同用户分配不同权限。
(4)具有回滚功能,执行出错可以一键回滚。
3 为什么选用Yearning
目前市面上有Sqle、Archery等开源工具均具有sql审核功能。其中yearning的星级较高被广泛使用,且功能简洁主要的功能就是SQL审核。
4 部署教程
(1)在以下地址下载安装包
https://github.com/cookieY/Yearning/releases
(2)解压
(3)修改配置文件
cat conf.toml
[Mysql]
Db = "Yearning"
Host = "127.0.0.1"
Port = "3306"
Password = "xxxx"
User = "root"
[General] #数据库加解密key,只可更改一次。大小写字母均可, 长度必须为 16 位 如长度不是16位将会导致无法新建数据源
SecretKey = "dbcjqheupqjsuwsm"
(4)安装启动
./Yearning install
./Yearning run --push "172.27.80.35" -port "8000"
打开浏览器 http://127.0.0.1:8000
默认账号/密码: admin/Yearning_admin
5 具有的功能
- SQL 查询
- 查询工单
- 导出
- 自动补全,智能提示
- 查询语句审计
- 查询结果脱敏
- SQL 审核
- 流程化工单
- SQL语句语法检测
- 根据规则检测SQL语句合规性
- 自动生成DDL/DML回滚语句
- 历史审核记录
- 推送
- E-mail 工单推送
- 钉钉 webhook 机器人工单推送
- 用户权限及管理
- 角色划分
- 基于用户的细粒度权限
- 注册
- 其他
- todoList
- LDAP 登录
- 动态审核规则配置
- 自定义审核层级
- OIDC SSO 自动注册与登录
- AutoTask 自执行
6 系统界面
- Dashboard
- 审核
- 查询(SQL 语法高亮及自动补全)
- 审计(工单审计)