SQL 审核在 CloudQuery 的四大场景应用

news2024/11/17 6:38:35

数据库作为数据的核心载体,其安全性和稳定性对业务的影响至关重要。而在我们日常业务中,SQL 编写不当是引起数据库故障的一个重要原因,轻则影响数据库性能,重则可能直接导致「雪崩」。因此,SQL 审核作为 SQL 代码投入生产的最后一道关卡,其重要性不言而喻,构建一套规范化、流程化的 SQL 审核体系至关重要。

在 CloudQuery 上线 SQL 审核功能后,我们从一开始的支持两大应用场景(即 SQL 编辑窗口和数据变更),扩充至四大应用场景,分别为:SQL 窗口、批量执行、GUI 方式 SQL以及工单(数据变更)。本篇文章,我们就来盘点 SQL 审核在 CloudQuery 这四大应用场景的使用方式和实现效果。

应用前的规则配置

在进入场景应用之前,我们得先进行基础的规则配置。这里我们主要说明下需要操作的一些前置步骤和注意点,具体的规则配置教程可查看文档(https://bintools.yuque.com/org-wiki-bintools-xniowl/do4ums/fpql5qfmc0qbfmrd)。

step 1:确定规则模板

我们可以直接使用 CQ 平台的内置规则模板,或复制内置规则模板,并在此基础上进行编辑修改,也可以直接新建规则模板。

step 2:选择生效连接

目前 CloudQuery 支持 SQL 审核功能的数据源有:Vertica、DamengDB、HighGo、OracleCDB、SQLServer、PostgreSQL、Oracle、MySQL。

选择需要数据库类型并确定生效连接后,就可以进行具体规则设置了。

image.png

step 3:设置规则等级

CloudQuery 将 SQL 审核规则等级分为三种:notice(提示)、warning(告警)、error(错误),等级依次递增,在平台中的实现效果分别是:

  • notice(提示):只提示不拦截
  • warning(告警):只告警不拦截
  • error(错误):提示并拦截

针对每条规则,我们都可以根据实际需求选择其等级。

image.png

step 4:选择应用场景

在进行规则等级设置的同时,我们可选择对应规则的应用场景,或进行批量设置。

image.png

完成以上步骤的配置后,我们就来看看 SQL 审核在不同场景的实际应用效果吧!

SQL 窗口

【SQL窗口】指的是数据操作页面的SQL编辑器模块。 在 CQ 内置的规则模板中,所有规则默认的应用场景都是“SQL窗口”

下面我们演示开启SQL审核后,在SQL窗口的效果。

  • 当执行的 sql 语句触发等级为“notice”的规则时,sql 窗口会出现“SQL审核结果弹窗”,并提示相关语句及触发的规则说明。此时,用户可以选择“继续执行”或“返回修改”。

image.png

  • 当执行的sql语句触发等级为“warning”的规则时,系统会出现告警,并提示相关语句及触发的规则说明。此时,用户也可以选择“继续执行”或“返回修改”。

image.png

  • 当执行的sql语句触发等级为“error”的规则时,系统会直接拦截,语句执行失败。

image.png

GUI 方式中的 SQL 审核

【GUI 方式 SQL】是指在数据操作页面通过图形化方式进行 SQL 执行操作。

例如,如果我们把"列建议添加注释"这条规则等级设置为warning,并且场景中勾选GUI方式SQL:

image.png

此时,如果我们用图形化的方式进行"添加表":

image.png

如果有字段的注释为空,那么进行保存时会被警告:

image.png

批量执行任务中的 SQL 审核

【批量执行】指的是数据操作-SDT连接层级可进行的批量执行功能。 在创建批量任务时,用户上传的脚本任务重的 SQL 语句同样会被审核。

image.png

如果 SQL 审核结果不通过,该批量任务也无法进入下一步,需要按照规则内容重新修改SQL文件后再执行。

image.png

数据变更中的SQL审核(工单)

这里的 「工单」指的是数据变更中的工单, 即我们在进行数据变更时会对提交的 SQL 语句进行审核。

例如,我们在对“禁止进行删除列的操作”设置规则等级为“error”,一旦我们在数据变更工单的SQL语句中包含删除列的语句

image.png

该语句就会被主动拦截,审核结果为:Error x1,并且无法进入【下一步】,必须对 SQL 语句进行调整,直到符合规范后才能进入下一步操作。

image.png

以上就是 SQL 审核在 CQ 中的四个应用场景。

这些不同的使用场景,在实际业务中往往需要依据具体需求来灵活调整审核规则。在 SQL 编辑窗口中,我们可能需要重点关注 SQL 语句的语法正确性、性能优化以及潜在的安全风险;而在数据变更流程中,则可能更加注重数据的一致性和完整性。通过 SQL 审核,我们可以根据实际需求来自定义审核规则的严格程度,以适应不同数据源和场景的需求。

更多 CloudQuery 操作教程可查看:https://bintools.yuque.com/org-wiki-bintools-xniowl/do4ums/kgh2z5uef87rnibk

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242006.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端知识】Javascript前端框架Vue入门

前端框架VUE入门 概述基础语法介绍组件特性组件注册Props 属性声明事件组件 v-model(双向绑定)插槽Slots内容与出口 组件生命周期完整示例1. 创建 Vue 项目(如果还没有)2. 定义和使用组件3. 在主应用中使用组件4. 运行应用完整项目结构 参考文献 概述 V…

Jmeter基础篇(24)Jmeter目录下有哪些文件夹是可以删除,且不影响使用的呢?

一、前言 Jmeter使我们日常做性能测试最常用的工具之一啦!但是我们在和其他同学协同工作的时候,偶尔也会遇到一些问题,例如我想要给别人发送一个Jmeter工具包,但这个文件包往往会很大,比较浪费流量和空间,…

Python_爬虫3_Requests库网络爬虫实战(5个实例)

目录 实例1:京东商品页面的爬取 实例2:亚马逊商品页面的爬取 实例3:百度360搜索关键词提交 实例4:网络图片的爬取和存储 实例5:IP地址归地的自动查询 实例1:京东商品页面的爬取 import requests url …

StructuredStreaming (一)

一、sparkStreaming的不足 1.基于微批,延迟高不能做到真正的实时 2.DStream基于RDD,不直接支持SQL 3.流批处理的API应用层不统一,(流用的DStream-底层是RDD,批用的DF/DS/RDD) 4.不支持EventTime事件时间(一般流处理都会有两个时间:事件发生的事件&am…

计算机网络HTTP——针对实习面试

目录 计算机网络HTTP什么是HTTP?HTTP和HTTPS有什么区别?分别说明HTTP/1.0、HTTP/2.0、HTTP/3.0请说明访问网页的全过程请说明HTTP常见的状态码Cookie和Session有什么区别?HTTP请求方式有哪些?请解释GET和POST的区别?HT…

转轮数组(C语言实现)

题目介绍 方法一我们可以先把数字1 2 3 4逆转一下&#xff0c;第二步我们可以逆转一下5 6 7&#xff0c; 最后整体逆置一下就会变成上面的数字。 void reverse(int* nums, int begin, int end) {while (begin < end){int tmp nums[begin];nums[begin] nums[end];nums[en…

Ubuntu 的 ROS 操作系统 turtlebot3 gazebo仿真

引言 TurtleBot3 Gazebo仿真环境是一个非常强大的工具&#xff0c;能够帮助开发者在虚拟环境中测试和验证机器人算法。 Gazebo是一个开源的3D机器人仿真平台&#xff0c;它能支持物理引擎&#xff0c;允许机器人在虚拟环境中模拟和测试。结合ROS&#xff0c;它能提供一个完整的…

uniapp vuex的使用

实现组件全局&#xff08;数据&#xff09;管理的一种机制&#xff0c;可以方便的实现组件之间共享数据&#xff0c;不同于上述三种传递值的方式。 可以把vuex当成一个store仓库&#xff0c;可以集中管理共享的数据&#xff0c;并且存储在vuex中的数据都是响应式的&#xff0c…

uniapp适配暗黑模式配置plus.nativeUI.setUIStyle适配DarkMode配置

uniapp适配暗黑模式配置 目录 uniapp适配暗黑模式配置setUIStyleDarkMode 适配app-plus manifest.json配置theme.json配置pages.json配置页面切换代码实现同步手机暗黑配置额外适配 参考官方文档&#xff1a;https://uniapp.dcloud.net.cn/tutorial/darkmode.html 主要用到api…

element ui table进行相同数据合并单元格

示例如图 //要合并的项&#xff08;自定义&#xff09; const columnArr ["dq","sj","xj","zj","zjj","zjfzr","nhxm","nhsjh","nhsfzh","","",""…

uniapp 实现 ble蓝牙同时连接多台蓝牙设备,支持app、苹果(ios)和安卓手机,以及ios连接蓝牙后的一些坑

首先对 uniapp BLE蓝牙API进行封装 这里我封装了一个类&#xff1a;bluetoothService.js 代码&#xff1a; import { throttle } from lodash export default class Bluetooth {constructor() {this.device {};this.connected false;// 使用箭头函数绑定类实例的上下文&am…

51单片机应用开发(进阶)---模块化编程

实现目标 1、掌握.h 文件的格式、extern 的用法&#xff1b; 2、握模块化编程方法步骤&#xff1b; 3、具体实现&#xff1a;&#xff08;1&#xff09;提供一个C文件&#xff0c;将其按照功能模块进行模块化。 一、为什么要进行模块化编程&#xff1f; 传统的编程方式&…

arkUI:水果选择与管理:基于 ArkUI 的长按编辑功能实现

水果选择与管理&#xff1a;基于 ArkUI 的长按编辑功能实现 1 主要内容说明2 相关内容2.1 相关内容2.1.1 源码1内容的相关说明2.1.1.1 数据结构与状态管理2.1.1.2 添加水果功能2.1.1.3 水果列表展示2.1.1.4 长按进入编辑模式2.1.1.5 复选框的多选功能2.1.1.6 删除水果功能2.1.1…

小程序20-样式:自适应尺寸单位 rpx

手机设备的宽度逐渐多元化&#xff0c;也就需要开发者开发过程中&#xff0c;去适配不同屏幕宽度的手机&#xff0c;为了解决屏幕适配问题&#xff0c;微信小程序推出了 rpx 单位 rpx&#xff1a;小程序新增的自适应单位&#xff0c;可以根据不同设备的屏幕宽度进行自适应缩放 …

unity3d————Resources异步加载

知识点一&#xff1a;Resources异步加载是什么&#xff1f; 在Unity中&#xff0c;资源加载可以分为同步加载和异步加载两种方式。同步加载会在主线程中直接进行&#xff0c;如果加载的资源过大&#xff0c;可能会导致程序卡顿&#xff0c;因为从硬盘读取数据到内存并进行处理…

C#/WinForm拖拽文件上传

一、首先创建一个上传文件的类&#xff0c;继承Control类&#xff0c;如下&#xff1a; public class UploadControl : Control{private Image _image;public UploadControl(){this.SetStyle(ControlStyles.UserPaint | //控件自行绘制&#xff0c;而不使用操作系统的绘制Cont…

2024 同一个网段,反弹shell四种方法【linux版本】bash、python、nc、villian反弹shell图解步骤

实验环境准备&#xff08;同一个网段下&#xff0c;我是桥接的虚拟机&#xff09; 一、bash反弹shell 二、python反弹shell 三、nc反弹shell 四、villain反弹shell 实验环境准备&#xff08;同一个网段下&#xff0c;我是桥接的虚拟机&#xff09; 一台kali的linux(攻击者)…

FPGA使用Verilog实现CAN通信

FPGA实现CAN通信&#xff08;Verilog&#xff09; 1.作者使用的方法是通过FPGA芯片&#xff08;如Xilinx公司的型号为XC7K325TFFG676-2&#xff09;控制SJA1000T芯片&#xff08;CAN控制器芯片&#xff09;实现CAN通信&#xff0c;如下图所示&#xff1a; 2.熟悉连接方式之后&…

已解决:spark代码中sqlContext.createDataframe空指针异常

这段代码是使用local模式运行spark代码。但是在获取了spark.sqlContext之后&#xff0c;用sqlContext将rdd算子转换为Dataframe的时候报错空指针异常 Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.Nu…

jenkins用户在执行scp的时候如何做免密登录

一、背景 在jenkins job中执行scp的shell命令&#xff0c;当然不希望每次输入密码&#xff0c;另外处于出于安全考虑&#xff0c;也不建议在scp命令中指定。 所以&#xff0c;我们需要对远程机器进行免密登录。 本文遇到的问题是&#xff0c;在jenkins机器上执行scp已做到了…