Archery:一个免费开源的一站式SQL审核查询平台

Archery:一个免费开源的一站式SQL审核查询平台
最新回答
浮世

2021-01-23 18:27:54

Archery 是一个免费开源的一站式 SQL 审核查询平台,基于 Python 开发,遵循 Apache 2.0 协议,支持多种数据库,提供 SQL 查询、审核、优化、实例管理及可视化等功能,适用于提升数据库操作的安全性、效率和规范性。

功能特性
  • 跨平台支持Archery 提供基于浏览器的访问方式,服务端支持多种部署环境,包括 Linux、macOS、Windows、Docker、Kubernetes,满足不同场景的部署需求。

  • 多数据库兼容支持主流数据库及部分大数据引擎的审核管理,涵盖 MySQL、SQL Server、Oracle、PostgreSQL、MongoDB、Redis、ClickHouse、Doris、Cassandra、ODPS、Phoenix,覆盖关系型与非关系型数据库。

  • SQL 查询管理

    通过工作流控制查询授权,支持库表级权限限制、授权时间及结果集大小限制。

    提供动态查询脱敏功能,保护敏感数据。

    支持前台管理用户权限,包括修改、维护及查询日志审计。

    查询结果可导出,并记录完整操作日志。

  • SQL 审核与执行

    MySQL 实例:集成 Inception/goInception 实现审核、执行、备份一体化流程。

    非 MySQL 实例:通过工单提交与执行,依托工作流实现流程化管理。

    支持审批与执行角色分离,自动审批高危语句驳回,并适配多环境(如 test→beta→ga)的快速上线需求。

    工单审核通过后可选择定时执行或立即执行。

  • SQL 优化建议基于 PT 工具收集慢日志,结合 SQLAdvisor、SOAR、SQLTuning 等工具提供全方位优化建议,帮助提升查询性能。

  • 实例管理功能包括会话管理、数据库管理、账号管理及参数配置,覆盖数据库运维的核心需求。

  • 工具插件扩展内置 PTArchiver、Binlog2SQL、My2SQL、SchemaSync 等实用工具,支持数据归档、Binlog 解析、同步校验等场景。

  • 资源与权限隔离

    资源(项目)组:支持自定义分组,管理关联对象,实现审批流程、实例配置及消息通知的资源隔离。

    权限(角色)组:权限可分配至用户或权限组,独立控制审核、执行等操作,支持精细化权限管理。

  • 多层级工作流审批流程支持多层级、多用户配置,并隔离资源组,不同工单类型可设置差异化审批层级。

  • 动态配置管理系统配置项及工作流审批流程可通过前端页面实时修改,无需重启服务即可生效。

  • 消息通知集成支持 钉钉、企业微信、邮件 通知,及时推送工单状态变化,提升协作效率。

  • 数据可视化统计使用 pyecharts 实现工单、查询维度的可视化统计,辅助决策与问题排查。

  • API 开放接口提供 REST API,方便与第三方系统集成,扩展平台应用场景。

下载与安装

推荐使用 Docker 及 Docker Compose 部署,步骤如下:

  1. 下载源代码访问

    GitHub Releases
    下载最新版本,解压后进入 src/docker-compose 目录。

  2. 启动服务

    # 启动容器docker compose -f docker-compose.yml up -d# 初始化表结构docker exec -ti archery /bin/bashcd /opt/archerysource /opt/venv4archery/bin/activatepython3 manage.py makemigrations sql python3 manage.py migrate# 初始化数据python3 manage.py dbshell < sql/fixtures/auth_group.sqlpython3 manage.py dbshell < src/init_sql/mysql_slow_query_review.sql# 创建管理用户python3 manage.py createsuperuser# 重启服务docker restart archery# 查看日志(问题排查)docker logs archery -f --tail=10# 或查看本地日志文件logs/archery.log
  3. 访问平台启动后通过

    http://127.0.0.1:9123/
    访问,输入创建的管理员账号登录。

总结

Archery 不仅是一个 SQL 查询工具,更是一个集 审核、执行、优化、备份恢复 于一体的综合性数据库管理平台。其开源特性、多数据库支持及丰富的功能模块,使其成为企业提升数据库操作安全性与效率的理想选择。官方网站:

https://archerydms.com/