Yearning-SQL审核平台

调研平台俩个

archeryd-SQL审核查询平台

https://archerydms.com/

yearning-SQL审核查询平台

http://yearning.io/

Yearning 功能

Yearning 拥有多项实用型功能。助力DBA提升工作自动化,标准化。

Yearning 拥有以下功能:
 自动化SQL语句审核,可对SQL进行自动检测并执行DDL/DML语句执行后自动生成回滚语句审核/查询 审计功能支持LDAP登录/钉钉及邮件消息推送支持自定义审核工作流支持细粒度权限分配

语法支持

Yearning 目前兼容99%的Mysql 标准SQL语法。 但由于审核逻辑等因素的限制,对一些SQL语句并不能保证得到正确的反馈 已知不支持的语句类型有:

复杂的查询语句(多表,多函数,非必现。并不是所有复杂语句不支持)外键相关语句不支持跨库DML语句的回滚存储过程/触发器
仅代表当前语法支持进度,并不作为未来完成度.

主要功能

SQL 查询
查询工单
导出
自动补全,智能提示
查询语句审计
查询结果脱敏
SQL 审核
流程化工单
SQL语句语法检测
根据规则检测SQL语句合规性
自动生成DDL/DML回滚语句
历史审核记录
推送
E-mail 工单推送
钉钉 webhook 机器人工单推送
用户权限及管理
角色划分
基于用户的细粒度权限
注册
其他
todoList
LDAP 登录
动态审核规则配置
自定义审核层级
AutoTask 自动执行

Yearning 社区

使用及部署遇到了些困惑?欢迎加入Yearning社区(QQ群) 363323798
操作文档
https://next.yearning.io/guide/config/source.html

注意事项

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

仅依赖 Mysql 数据库。

mysql 版本必须为5.7及以上版本(8.0及以上请将sql_mode 设置为空)并已事先自行安装完毕且创建 Yearning 库,字符集应为 UTF8mb4 (仅 Yearning 所需 mysql 版本)

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

对于设置页面配置重叠的问题请确认自己的分辨率以及是否进行了放大操作

请使用Chrome最新版本(不包括 360 等其他魔改版本)

创建mysql数据库,设置字符集

方法一:MySQL 命令
# utf8
CREATE DATABASE  `wordpress` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# utf8mb4
CREATE DATABASE  `Yearning` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

进入mysql,输入 show variables like “%char%”; 查看当前数据库编码:

方法二:修改/etc/my.cnf 文件
[client]
default-character-set = utf8mb4[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci[mysql]
default-character-set = utf8mb4

然后,重启Mysql服务:

`/etc/init.d/mysqld stop /etc/init.d/mysqld start`

Yearning 下载

Yearning-go 提供二进制下载包

下载地址 https://github.com/cookieY/Yearning/releases

请选择最新版本 在 Assets 中选择 Yearning-x.x.x.linux-amd64.zip 包进行下载

如需进行代码修改或自己编译请移步至二次开发页面

Yearning 目录结构

1.填写配置文件

cat conf.toml
[Mysql]
Db = "Yearning"
Host = "127.0.0.1"
Port = "3306"
Password = "xxxx"
User = "root"[General]   #数据库加解密key,只可更改一次。
SecretKey = "dbcjqheupqjsuwsm"

关于 SecretKey

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

使用帮助

./Yearning --help

2.初始化及安装

./Yearning install

如要再次安装,请先把 yearning 库下所有表删除,否则重复执行无效

初始化成功!
初始化成功!
用户名: admin
密码:Yearning_admin
请通过./Yearning run 运行,默认地址:http://<host>:8000

3.启动服务

默认启动

./Yearning run

参数启动

./Yearning run --push "172.27.80.35" -port "8000"root@192:/usr/local/Yearning# ./Yearning run --port "8008" #修改端口

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

默认账号/密码:admin/Yearning_admin

docker安装采用本地mysql数据库

Yearning 是基于[Inception](https://so.csdn.net/so/search?q=Inception&spm=1001.2101.3001.7020)的web可视化SQL审核平台,其本身只提供可视化交互页面并不具备sql审核的能力。所以必须搭配Inception一起使用。 Inception 安装参考 [MySQL 审核工具 Inception](https://blog.csdn.net/kk185800961/article/details/84863216)。

创建数据库

CREATE DATABASE Yearning CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
grant all on Yearning.* to 'yearning'@'%' identified by 'sMHcsff32wUv38';

MySQL里的表介绍:

mysql> show tables;
+----------------------------+
| Tables_in_yearning         |
+----------------------------+
| core_accounts              |      # 保存用户信息
| core_auto_tasks            |      # 自动任务
| core_data_sources          |      # 数据源
| core_global_configurations |      # 管理--设置详细信息
| core_graineds              |      # 用户权限
| core_query_orders          |      # 查询审计记录
| core_query_records         |      # 查询审计旁边的详细记录
| core_role_groups           |      # 权限组
| core_rollbacks             |      # 回滚sql
| core_sql_orders            |      # 工单审计记录
| core_sql_records           |      # 工单审计旁边的详细记录
| core_workflow_details      |      # 我的工单
| core_workflow_tpls         |      # 流程模板
+----------------------------+
13 rows in set (0.01 sec)

启动

方式一
docker run -d   --name yearning   --restart always   -p 8000:8000   -e MYSQL_USER=yearning   -e MYSQL_ADDR=192.168.2.202:3306   -e MYSQL_PASSWORD=sMHcsff32wUv38   -e MYSQL_DB=Yearning   -e TZ="Asia/Shanghai"   test/yearning:latest
方式二
docker run -d \--name yearning \--restart always \-p 8000:8000 \-e MYSQL_USER=yearning \-e MYSQL_ADDR=xxxxx:3306 \-e MYSQL_PASSWORD=sMHcsff32wUv38 \-e MYSQL_DB=Yearning \-e TZ="Asia/Shanghai" \test/yearning:latest

默认密码:admin/Yearning_admin

images镜像

搭建完成

docker-compose搭建yearningSQL审计平台

准备工作

1.关闭防火墙和selinux

2.安装好docker

安装docker-compose

[root@localhost ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.27.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@localhost ~]# sudo chmod +x /usr/local/bin/docker-compose
[root@localhost ~]# docker-compose version
docker-compose version 1.27.1, build 509cfb99
docker-py version: 4.3.1
CPython version: 3.7.7
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019

创建目录

mkdir -p /data/docker/mysql/3306/data/db
mkdir -p /data/docker/var/run/
mkdir -p /data/docker/mysql/3306/data/conf
touch /data/docker/var/run/mysql-3306.sock

编写docker-compose.yaml文件

root@debian:/yearning# docker images |grep yearning
test/yearning                   latest    3bd14792c8f1   5 months ago    29.4MB
version: '3.5'services:mysql:image: mysql:5.7container_name: yearning-mysqlvolumes:- /data/docker/mysql/3306/data/db:/var/lib/mysql/- /data/docker/var/run/mysql-3306.sock:/var/run/mysql.sock- /data/docker/mysql/3306/data/conf:/etc/mysql/conf.dports:- 3306:3306restart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: yearningMYSQL_USER: yearningMYSQL_PASSWORD: 123456TZ: Asia/Shanghaicommand:- --character-set-server=utf8mb4- --collation-server=utf8mb4_unicode_ciyearning:image: test/yearning:latestcontainer_name: yearning-webenvironment:MYSQL_USER: yearningMYSQL_PASSWORD: 123456MYSQL_ADDR: mysqlMYSQL_DB: yearningports:- 8000:8000depends_on:- mysqlrestart: always

启动
docker-compose up -d

访问

账号:admin
密码:Yearning_admin

三、基本使用

首先当然是登陆界面,登陆的默认账号密码在初始化的时候已经提示:用户名: admin密码:Yearning_admin。Yearning推荐使用Chrome浏览器。

服务更新

Yearning采用自动表结构同步 无需手动更新表结构。只需停止原服务并替换安装包后重新启动即可

在一些特殊的升级情况中(破坏性变更)需要手动进行数据同步操作.如在版本更新公告中并无提示破坏性升级则无视以下命令!

./Yearning migrate
进来后是首页

首页中可以看到当前的用户数、数据源、工单数、查询数、个人信息、工单提交统计、高频库、以及工单趋势。

历史的工单

在我的工单界面可以看到历史的工单,执行状态,执行信息,是否备份等等。。

DML审核

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

数据库管理

添加/编辑/删除 数据源

用户权限

基础设置和进阶设置

审核规则

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

二级审核流程:

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

多级审核流程:

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

设置SQL检测规则

使用流程

打开管理-用户,先来创建提交人和审核人用户

打开管理-数据库,添加要操作的数据库信息

打开管理-权限组,勾选数据库

打开管理-流程模板

打开管理-审核规则,按照企业要求设定审核条件

设置完毕需要给用户授权数据库

三,用户提交工单

用户使用管理员分配的用户名和密码登录

工单提交

查看已提交的工单并通知管理员进行审核

管理理员用户收到工单并执行

就可以查看到数据库中的表,建好了。

yearning相关报错排查


1-排查yearning-SQL审核问题遇到问题
问题一:docker-compose启动的yearning,访问web出现登陆不上默认账号admin
解决方法:查看docker容器 logs日志,报错没有配置对mysql数据库问题二:docker-compose启动的yearning,访问web出现登陆不上默认账号admin
解决方法:docker-compose启动的mysql,访问连接不到,解决方法暂时更换成本地mysql数据库1-debian10安装非docker版本数据库
2-授权本地mysql-yearning库,用户权限问题原因:
问题-1:mysql启动完成,登陆mysql报错
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No suc
解决方法:查找相关文档是缺少,依赖做软连接也不行,彻底解决  sudo apt install libncurses5问题-2:docker启动的yearning,登陆web账号没有报错,发现yearning版本有点低,缺少权限组管理,
解决方法:更换yearning相关镜像,拉取不到,采取群里找yearning相关最新镜像,已经更换到v2.8版本左右问题-3:更换yearning-v2.8版本镜像,出现登陆web账号提示账号密码不正确
解决方法:查看相关mysql表,没有插入相关账号权限字段,最后原因 创建yearning库 是区分大小写的Yearning

陆不上默认账号admin
解决方法:docker-compose启动的mysql,访问连接不到,解决方法暂时更换成本地mysql数据库

1-debian10安装非docker版本数据库
2-授权本地mysql-yearning库,用户权限

问题原因:
问题-1:mysql启动完成,登陆mysql报错
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No suc
解决方法:查找相关文档是缺少,依赖做软连接也不行,彻底解决 sudo apt install libncurses5

问题-2:docker启动的yearning,登陆web账号没有报错,发现yearning版本有点低,缺少权限组管理,
解决方法:更换yearning相关镜像,拉取不到,采取群里找yearning相关最新镜像,已经更换到v2.8版本左右

问题-3:更换yearning-v2.8版本镜像,出现登陆web账号提示账号密码不正确
解决方法:查看相关mysql表,没有插入相关账号权限字段,最后原因 创建yearning库 是区分大小写的Yearning


Yearning-SQL审核平台相关推荐

  1. videojs默认显示controls 按钮功能失效_一文看懂Yearning SQL审核平台功能模块设计...

    概述 Yearning SQL审核平台目前兼容99%的Mysql 标准SQL语法. 已知不支持的语句类型有: 复杂的查询语句(多表,多函数,非必现.并不是所有复杂语句不支持) create table ...

  2. Yearning SQL审核平台部署与使用 详细步骤【生产环境】

    文章目录 前言 版本选择 一.数据库环境准备 1.卸载自带的mysql源 2.安装mysql-5.7.38 3.登录数据库并设置密码策略修改默认密码 4.创建Yearning要使用的数据库 二.部署Y ...

  3. Linux系统之部署Yearning SQL审核平台

    这里写目录标题 一.Yearning介绍 1.1 Yearning简介 1.2 Yearning特点 1.3 Yearning功能 二.本地环境介绍 2.1 本地环境规划 2.2 本次实践介绍 三.检 ...

  4. Yearning sql审核平台docker化布署

    在一个云主机centos 7上布署线上环境和开发开发两套审核平台. 1.下载yearning sql安装文件: git clone https://github.com/cookieY/Yearnin ...

  5. Yearning SQL审核平台使用分享

    1 遇到的问题 (1)发版小心谨慎.新版本发版(SQL由开发环境转入测试环境.测试环境迁移正式环境)经常一些SQL语句忘记执行,导致花大量时间定位bug,最终发现是sql引起的. (目前基于人工记录的 ...

  6. docker 安装部署Yearning SQL 审核平台

    一.安装Inception (sql审核的核心组件) 启动一个数据库docker run --name pwc-mysql -e MYSQL_ROOT_PASSWORD=xxxx -p 3308:33 ...

  7. Yearning v1.4.2 发布,SQL审核平台

    Yearning SQL审核平台 v1.4.2发布了. Yearning 是基于inception的web端SQL审核平台,可为dba提供流程化规范化的SQL提交流程.具有审核,审计,查询,多权限划分 ...

  8. 推荐!非常好用的sql审核平台——Yearning

    文章目录 为什么需要sql审核平台? Yearning - 自动化, SQL审核 为什么需要sql审核平台? 在一个系统协同开发时,经常会有数据表的变动,新增字段.修改数据.插入数据等等.一般会将这些 ...

  9. SQL审核平台-Yearning部署与使用

    SQL审核平台Yearning部署 Yearning优势: Yearning SQL 审计平台 基于Vue.js与Django的整套mysql-sql审核平台解决方案.提供基于Inception的SQ ...

  10. Yearning 介绍(SQL审核平台)

    介绍 Yearning SQL 审计平台 基于Vue.js与Django的整套mysql-sql审核平台解决方案.提供基于Inception的SQL检测及执行. GitHub:https://gith ...

最新文章

  1. Could not create the view: An unexpected exception was thrown. Myeclipse空间报错
  2. AngularJs在IE10,11中的一个坑。
  3. mysql为什么采用b树_为什么MongoDB采用B树索引,而Mysql用B+树做索引
  4. 让JTextField添加“自动完成”功能
  5. html如何设置字符类型,html 空格字符类型
  6. 【转】刨根究底字符编码之三——字符编码的由来
  7. Python的from import和import的区别
  8. Java ClassLoader getSystemClassLoader()方法与示例
  9. 【备忘】conda环境常用配置命令
  10. [汇编与C语言关系]1.函数调用
  11. 搭建DNS服务,正向解析域名
  12. 官网jquery压缩版引用地址
  13. Atitit uri url urn 的概念区别 与联系 目录 1.1. 概念图 uri包括url和urn。。Urn一般是相对路径。。。 1 1.2. 统一资源名称 (Uniform Resourc
  14. 【kvm虚拟化详解01】-虚拟化概述和主流方案介绍
  15. 史上最简便的可以直接用的登录验证码攻略(前后端都有)
  16. 地方棋牌游戏里的家乡情结
  17. Java | MySQL Emoji表情写入数据库时报错问题解决,Incorrect string value: ‘\xF0\x9F\x98\x84\xF0\x9F...‘ for column
  18. java-IO流(1)-IO流和File类的介绍
  19. MySQL:查询每个部门的员工小时平均工资(显示部门名称、部门员工小时平均 工资)
  20. 【缺陷检测】基于形态学实现印刷电路板缺陷检测技术附matlab代码

热门文章

  1. CISP-PTE综合题(一)
  2. .Net C# delegate 委托
  3. python中wraps是什么意思_Python的wraps修饰器详解
  4. 字数统计方式统计字数(简单版)中文算1个,英文算0.5个,全角字符算1个,半角字符算0.5个。
  5. 2021年个人年终工作总结
  6. Excel Vba范例
  7. github或者gitee上使用git clone项目到本地的方法(解决下载速度过慢或者无法下载的问题)
  8. 算法笔记:加勒比海盗船---最优装载问题 如何将最多的宝物装上船 贪心求解 C++
  9. Android-Universal-Image-Loader源码知识笔记
  10. ro手游服务器维护公告,《仙境传说RO守护永恒的爱》7月29日停服维护公告