在当今数据驱动的时代,数据库操作的安全性和规范性愈发重要。Yearning作为一款开源的MySql审核平台,为开发者和数据库管理员提供了一套完善的SQL审核解决方案。
什么是Yearning?
Yearning是一款基于Go语言开发的、强大且本地部署的可视化SQL审核平台,致力于解决企业级数据库SQL审核与执行的需求,提供无缝的SQL检测和查询审计,专注于隐私和效率。它不依赖于任何第三方审核工具,内部自主实现了审核与回滚逻辑,仅需依赖MySql数据库即可运行。
功能特性
AI助手:利用大型语言模型提供SQL优化建议和文本到SQL的转换。无论是使用默认还是自定义提示词,AI助手都能通过优化语句和将自然语言输入转换为SQL查询来提升SQL性能。

SQL审计:创建具有审批工作流和自动语法检查的SQL审计工单。验证SQL语句的正确性、安全性和合规性。为DDL/DML操作自动生成回滚语句,并提供全面的历史记录以便追溯。

查询审计:通过 SQL 语法高亮和自动补全功能提高查询编写效率。这些功能帮助用户在视觉上区分 SQL 查询的不同部分,如关键字、表名、列名和运算符,使阅读和理解查询结构变得更容易。

检查规则:自动语法检查器支持多种检查规则,适用于大多数自动检查场景。
隐私保护:本地部署的开源解决方案,确保您的数据库和SQL语句的安全。它包括加密机制以保护敏感数据,即使在未经授权的访问情况下也能确保数据安全。
RBAC(基于角色的访问控制):创建和管理具有特定权限的角色,根据用户角色限制对查询工单、审计功能和其他敏感操作的访问。
安装与部署
手动安装:下载最新发布的安装包并解压,在安装之前,请确保已配置./config.toml
config.toml配置文件
[Mysql]
Db = "Yearning"
Host = "127.0.0.1"
Port = "3306"
Password = "xxxx"
User = "root"
[General] # Database encryption/decryption key, can only be changed once.
SecretKey = "dbcjqheupqjsuwsm"
LogLevel = "debug" # Options: debug, info, warn, error - Choose the log display level
Lang = "en_US" # Options: en_US, zh_CN - Choose the language for Yearning
关于secretKey
SecretKey用作令牌/数据库密码加密/解密的盐。
建议在首次安装Yewarning之前更改主SecretKey(如果不更改可能会带来安全隐患)。
SecretKey的格式:大小写字母均可,长度必须是16位字符,若长度不足16位,将导致无法创建新的数据源。
重要提示:此密钥只能在初始安装期间更改!之后无法更改!之后若更改将导致现有数据源密码无法解密,最终导致无法访问相关数据源信息。
初始化和安装
./Yearning install
如果需要重新安装,请先删除数据库下的所有表;否则重复执行无效。
启动服务
Default start
./Yearning run
Start with Parameters
./Yearning run --push "127.0.0.1" --port "8000"
请注意:
由于Yearning部分功能使用了websocket通信,如果通过反向代理访问Yearning,请确保代理层打过去websocket协议。
例如:对于nginx,配置proxy_http_version 1.1;proxy_set_header Upgrade $http_upgradeproxy_set_header Connection "upgrade";
服务启动后,通过浏览器访问以下地址:
http://127.0.0.1:8000

默认账号密码:admin/Yearning_admin
写在最后:
Yearning是一个专为数据库管理员(DBA)和开发人员设计的MySQL审计平台,专注于隐私和效率,为SQL检测和查询审计提供了一个直观且安全的环境。
开源项目Yearning的github地址: