跳到主要内容
版本:v4

应用程序 SQL 抓取 企业版

通过 SQLE 定制的 JDBC 驱动替换应用原有驱动,在应用运行时实时采集 Java 应用中执行的 SQL 并推送到 SQLE 进行审核。

支持的数据源类型

  • MySQL

前置准备

环境要求

  • 一台 Linux 服务器(Ubuntu 即可)
  • 已安装 JDK:sudo apt install default-jdk
  • 已部署并启动 MySQL 服务

所需文件

文件说明
Java 应用 JAR 包待监控的应用程序
SQL 初始化文件应用所需的数据库初始化脚本
SQLE 定制 JDBC JAR 包用于采集 SQL 的定制驱动
提示

JDBC JAR 包为企业版功能,如有需要请联系 SQLE 商业支持

初始化应用

mysql -h127.0.0.1 -P3306 -uroot -p \
-e "CREATE DATABASE IF NOT EXISTS jw DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"
mysql -h127.0.0.1 -P3306 -uroot -D jw -p < init-mysql.sql

替换 JDBC 驱动

将应用 JAR 包和定制 JDBC JAR 包放到同一目录(如 /opt/surveyking/),然后替换内部的 JDBC 驱动:

cd /opt/surveyking/
mkdir jar && cp surveyking-v0.3.0-beta.4.jar jar/ && cd jar/
jar xvf surveyking-v0.3.0-beta.4.jar
cp ../mysql-connector-java-8.0.28-SQLE.jar BOOT-INF/lib/mysql-connector-java-8.0.26.jar
rm -rf surveyking-v0.3.0-beta.4.jar
jar cvfM0 surveyking-v0.3.0-beta.4.sqle.jar *
mv surveyking-v0.3.0-beta.4.sqle.jar ../
cd .. && rm -rf jar/

操作步骤

步骤一:创建扫描任务

在 SQL 管控配置中为数据源开启智能扫描,扫描类型选择 应用程序 SQL 抓取,配置审核规则模板后点击 提交

步骤二:启动 Java 应用

提示

以下命令需在本地编辑替换参数后,一次性拷贝到目标环境执行。

cd /opt/surveyking/
SQLE_COLLECT_ENABLE=true \
SQLE_HOST=<SQLE地址>:10000 \
SQLE_TASK_NAME=jw_app \
SQLE_TASK_TOKEN=<扫描任务凭证> \
java -jar surveyking-v0.3.0-beta.4.sqle.jar \
--server.port=1991 \
--spring.datasource.url=jdbc:mysql://<数据库地址>:3306/jw \
--spring.datasource.username=root \
--spring.datasource.password=<密码> \
& >> /opt/surveyking/std.log

环境变量说明

变量说明
SQLE_COLLECT_ENABLE是否开启 SQL 采集
SQLE_HOSTSQLE 服务地址(格式:IP:端口
SQLE_TASK_NAME扫描任务名称
SQLE_TASK_TOKEN扫描任务凭证 Token
SQLE_PROJECT_NAME项目名称

步骤三:查看审核结果

应用启动后,SQLE 将自动采集运行过程中的 SQL。进入扫描任务详情查看已采集的 SQL 及审核结果。