Yearning简介

Yearning MYSQL 是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!

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

注意:

Yearning 1.x版本需inception提供SQL审核及回滚功能。

Yearning 2.0开始无需依赖Inception,已自己实现了SQL审核/回滚功能

Yearning 功能介绍

  • SQL查询

    • 查询工单

    • 导出

    • 自动补全,智能提示

    • 查询语句审计
  • SQL审核

    • 流程化工单

    • SQL语句检测与执行

    • SQL回滚

    • 历史审核记录
  • 推送

    • E-mail工单推送

    • 钉钉webhook机器人工单推送
  • 用户权限及管理

    • 角色划分

    • 基于用户的细粒度权限

    • 注册
  • 其他

    • todoList

    • LDAP登录

    • 动态审核规则配置
  • AutoTask自动执行

Yearning安装

Yearning 不依赖于任何第三方SQL审核工具作为审核引擎,内部已自己实现审核/回滚相关逻辑。

  • 仅依赖Mysql数据库。mysql版本必须5.7及以上版本,创建Yearning库字符集应为UTF8mb4 (仅Yearning所需mysql版本)
  • Yearning日志仅输出error级别,没有日志即可认为无运行错误!

  • Yearning 基于1080p分辨率开发仅支持1080p及以上显示器访问

Yearning下载

Yearning-go官方提供二进制下载包,下载地址 https://github.com/cookieY/Yearning/releases。选择你所需要下载的软件包进行下载。

源码安装:你先需要安装一些依赖等,一些相关的安装步骤如下:

[root@test ~]# git clone https://github.com/cookieY/Yearning.git[root@test ~]# mv Yearning /usr/local/yearning[root@test ~]# cd /usr/local/yearning/[root@test yearning]# cd install/[root@test install]# lltotal 26728-rw-r--r-- 1 root root 57763 Apr 23 16:06 connections.py-rw-r--r-- 1 root root 16818 Apr 23 16:06 cursors.py-rw-r--r-- 1 root root 679 Apr 23 16:06 docker_start.sh-rw-r--r-- 1 root root 27270656 Apr 23 16:06 inception.tar-rw-r--r-- 1 root root 11762 Apr 23 16:06 Yearning.sh[root@test install]# tar xf inception.tar[root@test install]# cd inception/bin/[root@test bin]# lltotal 12472-rw-r--r-- 1 501 games 722 Jan 3 10:39 inc.cnf-rwxr-xr-x 1 501 games 9016999 Oct 12 2017 Inception-rwxr-xr-x 1 501 games 3747312 Oct 12 2017 mysql

不过现在官方让直接下载.zip包,直接解压即可(所以这里就不建议使用源码安装了),比较方便。

mysql> create database Yearning default character set utf8mb4 collate utf8mb4_unicode_ci;Query OK, 1 row affected (0.00 sec)mysql> show databases;+--------------------+| Database        |+--------------------+| information_schema || Yearning       || mysql         || performance_schema || sys           |+--------------------+5 rows in set (0.00 sec)

只需要提前安装好Mysql数据库,并按前面的要求进行配置即可。

[root@CentOS7-1 ~]# lltotal 14036-rw-------. 1 root root     1320 Apr  8 05:08 anaconda-ks.cfg-rw-r--r--  1 root root 14349178 Apr 11 09:26 Yearning-2.2.0.linux-amd64.zip

上面我们直接从github上下载的最新版本2.2.0:

[root@CentOS7-1 ~]# cd Yearning-go/[root@CentOS7-1 Yearning-go]# lltotal 9772-rw-r--r-- 1 root root     127 Aug  1  2019 conf.tomldrwxr-xr-x 6 root root     116 Apr  6 22:32 dist-rw-r--r-- 1 root root     620 Jan  8 21:06 docker-compose.yml-rw-r--r-- 1 root root     597 Aug 21  2019 Dockerfile-rw-r--r-- 1 root root     177 Aug 23  2019 # README-rwxr--r-- 1 root root 9985356 Apr  6 22:35 Yearning-rw-r--r-- 1 root root     283 Jan 15 03:55 yearning.service

修改配置文件

vim conf.toml[Mysql]Db = "Yearning"Host = "127.0.0.1"Port = "3306"Password = "xxxx"User = "root"[General] #数据库加解密key,只可更改一次。SecretKey = "dbcjqheupqjsuwsm"
SecretKey是token/数据库密码加密/解密的salt。建议所有用户在初次安装Yearning之前将SecretKey更改(不更改将存在安全风险),格式: 大小写字母均可, 长度必须为16位。特别注意:此key仅可在初次安装时更改!之后不可再次更改!如再次更改会导致之前已存放的数据源密码无法解密,最终导致无法获取相关数据源信息。

初始化

./Yearning -m

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

启动服务

#默认启动./Yearning -s#参数启动./Yearning -s -b "192.168.1.9" -p "8000"

使用帮助

[root@CentOS7-1 Yearning-go]# ./Yearning -hversion: Yearning/2.2.0 general author: HenryYeeUsage: Yearning [-m migrate] [-p port] [-s start] [-b web-bind] [-h help] [-c config file]Options: -s  启动Yearning -m  数据初始化(第一次安装时执行) -p  端口 -b  钉钉/邮件推送时显示的平台地址 -x  表结构修复,升级时可以操作。如出现错误可直接忽略。 -h  帮助 -c  配置文件路径 -k  用户权限变更为权限组(2.1.7以下升级至2.1.7及以上使用) -f  初始化Admin用户密码

打开浏览器 http://192.168.1.9:8000

默认密码:admin/Yearning_admin

相关功能模块介绍

1、用户模块

Dashboard:dashboard主要展示Yearning各项数据包括用户数/数据源数/工单数/查询数以及其他图表,个人信息栏内用户可以修改密码/邮箱/真实姓名,同时可以查看该用户权限以及申请权限(申请权限2.1.7版本后作废)。

我的工单:展示用户提交的工单信息,对于执行失败/驳回的工单点击详细信息后可以重新修改sql并提交,对于执行成功的工单可以查看回滚语句并且快速提交SQL。

工单DLL:DDL相关SQL提交审核,查看表结构/索引,SQL语法高亮/自动补全。

DML审核:DML相关SQL提交审核,SQL语法高亮/自动补全。

查询:查询/导出数据 SQL语法高亮/自动补全 快速DML语句提交。

2、审核模块

工单审核:DDL/DML管理员审核并执行。

查询审核:用户的查询审核。

权限审核:用户的权限审核(2.1.7版本以下)


3、管理管理模块

用户管理:创建/修改/删除用户

数据库管理:添加/编辑/删除 数据源

用户权限:用户权限修改/清空

功能设置:设置消息推送相关信息 包括钉钉机器人/email,设置LDAP相关信息,全局配置信息,全局配置开关

审核规则:设置SQL检测规则


AutoTask自动执行任务

2.1.4版本新增:用户可通过改功能设置自动执行任务。当提交的dml语句符合相应任务条件。将会自动执行,无需审核人审核。该功能仅限dml语句使用。请慎重使用!

总结

Yearning是一个SQL审核平台,在一定程度上可以解决运维与开发中间的问题,遗憾的是只支持Mysql,感兴趣的可以尝试下!

参考资料:https://guide.yearning.io/https://gitee.com/cookieYe/Yearning

最新整理的 2TB 技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、ELK Stack、机器学习、BAT面试精讲视频等。

☆ END ☆

©著作权归作者所有:来自51CTO博客作者mob604756ef35df的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. linux系统执行读取jar包同级目录的外部配置文件
  2. 遇到应付你的面试官你怎么办?
  3. 协程相比线程到底好在哪里?
  4. Linux下性能压测之系统参数调优
  5. 基于PG数据库插件的SQL规范审核工具
  6. 基于 Swoft 协程框架的 PHP 微服务治理
  7. Ansible Playbook详解
  8. 超赞!墙裂推荐一个 MySQL 自动化运维工具!
  9. 我的开源项目——Windows PE和Linux ELF可执行文件解析工具

随机推荐

  1. MySQL5.7以上版本root用户空密码修改(wind
  2. Auto-generated primary key in sql data
  3. 解决Linux主机上的 远程MySQL客户端无法
  4. 安装MySQL时出现黄色感叹号,提示3306已被
  5. java链接数据库--Mysql
  6. MySQL常用命令与常见问题解决
  7. profiles在mysql中的应用
  8. 30分钟安装linux版本mysql5.7.21版本,没
  9. MySQL官网示例数据库emploees分析使用
  10. Mysql 查询—按位运算