SQL 防火墙

更新时间:2024-08-20 02:55:49

本文介绍如何在 OceanBase 控制台设置实例的 SQL 防火墙。

背景信息

SQL 防火墙是一种专门设计用于保护数据库安全的软件系统,它通过监控和过滤进出数据库的 SQL 语句,来防御 SQL 注入攻击和其他针对数据库的恶意活动。SQL 注入是一种常见的网络攻击手段,攻击者通过在查询语句中插入恶意 SQL 代码,以此来欺骗数据库执行非授权操作,如窃取数据、修改数据或破坏数据库结构。

OceanBase 通过 SQL 防火墙规则的制定,可以实时监控并拦截数据库 SQL,有效提升数据库的安全能力,保护数据库免受此类攻击的影响。

前提条件

实例的数据库代理版本在 V4.3.2 及以上。数据库代理的相关说明,请参见 数据库代理服务概述

注意事项

开启 SQL 防火墙之前,请详细阅读如下注意事项:

  1. SQL 防火墙是热加载生效,不需要重启数据库代理服务,对所有会话新启动的事务实时生效。请谨慎操作,避免发生误操作影响线上业务流量。

  2. SQL 防火墙开启后会对数据库性能有 10 % 左右的影响。

管理 SQL 防火墙

  1. 登录 OceanBase 控制台

  2. 在左侧导航栏中,单击 实例列表

  3. 在实例列表中,单击目标集群实例名称进入 集群实例工作台

  4. 单击左侧导航栏的 安全设置

  5. 单击安全设置页面的 SQL 防火墙 页签,查看当前已有的防火墙规则列表。

  6. 您可以对当前已有的 SQL 防火墙规则进行管理。

创建 SQL 防火墙规则

  1. 在 SQL 防火墙界面,单击 创建规则

    image

  2. 在创建规则界面填写规则配置。

    参数

    描述

    参数

    描述

    规则名称

    为 SQL 防火墙规则设置的名称,长度为 2~32,只能包含中文、数字、英文字母、下划线、短横线。

    规则描述

    为规则进行一个简单的说明,以便后续查看使用。

    租户

    在下拉框中选择规则生效的租户。

    数据库代理

    选择数据库代理信息。

    数据库账号

    选择规则生效的账号,为空表示所有数据库账号均生效。

    规则类型

    拦截规则。

    模式

    • 检验模式:SQL 类型记录,不真正拦截。

    • 防护模式:拦截 SQL 并记录。

    防火墙规则

    • 拦截特定类型的 SQL:拦截指定类型的 SQL ,可选择 SELECT、UPDATE、INSERT、DELETE、CREATE、DROP、ALTER、TRUNCATE、RENAME、REPLACE。

    • 拦截无 where 条件的 SQL:拦截指定类型中,未带 where 条件的 SQL,可选择 SELECT、UPDATE、DELETE。

    • 拦截自定义 SQL:自定义需要拦截的 SQL 内容,示例如下。

      拦截使用 ORDER BY 或者 GROUP BY 的 SQL:ORDER\s+BY|GROUP\s+BY

    启用规则

    勾选后,规则保存成功后立即生效。不勾选则保留规则配置,可后续进行编辑启用。

  3. 单击 确定

启用 SQL 防火墙规则

  1. 在 SQL 防火墙界面,单击目标规则 操作 列的 编辑

  2. 在编辑规则页面的启用规则下,勾选 启用防火墙规则

编辑 SQL 防火墙规则

  1. 在 SQL 防火墙界面,单击目标规则 操作 列的 编辑

    image

  2. 在编辑规则页面修改规则配置。

    参数

    描述

    参数

    描述

    规则名称

    为 SQL 防火墙规则设置的名称,长度为 2~32,只能包含中文、数字、英文字母、下划线、短横线。

    规则描述

    为规则进行一个简单的说明,以便后续查看使用。

    租户

    在下拉框中选择规则生效的租户。

    数据库代理

    选择数据库代理信息。

    数据库账号

    选择规则生效的账号,为空表示所有数据库账号均生效。

    规则类型

    拦截规则。

    模式

    • 检验模式:SQL 类型记录,不真正拦截。

    • 防护模式:拦截 SQL 并记录。

    防火墙规则

    • 拦截特定类型的 SQL:拦截指定类型的 SQL ,可选择 SELECT、UPDATE、INSERT、DELETE、CREATE、DROP、ALTER、TRUNCATE、RENAME、REPLACE。

    • 拦截无 where 条件的 SQL:拦截指定类型中,未带 where 条件的 SQL,可选择 SELECT、UPDATE、DELETE。

    • 拦截自定义 SQL:自定义需要拦截的 SQL 内容,示例如下。

      拦截使用 ORDER BY 或者 GROUP BY 的 SQL:ORDER\s+BY|GROUP\s+BY

    启用规则

    勾选后,规则保存成功后立即生效。不勾选则保留规则配置,可后续进行编辑启用。

  3. 单击 确定

删除 SQL 防火墙规则

  1. 在 SQL 防火墙界面,单击目标规则 操作 列的 删除

    image

  2. 在弹窗中确认删除信息。

    image

  3. 单击 删除

  • 本页导读 (0)
  • 背景信息
  • 前提条件
  • 注意事项
  • 管理 SQL 防火墙
  • 创建 SQL 防火墙规则
  • 启用 SQL 防火墙规则
  • 编辑 SQL 防火墙规则
  • 删除 SQL 防火墙规则