From bf39c04c659c7238f36b8fcef03425d335f8fcbd Mon Sep 17 00:00:00 2001 From: lukeman Date: Wed, 19 Mar 2025 10:09:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0SQL=E8=AF=AD=E6=B3=95?= =?UTF-8?q?=E5=AE=A1=E8=AE=A1=E5=B7=A5=E5=85=B7libog=5Fquery=E7=9A=84?= =?UTF-8?q?=E7=89=B9=E6=80=A7=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...241\345\267\245\345\205\267libog_query.md" | 46 +++++++++++++++++++ .../\345\267\245\345\205\267\351\223\276.md" | 1 + content/zh/menu/index.md | 1 + .../\345\267\245\345\205\267\351\223\276.rst" | 3 +- 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 "content/zh/docs/AboutopenGauss/SQL\350\257\255\346\263\225\345\256\241\350\256\241\345\267\245\345\205\267libog_query.md" diff --git "a/content/zh/docs/AboutopenGauss/SQL\350\257\255\346\263\225\345\256\241\350\256\241\345\267\245\345\205\267libog_query.md" "b/content/zh/docs/AboutopenGauss/SQL\350\257\255\346\263\225\345\256\241\350\256\241\345\267\245\345\205\267libog_query.md" new file mode 100644 index 000000000..fc352df38 --- /dev/null +++ "b/content/zh/docs/AboutopenGauss/SQL\350\257\255\346\263\225\345\256\241\350\256\241\345\267\245\345\205\267libog_query.md" @@ -0,0 +1,46 @@ +# SQL语法审计工具libog_query + +## 可获得性 + +本特性自openGauss 7.0.0-RC1版本开始引入。 + +## 特性简介 + +libog_query 是一个支持离线审计分析SQL语句在openGauss中的语法合法性的工具。 + +## 客户价值 + +通常使用数据库的商业公司对使用关键数据库执行SQL具有以下的管理流程:开发人员在业务平台上选择数据库,提交SQL,DBA收到工单以后进行审核,通过后执行。这样对于DBA审核工作量大,容易发生因人为疏忽的问题。基于本语法审计工具,DBA可以实现定制化在openGauss上的SQL语法审核的自动化流程,提高DBA的工作效率,减少人为错误,同时利用工具记录日志也有助于后续的问题回溯定位和分析。 + +## 特性描述 + +libog_query 工具对外提供so和接口,传入SQL后判断该SQL在语法上能否在openGauss上执行。so供第三方软件集成,第三方软件集成该so后,可利用该so提供的接口,离线进行SQL兼容性语法分析,无需连接到openGauss。 + +对于SQL语句审计结果的支持判断: + - 语法兼容:openGauss支持该语法,但是实际使用过程中可能包含字段类型不支持、函数不存在等语义问题。 + - 语法不兼容:openGauss不支持该语法。 + + +## 特性增强 + +- 自openGauss 7.0.0-RC1版本 SQL语法审计工具支持通过第三方软件集成提供的so和接口,对SQL兼容性进行离线语法分析。 +- 自openGauss 5.0.0-LTS版本 语法兼容性评估工具支持利用已有的openGauss节点在线评估数据SQL文本在openGauss的兼容性,包括语法兼容和完全兼容分析。 + +## 特性约束 + +1. 仅支持单行SQL文本输入,且SQL之间以`;`分割。 +2. 支持A库和B库兼容性语法检查场景,默认为B库兼容性,A库需要单独编译,其他兼容性库的语法不兼容语句的报错信息可能不准确。 +3. 不支持存储过程的语法兼容校验。 +4. 仅支持审计在 openGauss 的语法解析层的错误。属于语义分析层或执行层等阶段处理的报错,本工具不支持审计:如字段类型不支持、函数不存在、表不存在,枚举类型值的匹配,Insert语句的目标列和值表达式的匹配等场景属于语义层,工具不会做检查。 + +## 依赖关系 + +无。 + +## 参考文档 + +开源社区地址: [libog_query](https://gitee.com/opengauss/openGauss-server/tree/master/src/bin/libog_query/) + +详细参考文档: README.md + + diff --git "a/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" "b/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" index 5bc37ab0a..1302354df 100644 --- "a/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" +++ "b/content/zh/docs/AboutopenGauss/\345\267\245\345\205\267\351\223\276.md" @@ -11,3 +11,4 @@ - **[一站式安装数据库](一站式安装数据库.md)** - **[数据库安装流程解除对root用户的依赖](数据库安装流程解除对root用户的依赖.md)** - **[录制回放工具](录制回放工具.md)** +- **[SQL语法审计工具libog_query](SQL语法审计工具libog_query.md)** diff --git a/content/zh/menu/index.md b/content/zh/menu/index.md index d758ae879..d68d3910d 100644 --- a/content/zh/menu/index.md +++ b/content/zh/menu/index.md @@ -181,6 +181,7 @@ headless: true - [数据库安装流程解除对root用户的依赖]({{< relref "./docs/AboutopenGauss/数据库安装流程解除对root用户的依赖.md" >}}) - [支持自定义ssh端口]({{< relref "./docs/AboutopenGauss/支持自定义ssh端口.md" >}}) - [录制回放工具]({{< relref "./docs/AboutopenGauss/录制回放工具.md" >}}) + - [SQL语法审计工具libog_query]({{< relref "./docs/AboutopenGauss/SQL语法审计工具libog_query.md" >}}) - [中间件]({{< relref "./docs/AboutopenGauss/中间件.md" >}}) - [分布式数据库能力]({{< relref "./docs/AboutopenGauss/分布式数据库能力.md" >}}) - [使用kubernetes部署分布式数据库]({{< relref "./docs/AboutopenGauss/使用kubernetes部署分布式数据库.md" >}}) diff --git "a/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" "b/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" index 07311e2cc..6761b324d 100644 --- "a/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" +++ "b/sphinx/source/AboutopenGauss/\345\267\245\345\205\267\351\223\276.rst" @@ -9,4 +9,5 @@ ../content/zh/docs/AboutopenGauss/反向迁移gs_replicate ../content/zh/docs/AboutopenGauss/反向全量迁移 ../content/zh/docs/AboutopenGauss/数据校验gs_datacheck - ../content/zh/docs/AboutopenGauss/openGauss客户端工具DataStudio \ No newline at end of file + ../content/zh/docs/AboutopenGauss/openGauss客户端工具DataStudio + ../content/zh/docs/AboutopenGauss/SQL语法审计工具libog_query \ No newline at end of file -- Gitee