基于华为openEuler部署Yearning SQL审核平台【华为根技术】

举报
江湖有缘 发表于 2025/08/22 16:54:37 2025/08/22
【摘要】 基于华为openEuler部署Yearning SQL审核平台【华为根技术】

基于华为openEuler部署Yearning SQL审核平台【华为根技术】

前言


在企业数字化转型不断深入的背景下,数据库安全与SQL操作规范性日益成为运维管理的重点。华为openEuler作为面向企业级场景的开源操作系统,具备高性能、高安全和高可靠性,为关键业务系统提供了坚实的底层支撑。Yearning作为一款功能完善的开源MySQL SQL审核平台,能够有效提升数据库变更的可控性与安全性。本次实践基于openEuler系统部署Yearning,结合Docker与MySQL,构建一个安全可控的SQL审核环境,全面体现华为根技术在数据库管理场景中的应用价值。


一、相关服务介绍

1.1 openEuler系统介绍

简介

openEuler是华为发起并主导的一个开源操作系统项目,它基于Linux内核开发,致力于为企业级应用提供安全、稳定、可靠的操作环境。自2019年正式开源以来,openEuler迅速吸引了全球众多开发者和技术爱好者的关注,并逐渐形成了一个活跃的开源社区。该系统不仅支持多种处理器架构(如x86、ARM等),而且通过持续的技术创新,在性能优化、安全性增强以及容器化支持等方面展现了显著的优势。

主要特点

开源性:openEuler遵循开源协议,允许任何个人或组织自由获取、使用、修改及分发系统代码,这极大地促进了技术创新与共享。

高性能与稳定性:通过对Linux内核进行深度优化,openEuler能够提供出色的运行效率和稳定性,满足企业级应用场景的需求。

安全性:提供了包括安全启动、数据加密在内的多重安全保障措施,确保用户数据的安全性。

容器化支持:兼容Docker和Kubernetes等容器技术,便于开发者构建、部署和管理容器化应用。

丰富的生态系统:拥有庞大的开发者社区和丰富的软件库,为用户提供广泛的软件支持和服务。

1.2 Yearning 介绍

Yearning 介绍

Yearning 是一款开源、本地化部署的 MySQL SQL 审计与查询平台,集 SQL 审核、查询审计、权限管控与数据安全于一体,致力于提升数据库操作的规范性、安全性和可追溯性,适用于企业级数据库管理场景。

主要特点

AI 助手:提供实时 SQL 优化建议,并支持自然语言转 SQL,提升开发效率与语句性能。

SQL 审核:支持创建带审批流程的 SQL 工单,自动校验语法,并生成 DDL/DML 回滚语句,确保变更安全可控。

查询审计:对用户查询行为进行审计,支持数据源与库级访问控制,敏感字段自动脱敏。

规则检查:内置丰富的自动化检查规则,覆盖常见 SQL 规范、安全与合规性要求。

隐私保护:作为本地部署的开源方案,所有数据留存内网,支持敏感信息加密,保障数据库安全。

RBAC 权限控制:基于角色的访问控制机制,可精细化管理用户对工单、审核、查询等功能的操作权限。

二、本次实践介绍

2.1 本次实践介绍

1.本次实践环境为个人测试环境,生产环境请谨慎;2.本次实践主要是在openEuler系统下部署Yearning SQL审核平台。

2.2 本次环境规划

本次环境规划如下所示:

服务器

HostName

IP地址

操作系统

内核版本

部署项目

备注

VM虚拟机

openEuler-server

192.168.3.83

openEuler 24.03 (LTS)

6.6.0-28.0.0.34.oe2403.x86_64

Yearning

——

三、本地环境检查

3.1 检查系统版本

检查当前系统版本,当前系统版本为openEuler 24.03 (LTS)

[root@openEuler-server ~]# cat /etc/os-release
NAME="openEuler"
VERSION="24.03 (LTS)"
ID="openEuler"
VERSION_ID="24.03"
PRETTY_NAME="openEuler 24.03 (LTS)"
ANSI_COLOR="0;31"

3.2 检查内核版本

检查当前内核版本,如下所示:

[root@openEuler-server ~]# uname -r
6.6.0-28.0.0.34.oe2403.x86_64

3.3 检查本地IP

查看本地IP地址,本次实践本地IP设置为192.168.3.83/24

[root@openEuler-server ~]# ifconfig ens18
ens18: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.83 netmask 255.255.255.0 broadcast 192.168.3.255
inet6 fe80::be24:11ff:feaa:bfa5 prefixlen 64 scopeid 0x20<link>
ether bc:24:11:aa:bf:a5 txqueuelen 1000 (Ethernet)
RX packets 1267 bytes 134016 (130.8 KiB)
RX errors 0 dropped 64 overruns 0 frame 0
TX packets 321 bytes 36697 (35.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

3.4 检查Docker环境

本次实践需要提前部署好Docker环境,检查Docker版本如下所示:

[root@openEuler-server ~]# docker -v
Docker version 26.1.3, build b72abbb

四、创建MySQL容器

4.1 创建挂载目录

创建MySQL容器的挂载目录,用于持久化Mysql数据。

mkdir -p /data/yearning/db

4.2 创建容器

执行以下命令,可快速创建并启动 MySQL 容器。本次实践仅挂载 MySQL 容器的 /var/lib/mysql 目录用于持久化数据,如需进一步管理,可自行挂载日志文件或配置文件目录。

docker run -d --name my_mysql --privileged=true -v /data/yearning/db:/var/lib/mysql --restart always -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=Yearning -p 3900:3306 mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci

null

4.3 查看容器状态

检查MySQL状态,如下所示:

[root@openEuler-server data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a8bc3e7e3baa mysql:5.7 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 33060/tcp, 0.0.0.0:3900->3306/tcp, :::3900->3306/tcp my_mysql

4.4 连接数据库

进入Mysql容器内,测试连接数据库,可以看到成功连接。

[root@openEuler-server data]# docker exec -it my_mysql /bin/bash
bash-4.2# mysql -uroot -padmin
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.44 MySQL Community Server (GPL)

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| Yearning |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)

mysql>

null

五、部署Yearning应用

5.1 下载Yearning软件包

下载Yearning的二进制软件包,当前最新版本为3.1.9.1

wget https://github.com/cookieY/Yearning/releases/download/v3.1.9.1/Yearning-v3.1.9.1-linux-amd64.zip

null

5.2 解压软件包

执行以下命令,解压软件包。

unzip Yearning-v3.1.9.1-linux-amd64.zip

null

5.3 修改配置文件

进入Yearning项目目录

[root@openEuler-server yearning]# cd Yearning/
[root@openEuler-server Yearning]# ls
conf.toml docker migrate README.md Yearning

修改conf.toml配置文件

vim conf.toml

根据实际情况,填写Mysql数据库相关信息。

[Mysql]
Db = "Yearning"
Host = "192.168.3.83"
Port = "3900"
Password = "admin"
User = "root"

null

5.4 初始化安装

执行以下命令,进行一键安装。

./Yearning install

null

5.5 启动服务

启动Yearning服务,执行以下命令即可:

./Yearning run

null

六、访问Yearning

6.1 安全设置

关闭selinux

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

停止本地防火墙

systemctl stop firewalld
systemctl disable firewalld

6.2 访问Yearning系统

访问地址:https://《服务器IP地址》:8000,将IP替换为自己服务器IP地址,进入到Yearning登录页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

null

Yearning的默认账号密码为admin/Yearning_admin登录后,即可访问到Yearning首页。

null

具体使用方法:

可参考官方文档— https://next.yearning.io/usage/ptbzchak/

七、总结

本次实践成功在华为openEuler系统上完成Yearning SQL审核平台的部署与配置,系统运行稳定,功能正常。通过与MySQL容器的协同工作,实现了SQL审核、查询管控、权限隔离等核心功能,提升了数据库操作的规范性与安全性。整个部署过程充分发挥了openEuler系统的稳定性与兼容性优势,验证了其在企业级应用中的成熟度。未来可进一步拓展Yearning在自动化审批、敏感数据管控等方面的能力,助力构建更加智能、安全的数据库运维体系。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。