Yearning:一个免费开源的SQL审核平台

Yearning 是一款专为 MySQL 设计的开源、轻量级 SQL 审核平台,可以通过自动化的审核流程、细粒度的权限管理和完善的消息推送机制提升数据库操作的规范性、安全性和运维效率。

Yearning 项目后端采用 Go 语言实现,前端采用 Vue.js 框架实现,基于 AGPL-3.0 开源许可,源代码同时托管在 GitHub 和 Gitee:

功能特性

  • AI 助手:通过 AI 助手提供实时 SQL 优化建议,提升 SQL 性能。同时支持文本到 SQL 的转换,允许用户输入自然语言并接收优化后的 SQL 语句。
  • SQL 查询:通过 SQL 语法高亮和自动补全功能提高查询编写效率。这些功能帮助用户在视觉上区分 SQL 查询的不同部分,如关键字、表名、列名和运算符,使阅读和理解查询结构变得更容易。
  • SQL 审计:创建具有审批工作流和自动语法检查的 SQL 审计工单。验证 SQL 语句的正确性、安全性和合规性。同时为 DDL/DML 操作自动生成回滚语句,并提供全面的历史记录以便追溯。
  • 查询审计:审计用户查询,限制数据源和数据库,并匿名化敏感字段。查询记录被保存以供将来参考。
  • 检查规则:自动语法检查器支持多种检查规则,适用于大多数自动检查场景。

  • 隐私保护:Yearning 是一个本地部署的开源解决方案,确保数据库和 SQL 语句的安全。它可以提供加密机制以保护敏感数据,即使在未经授权的访问情况下也能确保数据安全。

  • 基于角色的访问控制(RBAC):创建和管理具有特定权限的角色,根据用户角色限制对查询工单、审计功能和其他敏感操作的访问。

  • 消息推送:支持通过邮件、钉钉机器人等渠道推送工单通知。

下载安装

推荐使用 Docker Commpose 进行安装体验,首先创建一个 docker-compose.yml 文件,内容如下:

yaml 复制代码
services:
    yearning:
        image: yeelabs/yearning:latest
        environment:
           MYSQL_USER: yearning
           MYSQL_PASSWORD: ukC2ZkcG_ZTeb
           MYSQL_ADDR: mysql
           MYSQL_DB: yearning
           SECRET_KEY: dbcjqheupqjsuwsm
           IS_DOCKER: is_docker
        ports:
           - 8000:8000
        # 首次使用请先初始化
        # command: /bin/bash -c "./Yearning install && ./Yearning run"
        depends_on:
           - mysql
        restart: always

    mysql:
        image: mysql:5.7
        environment:
           MYSQL_ROOT_PASSWORD: ukC2ZkcG_ZTeb
           MYSQL_DATABASE: yearning
           MYSQL_USER: yearning
           MYSQL_PASSWORD: ukC2ZkcG_ZTeb
        command:
           - --character-set-server=utf8mb4
           - --collation-server=utf8mb4_general_ci
        volumes:
           - ./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 检测和查询审计提供了一个直观且安全的环境。

相关推荐
g10565591392 小时前
LAMP博客平台Wordpress实战
android·mysql·nginx·php
我不是疯子是傻子2 小时前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
这个DBA有点耶2 小时前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba
2501_937860943 小时前
MySQL联合查询(多表查询)
数据库·mysql
名字还没想好☜4 小时前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
迷迭香yy4 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB4 小时前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB5 小时前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库
weixin_539446785 小时前
Navicat Premium 17报缺少ODBC驱动
数据库
这个DBA有点耶5 小时前
迁移中的数据一致性挑战:如何确保百万行数据“搬得对”
mysql·架构·dba