赞
踩
archeryd-SQL审核查询平台
https://archerydms.com/
yearning-SQL审核查询平台
http://yearning.io/
Yearning 拥有多项实用型功能。助力DBA提升工作自动化,标准化。
自动化SQL语句审核,可对SQL进行自动检测并执行
DDL/DML语句执行后自动生成回滚语句
审核/查询 审计功能
支持LDAP登录/钉钉及邮件消息推送
支持自定义审核工作流
支持细粒度权限分配
Yearning 目前兼容99%的Mysql 标准SQL语法。 但由于审核逻辑等因素的限制,对一些SQL语句并不能保证得到正确的反馈 已知不支持的语句类型有:
复杂的查询语句(多表,多函数,非必现。并不是所有复杂语句不支持)
外键相关语句
不支持跨库DML语句的回滚
存储过程/触发器
仅代表当前语法支持进度,并不作为未来完成度.
SQL 查询 查询工单 导出 自动补全,智能提示 查询语句审计 查询结果脱敏 SQL 审核 流程化工单 SQL语句语法检测 根据规则检测SQL语句合规性 自动生成DDL/DML回滚语句 历史审核记录 推送 E-mail 工单推送 钉钉 webhook 机器人工单推送 用户权限及管理 角色划分 基于用户的细粒度权限 注册 其他 todoList LDAP 登录 动态审核规则配置 自定义审核层级 AutoTask 自动执行
使用及部署遇到了些困惑?欢迎加入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 等其他魔改版本)
# 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%”; 查看当前数据库编码:
[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-go 提供二进制下载包
下载地址 https://github.com/cookieY/Yearning/releases
请选择最新版本 在 Assets 中选择 Yearning-x.x.x.linux-amd64.zip 包进行下载
如需进行代码修改或自己编译请移步至二次开发页面
cat 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 位 如长度不是16位将会导致无法新建数据源**
**特别注意:**
**此 key 仅可在初次安装时更改!之后不可再次更改!如再次更改会导致之前已存放的数据源密码无法解密,最终导致无法获取相关数据源信息**
./Yearning --help
./Yearning install
如要再次安装,请先把 yearning 库下所有表删除,否则重复执行无效
初始化成功!
用户名: admin
密码:Yearning_admin
请通过./Yearning run 运行,默认地址:http://<host>:8000
默认启动
./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
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> 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
准备工作
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.7 container_name: yearning-mysql volumes: - /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.d ports: - 3306:3306 restart: always environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_DATABASE: yearning MYSQL_USER: yearning MYSQL_PASSWORD: 123456 TZ: Asia/Shanghai command: - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci yearning: image: test/yearning:latest container_name: yearning-web environment: MYSQL_USER: yearning MYSQL_PASSWORD: 123456 MYSQL_ADDR: mysql MYSQL_DB: yearning ports: - 8000:8000 depends_on: - mysql restart: always
docker-compose up -d
账号:admin
密码:Yearning_admin
首先当然是登陆界面,登陆的默认账号密码在初始化的时候已经提示:用户名: admin密码:Yearning_admin。Yearning推荐使用Chrome浏览器。
Yearning采用自动表结构同步 无需手动更新表结构。只需停止原服务并替换安装包后重新启动即可
在一些特殊的升级情况中(破坏性变更)需要手动进行数据同步操作.如在版本更新公告中并无提示破坏性升级则无视以下命令!
./Yearning migrate
首页中可以看到当前的用户数、数据源、工单数、查询数、个人信息、工单提交统计、高频库、以及工单趋势。
在我的工单界面可以看到历史的工单,执行状态,执行信息,是否备份等等。。
DML相关SQL提交审核,SQL语法高亮/自动补全
添加/编辑/删除 数据源
Yearning采用二级/多级的审核模式,可根据实际需求变更相关使用流程,执行人角色必须在开启多级审核之后才可指定(开启请前往设置页面),如果需要将多级审核改为二级审核,请先确保所有多级审核的工单都已确认执行。否则未执行工单将无法找回。当多级审核关闭后系统并不会自动将角色为执行人的用户重置角色,请自行重置相应用户角色
二级审核流程:
多级审核流程:
设置SQL检测规则
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。