开源MySQL SQL审核与权限管理平台Yearning的部署与中文化指南
个人名片
🎓作者简介:java领域优质创作者
🌐个人主页:码农阿豪
📞工作室:新空间代码工作室(提供各种软件服务)
💌个人邮箱:[2435024119@qq.com]
📱个人微信:15279484656
🌐个人导航网站:www.forff.top
💡座右铭:总有人要赢。为什么不能是我呢?
- 专栏导航:
码农阿豪系列专栏导航
面试专栏:收集了java相关高频面试题,面试实战总结🍻🎉🖥️
Spring5系列专栏:整理了Spring5重要知识点与实战演练,有案例可直接使用🚀🔧💻
Redis专栏:Redis从零到一学习分享,经验总结,案例实战💐📝💡
全栈系列专栏:海纳百川有容乃大,可能你想要的东西里面都有🤸🌱🚀
开源MySQL SQL审核与权限管理平台Yearning的部署与中文化指南
引言
在团队协作开发中,数据库权限管理和SQL审核是保障数据安全、避免误操作的重要手段。开源工具 Yearning 作为一款轻量级的MySQL SQL审核平台,提供了多级审核、权限控制、操作审计等功能,适合中小型团队使用。本文将详细介绍:
- Yearning的核心功能与优势
- 如何部署Yearning
- 设置中文界面(3种方法)
- 结合代码示例优化团队SQL审核流程
一、Yearning简介
1.1 什么是Yearning?
Yearning 是一款开源的 MySQL SQL审核与权限管理平台,由 Go 语言编写,具有以下特点:
- 轻量易部署(单二进制文件,依赖少)
- 多级审核流程(支持DBA、开发、运维分级审核)
- SQL语法检查(自动识别高危操作)
- 细粒度权限控制(基于RBAC模型)
- 操作审计日志(记录所有SQL执行历史)
1.2 为什么选择Yearning?
| 对比项 | Yearning | Archery | SQLE |
|---|---|---|---|
| 部署难度 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ |
| 中文支持 | 完善 | 完善 | 部分 |
| 权限管理 | 行列级 | 库表级 | 企业级 |
| 适用场景 | 中小团队 | 中大型 | 企业级 |
二、Yearning部署指南
2.1 环境准备
- 服务器:Linux (CentOS/Ubuntu)
- 依赖:MySQL 5.7+/8.0(用于存储Yearning元数据)
- 网络:开放8000端口(默认Web端口)
2.2 安装步骤
(1)下载Yearning
wget https://github.com/cookieY/Yearning/releases/download/v3.0.0/Yearning-go.tar.gz
tar -xzvf Yearning-go.tar.gz
cd Yearning
(2)初始化数据库
-- 在MySQL中创建Yearning所需的数据库
CREATE DATABASE yearning CHARACTER SET utf8mb4;
GRANT ALL PRIVILEGES ON yearning.* TO 'yearning'@'%' IDENTIFIED BY 'your_password';
(3)修改配置文件
编辑 conf.toml:
[mysql]
host = "127.0.0.1"
port = 3306
user = "yearning"
password = "your_password"
db = "yearning"
[General]
SecretKey = "abcd012345678efg"
Hours = 4
QueryClient = true
QueryPort = 3307
LogLevel = "info" # debug,info,warn,error
Lang = "zh_CN" # en_US,zh_CN
(4)启动Yearning
./Yearning install # 初始化表结构
./Yearning run # 启动服务
访问 http://your-server-ip:8000,默认账号:admin,密码:Yearning_admin。
三、设置中文界面(3种方法)
3.1 方法1:通过Web界面切换(推荐)
- 登录后点击右上角 「个人设置」
- 在 Language 选项中选择 「中文」
- 保存后刷新页面即可生效

3.2 方法2:修改配置文件
如果首次部署希望默认中文,编辑 conf.toml:
[global]
language = "zh" # zh-中文, en-英文
重启服务生效:
./Yearning restart
3.3 方法3:Docker环境变量
如果是Docker部署,启动时指定语言:
docker run -d \
-e LANGUAGE="zh" \
-p 8000:8000 \
--name yearning \
container_name/yearning
四、Yearning实战:SQL审核流程
4.1 配置审核规则
在 「审核规则」 页面中,可以自定义SQL规范:
-- 示例:禁止无WHERE条件的UPDATE/DELETE
{
"rule_name": "no_where_update",
"desc": "禁止不带WHERE的UPDATE/DELETE",
"level": "error",
"type": "DML",
"pattern": "(UPDATE|DELETE)(?!.*WHERE).*"
}
4.2 提交SQL工单
开发人员在Web界面提交SQL:
-- 示例:创建用户表
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
DBA会在 「工单审核」 中收到通知并审批。
4.3 自动执行与备份
Yearning支持:
- 自动执行(通过审核后自动运行)
- 备份回滚(对DDL自动生成回滚SQL)
五、权限管理最佳实践
5.1 角色划分
| 角色 | 权限范围 |
|---|---|
| admin | 所有功能 |
| dev | 提交/查询工单 |
| dba | 审核/执行工单 |
5.2 库表权限控制
通过 「权限管理」 页面,可以精确控制用户能访问的库表:
-- 示例:仅允许dev角色访问test_开头的库
GRANT SELECT ON `test_%`.* TO 'dev'@'%';
六、总结
Yearning 是一款适合中小团队的 MySQL SQL审核与权限管理工具,通过本文你可以:
- 快速部署Yearning(10分钟内完成)
- 设置中文界面(3种方法可选)
- 建立规范的SQL审核流程(避免误操作)
- 实现细粒度权限控制(保障数据安全)
进一步优化建议
- 集成LDAP:实现统一账号管理
- 对接Prometheus:监控SQL执行性能
- 自定义插件:扩展审核规则
GitHub地址:https://github.com/cookieY/Yearning
官方文档:https://guide.yearning.io


浙公网安备 33010602011771号