贵州数据库日志审计,oracle数据库审计日志查看

 admin   2024-03-05 22:51   3 人阅读  0 条评论

本文由华为云数据库和应用迁移专家华为云社区“”分享。


前言


让我们从SQL语句开始。


也许是我们业务代码中隐藏的SQL语句。对于一般开发者来说,这些语句写得干净,逻辑清晰,没有题,直接推送到代码仓库就可以在线交付。然而,有经验的开发人员或数据库管理员会注意到,这个SQL有很多优化点,比如


两个表中的id字段都有索引吗?


like语句不遵循最左匹配原则。你能重写一下吗?


test_1表的where条件中的create_time决策不遵循片面原则,因此无法建立索引,可以重写。


Union效率较低,因为它消除了结果集,可以用UnionAll代替吗?


test_2表中的id字段被函数引用,可能没有使用索引,因此可以优化。


表test_2是否有id和name的联合索引?我可以添加提示并指定特定索引来提高查询性能吗?


从上面的分析来看,这条SQL执行起来好像可以在数据库上焕然一新,但这就结束了吗?其实不是,这对于独立数据库来说可能是极其优化的,但是如果我们的数据库是分布式数据库呢?可能会出现新的性能题。需要考虑where条件中的id是否是分布键,concat函数是否会影响算子下推等。一系列的题就出现了。


这实际上就是我们面临的情况。开发人员的技术技能差异很大,DBA数据库知识的导致到处都是糟糕的SQL,并且随着数据库的不断变化或发展,可能需要越来越好的SQL。您需要不断寻找优化SQL不良的迹象。


SQLAudit审计工具简介


华为内部业务部门较多,大量使用传统独立数据库、MySQL、PostgreSQL等数据库,并深受SQL不正确的困扰。在大规模将GaussDB应用于内部业务系统的过程中,我们也面临着现有GaussDB的SQL是否能够高质量执行的题,因此我们开发了SQLAudit工具,并利用了多年来积累的SQL开发规范和GaussDB数据库来自公司内各个业务部门的人员,基于实践,可以深入分析和审视影响SQL质量的常见题,包括数百条SQL审计规则结构/索引设计、SQL性能优化、分布式键、算子下推等。CodeWarehouse直接集成到您的开发流程中,自动获取SQL语句以进行一键审核。


SQL审计的核心流程可以分为三个步骤


SQL获取获取需要审查的SQL的能力决定了您是否可以对正在开发的代码进行更全面的审查。


SQL解析为每个特定的SQL生成并分析语法树。


SQL规则审计将SQL语句的各个部分进行分解,并与相应的审计规则项进行一一比较,找出需要优化的点或风险因素,最终形成审计报告。


SQL导入


客户通过多种渠道通过SQL访数据库,包括客户端工具、命令行、SQL脚本和应用程序代码。


您可以使用多种方法进行代码开发,包括JDBC、ODBC、本机API调用,并且可以将SQL语句直接插入代码中、通过配置文件或通过ORM框架访数据库,因此如果您想搞定这一切,客户信息SQL是这样的,这是非常困难的。


SQLAudit目前支持大部分SQL使用场景,并且我们正在不断扩大可获取的SQL范围,以全面审计客户使用的所有SQL,下图为SQLAudit目前支持的SQL显示范围。设备。


手动输入


手动录入为客户提供了一个简单易操作的,客户可以随时将自己的SQL语句输入到SQL审计工具中进行审核,并根据审核结果直接调整语句。您还可以上传整个SQL文件。快来进行批量评论。


源代码


不良SQL的主要来源是源代码。然而,由于编程语言的多样性以及奇怪的编写方式,很难获得适用于所有场景的完整SQL。将代码中的SQL分为三类


1源码连接SQL


SQL语句是通过拼接创建的,拼接过程中可能会出现很多变量。通过静态文件提取SQL存在巨大缺陷,因为在这种情况下您将无法获得完整的SQL。SQL审核工具支持Java代码的语法。其他语言的代码当前不支持内部SQL。


2不需要SQL的ORM框架


例如,Hibernate、SQLAlchemy等ORM框架无法从你的代码中获取SQL语句,而SQLAudit工具提供了Java二进制重写技术,可以动态监控JDBCAPI,允许你在JVM运行时获取SQL语句。


3SQLORM配置


许多业务系统基于Mybatis框架构建其数据库访功能。Mybatis以注释或配置文件的形式编写SQL语句。SQLAudit工具可以对Mybatis的注释和配置文件进行深入分析并执行成功率。SQL提取率超过99%。


数据库对象


设计数据库表结构、索引、约束以及编写PL/SQL(例如存储过程和函数)对于数据库性能起着至关重要的作用。SQL审计工具可以连接到您的数据库并获取所有对象定义。我们考虑数据库设计的标准化、合理性、性能等方面,并提供审核建议。


数据库日志


为了更全面地了解数据库中发生的SQL语句,更可行的解决方案是从数据库本身的日志级别开始。数据库的重做解析、打开数据库审计日志、查询SQL缓存等都可以有效获取正在运行的SQL,并且SQL审计工具还支持通过数据库日志获取SQL语句的能力。


流量捕获


针对无法从源代码获取全部SQL的题,我们开发了基于流量抓取的SQL审计功能,可以大大提高SQL获取的完整性。IP+端口是数据库的综合入口,基本可以包含客户工作、运维时产生的所有SQL语句,通过绕过数据库服务器端口监听,分析数据库网络协议,获取网络协议包后,迭代通过SQL过滤,获取有效的SQL语句,最后将这些SQL传递给SQL审计工具进行审核。


SQL分析


SQL解析过程就是将SQL语句按照语法规则解析成语法树。一般的解析过程分为词法解析和句法解析,生成语法树。大多数SQL语句分析工具都是直接遍历语句。是的,SQL审计工具并不直接解析语法树,而是添加了一个处理过程,将语法树解析为Java描述的类。后续所有的审计规则都是基于这个语法描述类,大大提高了开发性。审计规则提高了效率,同时降低了开发难度。


SQL审计


丰富的审核规则


审计的核心是审计规则,审计规则的核心是对数据库的理解+实践经验的总结,了解客户的业务发展。结合GaussDB数据库实践+真实使用场景。由内部和外部客户组织的规则有数百条,产品目前支持78条规则,涵盖了SQL开发过程中常见的规范和性能题。未来。


SQLAudit还提供模板配置能力,让客户可以根据业务场景灵活选择需要审计的规则。


深入审查


SQL审计审核流程如下图所示。


当SQL进入SQLAudit时,它首先解析SQL,然后根据SQL所依赖的表、视图等对象从数据库中拉取元数据信息。执行计划可能受到影响如果一条语句受到影响,则从数据库中检索该语句的执行计划,结合上述所有信息,逐一匹配每条相关规则,并检查是否存在违反规则的情况。它被打印出来。


真实案例


华为云内部系统中的部分业务代码是基于JAVA的Mybatis框架开发的,并且在数据库更换为GaussDB的过程中,为了兼容,修改了大量的SQL,以保证修改后的SQL能够使用。系统运行在高质量的GaussDB数据库上,利用SQLAudit工具对整个代码仓库进行全面的审核。同时,将SQLAudit审计插件部署到管道中,持续监控增量。密码。SQLAudit发现大量不规范、低性能的SQL,提前规避风险,将SQL引入生产环境,开发人员根据SQLAudit的审计报告优化代码,之后业务持续稳定运行。已经完成了。切换到高斯数据库。


例如,该作业共涉及1881条SQL,审计了300多条有题的SQL。


审核结果统计报告


审计题SQL详细信息


总结


GaussDB希望为客户提供开发、运维的全流程、全链路的数据库自动驾驶体验,同时打造核心竞争力。今年推出的SQLAutoAudit工具可帮助客户在开发过程中编写良好的SQL并拒绝不良SQL。


未来,我们计划进一步支持与在PL/SQL审计和SQL语言处理方面取得良好效果的AI大模型集成,包括存储过程、函数、触发器、包等审计。SQL审计工具对接华为***大模型,大模型的特性增强审计、优化、重写能力。


点击下方第一时间了解华为云新技术~


一、安全审计设备都有哪些?

安全审计设备一般是指搭载安全审计软件的硬件产品,常见的审计设备包括网络安全审计设备、数据库安全审计设备、日志审计设备、运维安全审计设备等,这意味着遵守一定的安全策略。使用历史记录、系统活动和用户活动等信息扫描、审查和测试环境和操作事件活动的设备,以发现系统漏洞、入侵或提高系统性能。


二、数据库审计服务器,价格?

计算服务器的成本在450,000到500,000之间。


三、logminer与ogg区别?

Logminer和ogg是两种常用的数据库日志分析和数据复制工具,但它们也有一些区别。


1-功能logminer是Oracle数据库提供的一个工具,用于实时监控和分析数据库的在线日志,可用于数据恢复、审计和数据挖掘。ogg是一个高性能的实时工具。数据复制和数据集成软件,支持多个数据库之间的实时数据复制和同步。


2-应用场景logminer主要用于数据库日志分析和查询,可以帮助用户了解数据库操作的细节,如执行DDL语句、修改DML语句等。ogg主要用于实时。数据复制和数据集成,可以将变化的数据从源数据库实时同步到目标数据库,保证数据的一致性和实时性。


3-数据类型logminer可以解析数据库日志中记录的所有DDL和DML操作,包括表结构的创建、修改和删除,以及数据的插入、更新和删除操作。ogg支持复制和同步多种数据类型。可以包含DDL语句和DML语句,以确保源数据库和目标数据库的结构和数据保持同步。


4-可扩展性logminer只能应用于Oracle数据库,需要特定的SQL语句来查询和分析日志文件。ogg支持包括Oracle、MySQL、SQLServer等多种数据库,可以跨不同数据库使用。-时间数据复制和同步。


综上所述,logminer和ogg都用于数据库日志分析和数据复制,但在功能、应用场景、支持的数据类型、扩展性等方面存在一些差异。选择的确切工具将取决于您的需求和数据库环境。


关于贵州数据库日志审计和一些关于oracle数据库审计日志查看这类热门内容,本篇文章都有做详细解,希望能帮到诸位网友。

本文地址:http://chorofun.com/post/232090.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?