今天给大家分享目前最popular
的MySQL SQL
审计平台Yearning
,这个平台可以帮助开发者快速的完成SQL语句的语法的审核、检测、执行和回滚等操作。在早期,我们是先整理出来一套SQL使用规范,然后通过部门会议审核规范的内容,最后要求按照内容应用在实际的工作中,但是这些不免有些开发者依旧就不住或者不上心
,不按套路出牌,造成数据库使用不统一。
Yearning
自身包含了一套通常适用的审核规范,基本上能满足日常需要,同时规范了日常开发需求所涉及到的SQL变动,在Yearning平台的辅助下,日常的SQL变动也更加贴近SQL使用的规范化、标准化的要求,同时100%
基于GO语言研发的Yearning也可以通过自定义二次开发(遵循AGPL协议)
增加一些符合自己审核策略,但是它的审核引擎Juno
不是开源的。
Yearning的前端是基于Vue.js
构建的,而这块审核规则的代码也是全部在JS中传递和处理的,另外它还提供SQL语法高亮、自动补全和智能提示、可视化等。
使用感受
- 有工单记录,让变更的SQL记录落库保存,易于审计。
- 开发者自己提交,监测最大程度减小以往通过微信传送等粘贴出错几率,给DBA.运维省心。
- 再一次证明
落实规范性的东西
需要有工具化、流程化,靠自觉万万是做不到的。 - SQL审批要设置多成员多级审核,最后自己执行落库。
下面列出支持的主要功能:
Yearning Feature
SQL查询
- 查询工单
- 导出
- 自动补全,智能提示
- 查询语句审计
SQL审核
- 流程化工单
- SQL语句检测与执行
- SQL回滚
- 历史审核记录
推送
- E-mail工单推送
- 钉钉webhook机器人工单推送
用户权限及管理
- 角色划分
- 基于用户的细粒度权限
- 注册
其他
- todoList
- LDAP登录
- 动态审核规则配置
- AutoTask自动执行
体验
Yearning的安装十分简单,它依赖一个mysql
数据库用于存储工单的数据、回滚的SQL语句,所以需要先初始化数据库-m
,然后在启动-s
。对于回滚的语句不得不说一下,真的要是涉及到大变更的操作的时候,还是建议手动或者可靠地备份方式进行。官方也提供了安装手册,一般建议容器化部署,方便省事,安装包内也有Dockerfile
,二次开发的同学也可以自己构建发布。
在需要配置钉钉或者微信的时候,可以通过选项设置通知时显示Yearning的平台地址
下面是配置钉钉和OpenLDAP登录的参考: