查看原文
其他

一站式的 SQL 审核查询平台

TJ TJ君 2022-07-01

大家好,我是TJ

关注TJ君,回复“武功秘籍”免费获取计算机宝典书籍

TJ君将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU

今天TJ君原本看到一个有趣的跟很多程序猿有关的开源项目,想和大家一起来聊一聊,到底是什么有趣的呢先留点悬念,以后再说,因为刚才TJ君又看到了一个更加实用的开源项目,一站式的 SQL 审核查询平台,Archery

Archery是一个SQL审核查询平台,其作用在于有效提升DBA的工作效率,并且可以支持多数据库的SQL上线和查询,同时支持丰富的MySQL运维功能,最后还有一点,就是它的所有功能都可以支持通过手机端进行操作。

Archery的主要功能包括SQL查询、SQL审核、SQL执行、备份、数据字典、优化、实例管理、日志、账号管理、会话管理、参数管理等等等

并且主要功能对于主流的数据库支持的都还不错:

想使用Archery的话,有以下几个步骤:

  • 部署

下载 Releases文件,解压后进入docker-compose文件夹

#启动
docker-compose -f docker-compose.yml up -d

#表结构初始化
docker exec -ti archery /bin/bash
cd /opt/archery
source /opt/venv4archery/bin/activate
python3 manage.py makemigrations sql  
python3 manage.py migrate

#数据初始化
python3 manage.py dbshell<sql/fixtures/auth_group.sql
python3 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
  • 修改配置项

添加实例,实例类型分为主库/从库,实例都需要关联资源组,才能被关联资源组的用户访问,通过支持上线、支持查询的标签来控制实例是否在SQL上线/查询中显示,要使用上线和查询的实例需要关联标签

  • 添加资源组

资源组是一堆资源对象的集合,与用户关联后用来隔离资源访问权限,一般可以按照项目组划分

  • 资源组关联用户/实例

用户必须关联资源组才能访问资源组内的实例资源 - 关联对象管理可以批量关联实例和用户 - 在添加用户和实例的时候也可以批量关联资源组

  • 添加权限

权限组是一堆权限的集合,类似于角色的概念。

对于具体的功能,TJ君稍稍介绍下有关SQL查询、SQL审核、SQL优化的内容。

  • SQL查询

Archery的在线查询模块适用于简单的SQL查询和日常问题排查,通过工作流控制查询权限的申请和审核,并强制对SQL语句进行改写以限制最大查询数量,同时记录所有的查询日志方便审计。

  • SQL审核

Archery的审核功能基于不同数据库的支持,目前MySQL支持比较完整的SQL审核功能,且依赖Inception/goInception工具,oracle、mongodb支持部分审核规则,其他数据库仅支持语句切分和执行,不做审核。

  • SQL优化

使用例如SlowQuery、SQLAdvisor、SQLTuning、SOAR等自动化优化工具。

使用界面清晰易懂:

Archery,还支持各种API接口使用,对于SQL审核方面有需求的小伙伴,可以来看看哦~

点击下方卡片,关注公众号“TJ君

回复“arch2022”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东


往期推荐

浏览网页时智能生成索引小插件
基于JS的数据驱动的节点式编排的流程图组件库,好看!
可监测网页内容变化,并发送异动到微信的实用插件,搭配云盘即使关机也能运行!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存