SQLE+GitLab-Runner 快速实现 SQL 自动审核

eBPF专题二|史上最强SQL审核工具原理剖析(利用eBPF技术覆盖SQL性能的审核) 传统SQL审核是基于经验规则进行审核,但无法基于线上数据情况进行SQL性能评估,存在性能隐患。DBdoctor利用eBPF技术和外置Cost优化器,准确评估SQL真实性能,推荐最优索引。 阅读详情

介绍

随着 Devops 概念的普及,越来越多的事情都在往自动化方向发展。目前 Devops 可以使用的各类工具非常丰富,包括打包工具 Maven,代码扫描工具 Sonar,部署工具 Docker 等。本文将介绍一个新的可以集成到 Devops 工具链中的应用 SQLE,这个工具弥补了 Devops 中对 SQL 的合规性审核功能。

1.1 基础环境介绍

工具类型工具名称
操作系统CentOS
代码仓库GitLab
Devops工具GitLab-Runner
SQL 审核工具SQLE

1.2 预期效果

在代码提交时自动触发 SQL 的审核任务,并将扫描结果上传。

安装配置

2.1 各工具安装方式

本次主要目的不在各种环境的安装,建议参考以下各官方文档进行安装。

2.2 SQLE 中创建扫描任务

创建完成后我们可以看到这个任务,复制一下里面的访问凭证,后续需要使用这个访问凭证配置我们的 CI/CD,之后我们的扫描结果将会可以在这个任务中查看。

2.3 自动化配置

2.3.1 配置文件

首先需要在项目中,创建一个 .gitliab-ci 文件。这个文件是 Git 触发 GitLab-Runner 的入口,所有流水线任务均在此文件配置。

stages: 
  - sqle

# SQLE 执行扫描
master-deploy:
  image: ubuntu:20.04-ssh
  stage: sqle
  before_script:
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY"
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
    - mkdir -p ~/.ssh
    - chmod 700 ~/.ssh
    - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
    - chmod 644 ~/.ssh/known_hosts
  script:
    - scp -r ../rbac centos@IP:/opt/code/
    - ssh centos@IP "cd /opt/code/ && scannerd mybatis -D /opt/code/rbac/src/main/resources/ -N auto --token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcG4iOiJhdXRvIiwiZXhwIjoxNzI5ODQxODg3LCJpc3MiOiJhY3Rpb250ZWNoIGRtcyIsInVpZCI6IjcwMDIwMCJ9.XBVBlVPGFDp-Isu39pBKgVDpYkr_PKJ-KavbnIB55yI -P 10001"
  only:
    - master
  tags:
    - gitlab-runner

注意:替换 IP

2.3.2 配置简要说明

通过一个 ubuntu:20.04-ssh 容器,将代码上传到我们 SQLE 所在服务器,并执行 SQLE 扫描。

scannerd 是 SQLE 自带的扫描客户端,使用方法如下,其中的 Token 就是上一步中的访问凭证。

[root@sqle-server bin]# ./scannerd mybatis --help
Parse MyBatis XML file

Usage:
  SQLE mybatis [flags]

Flags:
  -D, --dir string         xml directory
  -h, --help               help for mybatis
  -S, --skip-error-query   skip the statement that the scanner failed to parse from within the xml file

Global Flags:
  -H, --host string    sqle host (default "127.0.0.1")
  -N, --name string    audit plan name
  -P, --port string    sqle port (default "10000")
  -A, --token string   sqle token
  • only:表示 GitLab 中的分支
  • tag:表示 GitLab-Runner 的 tag

2.3.3 CI/CD 环境变量配置

CI/CD 执行过程中需要使用 scp 以及 ssh 传输文件调用扫描命令,我们需要给服务器配置证书登录。配置证书登录方式自行查找,这里就说一下在哪里添加变量。

2.3.2 完成

完成以上操作后,就可以在每次提交代码之后,看到对应的 SQL 扫描记录。可以根据扫描情况,确定是否通过审核,是否可以上线。

总结

SQLE 的出现为 Devops 工具链又出了一个很好的工具,避免了一些 SQL 上的性能问题,可以提前识别风险,改善风险,降低上线问题出现的概率。希望 SQLE 以后越来越好!

更多技术文章,请访问:https://opensource.actionsky.com/

关于 SQLE

SQLE 是一款全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。

SQLE 获取

类型地址
版本库https://github.com/actiontech/sqle
文档https://actiontech.github.io/sqle-docs/
发布信息https://github.com/actiontech/sqle/releases
数据审核插件开发文档https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
SQL审核工具Yearning搭建及使用 实际的业务场景中,我们难免会直接对生产库的数据进行修改。很多朋友都是发sql给运维,然后运维执行。过程不可控,出错几率很大。而且没有审核,不知道提交的具体是什么sql,极有可能是删库跑路的sql,哈哈哈。那为了避免这种尴尬呢,就得有审核机制了。而Yearning就是不错的选择。 阅读详情

相关推荐

基于规则引擎的SQL审核工具打造

SQL审核,是DBA工作是极其重要的一项工作,对于DDL,我们可能需要关注表结构设计、字段定义是否合理,对于DML,可能更关注也要关注操作是否合理且无风险(比如不带条件的DELETE这种大杀器),而对于DQL,我们可能需要关注更多的东西,比如不允许SELECT *,不允许超过多少个表的JOIN。这个是笔者最早做的SQL审核工具,使用的时间不长,解决了一部分人工审核的问题,正则表达式的最大问题显然是难于编写复杂的规则,而且维护难,能实现的功能有限。以笔者的经历而言,经历了三个阶段的SQL审核工具建设。

zjcxc(邹建)的Blog - SQL Server 1195

一键集成 SQL 审核到你的 GitLab 和 GitHub CI/CD

Bytebase 提供了多种 SQL 审核模式以应对不同开发团队的工作习惯,在看 Bytebase SQL 审核七十二变中,我们提到 Bytebase 支持用户在数据库变更脚本文件合并入仓库前,自动触发 SQL 审核。本文将手把手带你操作如何将 SQL 审核无缝集成到 GitHub 和 GitLab 的 CI/CD 流中。本文以 GitLab 为例,GitHub 方式类似。操作步骤事先准备开启 B...

DevOps持续集成的博客 548

第八阶段【DBA企业级实战项目】25:SQL审核工具Yearning的部署和使用

SQL审核工具Yearning的部署和使用

weixin_40612128的博客 286

强大免费开源的在线SQL审核查询平台:Archery

Archery:让您的SQL查询精准无误,专业级在线审计与优化工具,开源且免费,为您的数据安全保驾护航!- 精选真开源,释放新价值。

2401_83063795的博客 3814

【黑马点评】项目知识点及面经整理

【黑马点评】项目知识点及面经整理

m0_52031708的博客 6602

opencv去除印章痕迹

今天看到一个很有意思的程序,就是去除票据上的红色印章,觉得很有意思,就把它抄过来记录一下,同时自己也开了一下脑洞。 原来的程序来自:https://www.cnblogs.com/skyfsm/p/7638301.html 可以看到图像效果很不错,下面是源码实现: #include <iostream> #include <opencv2/imgproc/imgpro...

zeng_haoyu的博客 7956

SQL自动审核

一、工具概述 SQL自动审核-自助上线平台,可以让开发自上线,开发提交SQL后就会自动返回优化建议,无需DBA的再次审核,从而提升上线效率,有利于建立数据库开发规范,让DBA从日常繁琐的工作中解放出来。 SQL自动审核主要完成两方面目的: 1、避免性能太差的SQL进入生产系统,导致整体性能降低。 2、检查开发设计的索引是否合理,是否需要添加索引。 思路其实很...

weixin_30436891的博客 280

一篇把 Transport 做到可复制的实战指南:从 CTS 底层表到 LSMW、Variant、Layout、TABU、Query、SAPscript 全对象搬运

本文深入解析SAP系统中的Transport机制,将其视为可审计、可追溯的变更流水线。文章从CTS/Transport Organizer通用方法论和具体对象搬运手法两个层面展开,详细介绍了LSMW项目、程序Variant、屏幕/ALV Layout、表数据、ABAP Query、SAPscript和SO10标准文本等对象的传输策略。通过真实案例说明,代码对象往往能被正确传输,但"运行体验"和"业务配置"却常被遗漏,导致QAS测试正常而PRD环境异常。文章提供了一套可

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 170

GaussDB之SQL Audit,面向应用开发的SQL审核工具

SQL Audit工具,根据公司内部各业务部门多年积累的SQL开发规范和GaussDB数据库的优秀实践,整理出SQL审核规则上百条,对命名规范、表结构/索引设计、SQL性能优化、分布键及算子下推等常见影响SQL质量的问题都可以做深入的分析和审核 。

Gauss松鼠会 3677

matlab 一维相位解缠

一维相位解缠算法的matlab代码实现。

点云侠的博客 372

Qt代码-军用仿真系统基础框架

ui->mapClickLabel->setText(QString("地图点击:(%.1f, %.1f)米").arg(worldPos.x()).arg(worldPos.y()));emit simulationEvent(QString("添加实体: %1 (ID: %2)").arg(attr.name).arg(entity.id()));// 像素坐标→世界坐标(米)

寒寒豆豆软件公司的博客 168

SQL审核平台Yearning安装及使用

SQL审核平台Yearning安装及使用

gaohan666666的博客 3866

★教程1:matlab学习教程入门100例目录

★基础入门 1.为什么要学习MATLAB 2.MATLAB安装 持续更新....... ★MATLAB基础编程语言熟悉

FPGA/MATLAB学习教程/源码/项目合作开发 4万+

SQL审核小工具

改工具可以不连接数据库的情况下,进行离线数据库sql语句审核. 包括Tips:通过内置的规则,在不连数据库的情况下,静态审核SELECT、UPDATE、DELETE语句,指定用户规范编写SQL,提升SQL执行效率,可根据审核结果直接调整SQL。

weixin_50764555的博客 379

OpenCV-Python实战(10)——详解 OpenCV 轮廓检测

在计算机视觉领域,轮廓通常指图像中对象边界的一系列点。因此,轮廓通常描述了对象边界的关键信息,包含了有关对象形状的主要信息,该信息可用于形状分析与对象检测和识别。在本文中,将首次通过简单示例了解轮廓的基本概念,然后通过实际示例来了解如何检测和压缩轮廓,最后利用介绍如何利用图像矩描述检测到的轮廓属性。

盼小辉丶的博客 3万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SQLE、SQM和PawSQL:企业级SQL审核平台的深度评测

市场上主流的SQL审核工具,Yearning、Archery、Bytebase的审核模块、爱可生的SQLE、云和恩墨的SQM等,在规则覆盖度、或是正确率等方面存在明显不足,导致企业在引入产品后难以进行落地;PawSQL通过设计理念和核心技术的突破性创新,推出了自己的企业级SQL审核平台。 本次我们将深度评测这几款市场上主流SQL审核工具在审核规则覆盖度和审核结果正确性方面的表现。

PawSQL的博客 1991

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SQL审核工具 SQLE ,绝对不容错过的活动

SQLE 征稿活动开始啦! 所有稿件,一经采用,均会为作者署名、推广、并收纳到《大智小技4》。 SQLE 是一款面向数据库使用者和管理者的 SQL 审核工具,旨在规范 SQL 审核上线流程,提高 SQL 质量。自 2021 年 10 月 24 日推出后得到数据库行业同仁及用户的广泛关注。 为进一步提升 SQLE 审核平台内容质量及深度,现对广大用户发起征稿,希望更多关注技术内容的小伙伴能够在这个平台展示自己,分享独到的技术见解和优质内容。 活动时间: 2022.03.10 - 2022.04.30 征稿要

ActionTech的博客 1481

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

数据库审核工具SQLE部署及使用

点击上方蓝字关注我SQLE( https://opensource.actionsky.com/sqle/ )是由上海爱可生信息技术股份有限公司 开发并开源,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。我们可以基于此工具进行数据库SQL审核,提升SQL脚本质量。1. 部署SQLE下载地址:https://github.com/actiont...

gjc592的博客 3385

SQL 审核神器:SQLE 3.0 部署实践

简介部分将介绍SQLE 3.0的特点、功能以及它在SQL审核中的作用。SQLE 3.0是一款强大的SQL审核工具,它通过对SQL语句进行静态分析和规则检查,帮助开发人员快速发现和修复潜在的SQL编码问题。本节将深入介绍SQLE 3.0的工作原理和优势,包括其高效的审核算法、智能提示功能以及可定制的审核规则。同时,我们将讨论SQLE 3.0的部署实践,包括在开发环境和生产环境中的安装和配置。最后,我们将对SQLE 3.0的使用场景和应用案例进行探讨,帮助读者全面了解和掌握这一SQL审核神器。​。

1387

sql审核工具 java_iSQL-Viewer

相关开源项目ViennaSQL:ViennaSQL是一个用JAVA写成的图形用户界面的数据库客户端工具,通过JDBC来访问和管理SQL数据库,只要有JDBC驱动的数据库都可用ViennaSQL来管理,只要能运行JAVA的地方它就能运行,有一个很好的例子就是可以在LINUX/NT中通过JDBC来访问ORACLE数据库。T-SQL developer:T-SQL developer支持的特性包括:1....

weixin_35211615的博客 780

程序员的35岁,有一款免费的SQL审核工具与您一起面对

内核级数据库性能诊断工具DBdoctor2️⃣。

DBdoctor_off的博客 1009

基于GitLab如何做代码审查?

在团队小组代码开发过程中经常要做代码审查工作,我们如何基于GitLab做代码审查呢?

weixin_45853716的博客 9922

MySql三方工具

Yearning 开源的MySQL SQL语句审核平台,提供数据库字典查询,查询审计,SQL审核等多种功能。Yearning 1.x 版本需Inception提供SQL审核及回滚功能。Inception是集审核,执行,回滚于一体的自动化运维系统,它是根据MySQL代码修改过来的,工作模式和MySQL相同。Yearning是基于python实现的Web版人机交互界面。Yearning 2.0 版本开始无需Inception,已自己实现了SQL审核及回滚功能。

延成的博客 1877

提高效率的神器!企业级SQL审核与开发工具

NineData SQL开发企业版是一款强大的数据库管理工具,旨在解决企业在数据库管理方面所面临的各种挑战。该工具提供了一整套企业级能力,包括团队协作、权限管控、审计日志、SSO单点登录等功能。它还提供超过100条SQL规范审核,帮助企业规范使用和变更数据库。通过该工具,用户可以简化繁琐的数据库管理任务,提高工作效率。此外,企业版还提供数据安全和隐私保护功能,确保数据的安全性。用户可以通过免费试用期来了解和体验该工具的功能和特性,并根据需求选择适合的计费方式购买。

云原生智能数据管理平台 2205

sql审核工具 oracle,Oracle SQL Developer工具

Oracle SQL Developer工具下载解压了Oracle SQL Developer工具,运行时,启动不了,报错信息如下:---------------------------Unable to create an instance of the Java Virtual MachineLocated at path:\jdk\jre\bin\client\jvm.dll--------...

weixin_39844426的博客 455
上一篇: MySQL 核心模块揭秘 | 04 期 | 终于要启动事务了
下一篇: MySQL 8.0 引入 innodb_flush_method 等新参数的系统调用分析
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值