Yearning:一个免费开源的SQL审核平台
Yearning 是一款专为 MySQL 设计的开源、轻量级 SQL 审核平台,可以通过自动化的审核流程、细粒度的权限管理和完善的消息推送机制提升数据库操作的规范性、安全性和运维效率。
Yearning 项目后端采用 Go 语言实现,前端采用 Vue.js 框架实现,基于 AGPL-3.0 开源许可,源代码同时托管在 GitHub 和 Gitee:
- https://github.com/cookieY/Yearning
- https://gitee.com/cookieYe/Yearning
功能特性
- AI 助手:通过 AI 助手提供实时 SQL 优化建议,提升 SQL 性能。同时支持文本到 SQL 的转换,允许用户输入自然语言并接收优化后的 SQL 语句。
- SQL 查询:通过 SQL 语法高亮和自动补全功能提高查询编写效率。这些功能帮助用户在视觉上区分 SQL 查询的不同部分,如关键字、表名、列名和运算符,使阅读和理解查询结构变得更容易。
- SQL 审计:创建具有审批工作流和自动语法检查的 SQL 审计工单。验证 SQL 语句的正确性、安全性和合规性。同时为 DDL/DML 操作自动生成回滚语句,并提供全面的历史记录以便追溯。
- 查询审计:审计用户查询,限制数据源和数据库,并匿名化敏感字段。查询记录被保存以供将来参考。
-
检查规则:自动语法检查器支持多种检查规则,适用于大多数自动检查场景。
-
隐私保护:Yearning 是一个本地部署的开源解决方案,确保数据库和 SQL 语句的安全。它可以提供加密机制以保护敏感数据,即使在未经授权的访问情况下也能确保数据安全。
-
基于角色的访问控制(RBAC):创建和管理具有特定权限的角色,根据用户角色限制对查询工单、审计功能和其他敏感操作的访问。
-
消息推送:支持通过邮件、钉钉机器人等渠道推送工单通知。
下载安装
推荐使用 Docker Commpose 进行安装体验,首先创建一个 docker-compose.yml 文件,内容如下:
services:yearning:image: yeelabs/yearning:latestenvironment:MYSQL_USER: yearningMYSQL_PASSWORD: ukC2ZkcG_ZTebMYSQL_ADDR: mysqlMYSQL_DB: yearningSECRET_KEY: dbcjqheupqjsuwsmIS_DOCKER: is_dockerports:- 8000:8000# 首次使用请先初始化# command: /bin/bash -c "./Yearning install && ./Yearning run"depends_on:- mysqlrestart: alwaysmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: ukC2ZkcG_ZTebMYSQL_DATABASE: yearningMYSQL_USER: yearningMYSQL_PASSWORD: ukC2ZkcG_ZTebcommand:- --character-set-server=utf8mb4- --collation-server=utf8mb4_general_civolumes:- ./data/mysql:/var/lib/mysql# 默认账号:admin,默认密码:Yearning_admin
然后执行以下命令进行安装:
docker-compose up -d
启动服务之后,通过浏览器访问以下地址:
http://127.0.0.1:8000
默认账号/密码:admin/Yearning_admin。
参考文档:
https://next.yearning.io/zh/
总结
Yearning 是一个专为数据库管理员(DBA)和开发人员设计的 MySQL 审计平台,专注于隐私和效率,为 SQL 检测和查询审计提供了一个直观且安全的环境。