【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!

玩技站长
玩技站长
管理员, Keymaster
11055
文章
0
粉丝
软件头条评论32字数 1655阅读5分31秒阅读模式

项目简介:

这是一个强大的SQL审核与数据分析平台,专为数据分析师和数据库管理员(DBA)设计。它定位于SQL审核查询平台,旨在提升DBA的工作效率,支持多数据库的SQL上线和查询,同时提供丰富的MySQL运维功能。
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图
它的功能特性有:
SQL审核:所有执行的SQL语句都会被记录并可追溯,方便进行性能优化和问题排查。数据查询:提供了一套简洁直观的SQL编辑器,具备代码补全和错误提示功能,极大地提高了编写效率。报表生成:内置图表组件,可以快速将查询结果转化为可视化图表,便于数据解读和汇报。权限管理:通过RBAC(Role-Based Access Control)机制,实现对用户和资源的精细控制,确保数据安全。数据可视化:业务人员可以利用它自定义查询并生成报表,减少对IT部门的依赖。集成化:它可以无缝集成到现有的DevOps工具链中,如Jenkins、Git等,提升整体工作效率。数据分析:数据工程师和分析师可以直接在Archery上编写SQL进行数据探索,无需频繁切换工具。数据安全:通过SQL审计功能,DBA可以监控数据库的操作,防止恶意或误操作导致的数据泄露。【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图1
看看它的一些功能截图
你可以在页面上进行生产所需的sql提交,以便进行审核【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图2
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图3
还可以对sql进行分析
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图4
你可以在线编辑sql进行查询,编辑器带自动补全功能,支持sql美化,计划分析
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图5
还有sql优化工具,针对sql提出sql优化建议
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图6
慢日志显示功能
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图7
mysql示例管理,可新增各数据库实例,并且分配对于角色,组等权限
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图8
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图9
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图10
还可以进行数据库数据同步
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图11
sql审计功能
【开源程序】5.8K Star一站式的 SQL 审核查询平台!强大灵活!插图12
总的来说,这是一款强大、高效且完全免费的开源在线SQL审核查询工具,旨在提升 DBA的工作效率,它提供了一站式的SQL查询、审核、性能分析及优化服务,深度融合了先进的查询解析算法与智能化的规则引擎,能够对各类复杂的SQL语句进行深度剖析与精准识别。支持主流数据库的 SQL 上线和查询,同时支持丰富的 MySQL 运维功能,所有功能都兼容手机端操作,专为数据库管理和运维人员量身打造,旨在提升团队协作效率,确保数据库操作的安全性与准确性。项目名字叫做——Archery。有兴趣同学或者企业可以去试用下,看看是否满足你们的需求,个人觉得这个系统是非常适合企业使用的。

项目地址:

登录可见
本内容仅对登录会员开放,介意请勿使用感谢您的配合。

docker部署

安装docker

curl -fsSL https://get.docker.com -o get-docker.sh | sudo sh
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

准备运行配置

具体可参考:https://github.com/hhyo/Archery/tree/master/src/docker-compose文章源自玩技e族-https://www.playezu.com/841689.html

docker-compose.yml文件内的services可按照本身的运行环境来调整,同时注意检查版本号是否正确,比如说外部已经装好了mysql、redis、inception,就可以将对应的services删除,但是需要注意修改settings.py文件的相关配置,具体可以参考修改配置文章源自玩技e族-https://www.playezu.com/841689.html

启动

下载 Releases文件,解压后进入docker-compose文件夹文章源自玩技e族-https://www.playezu.com/841689.html

# 启动
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

# 退出容器
exit

# 日志查看和问题排查
docker logs archery -f --tail=50

访问

http://127.0.0.1:9123文章源自玩技e族-https://www.playezu.com/841689.html

启动后配置

在启动后 Archery 有一些配置(如Inception , 资源组, 权限组等)需要按需配置, 请详细阅读 配置项说明 , 按照自己的需要进行配置文章源自玩技e族-https://www.playezu.com/841689.html

配置SSL/TLS

步骤

  1. 准备nginx证书 请自行准备
  2. 上传证书
    目录自定义。
    比如:docker-compse目录下,创建nginx/cert目录。
  3. 修改nginx配置
    增加443端口监听,并将http重定向至https端口。
  4. django配置settings.py
  5. 重新运行archery容器
  6. 验证
    注意:要清除cookie缓存。

示例

第1/2步省略
测试是在内网使用,没有域名,使用了私网ip,自签名证书。文章源自玩技e族-https://www.playezu.com/841689.html

  1. 修改nginx配置
server{
    listen 9123; #监听的端口
    server_name archery;
    client_max_body_size 20M;

    proxy_read_timeout 600s;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;

    return 301 https://$host$request_uri;
}

# Settings for a TLS enabled server.
server{
    listen 443 ssl; #监听的端口
    client_max_body_size 20M;
    proxy_read_timeout 600s;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_certificate /etc/nginx/cert/192.168.1.3_chain.crt; # 配置证书文件地址
    ssl_certificate_key /etc/nginx/cert/192.168.1.3_key.key; # 配置密钥文件地址

    location / {
      proxy_pass http://127.0.0.1:8888;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Host  $host:9123;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /static {
      alias /opt/archery/static;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}
  1. django配置settings.py
    增加如下安全配置项:
SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
SECURE_SSL_REDIRECT = True                  # 将所有非SSL请求永久重定向到SSL
SESSION_COOKIE_SECURE = True                # 仅通过https传输cookie
CSRF_COOKIE_SECURE = True                   # 仅通过https传输cookie
SECURE_HSTS_INCLUDE_SUBDOMAINS = True       # 严格要求使用https协议传输
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_SECONDS = 60
SECURE_CONTENT_TYPE_NOSNIFF = True          # 防止浏览器猜测资产的内容类型
CSRF_TRUSTED_ORIGINS = ['192.168.1.3']
CORS_ORIGIN_WHITELIST = (
'192.168.1.3',
)
  1. 重新运行archery容器
    新建一个yml配置,单独重建archery容器:
version: '3'

services:
  archery:
    image: hhyo/archery:v1.8.5
    container_name: archery
    restart: always
    ports:
      - "9123:9123"
      - "443:443"
    volumes:
      - "./archery/settings.py:/opt/archery/archery/settings.py"
      - "./archery/soar.yaml:/etc/soar.yaml"
      - "./archery/docs.md:/opt/archery/docs/docs.md"
      - "./archery/downloads:/opt/archery/downloads"
      - "./archery/sql/migrations:/opt/archery/sql/migrations"
      - "./archery/logs:/opt/archery/logs"
      - "./archery/keys:/opt/archery/keys"
      - "./nginx/nginx.conf:/etc/nginx/nginx.conf"
      - "./nginx/cert:/etc/nginx/cert"
    entrypoint: "dockerize -wait tcp://mysql:3306 -wait tcp://redis:6379 -timeout 60s /opt/archery/src/docker/startup.sh"
    environment:
      NGINX_PORT: 9123
    networks:
      - "archery-184_default"

networks:
  archery-184_default:
    external: true
  1. 验证
    重建archery容器后,清除浏览器cookie缓存验证。
文章源自玩技e族-https://www.playezu.com/841689.html
 
匿名

发表评论

匿名网友
确定

拖动滑块以完成验证