基于华为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在自动化审批、敏感数据管控等方面的能力,助力构建更加智能、安全的数据库运维体系。
- 点赞
- 收藏
- 关注作者
评论(0)