关系数据库MySQL版SQL拦截功能指引如下。
操作场景
如果您需要对敏感SQL进行拦截,避免因高风险操作导致数据库故障,建议您开启SQL拦截功能并添加相关拦截SQL语句。
前提条件
- 2024年1月18号后新开通的关系数据库MySQL版实例才支持SQL拦截功能。
- 实例状态为: 运行中 。
说明
SQL拦截功能因资源池上线时间不一致,所以会出现个别数据库实例不支持SQL拦截功能,具体以页面返回为准。
SQL拦截功能主要针对表数据查询/变更类型的sql进行按规则拦截,对于show database、show tables...等非表数据查询/变更,规则添加正常,但不会拦截此类语句。
规则是否能够成功添加以查询到的结果为准,由于MySQL中SQL解析影响,尽量不要在拦截规则中的变量添加控制字符。
拦截规则中的变量是指可被替换的部分,例如 INSERT INTO TABLE_NAME VALUES ("???"),其中???就是变量。如果在变量中添加控制字符,可能造成添加规则失效。
操作步骤
SQL拦截语句操作
添加拦截规则
-
在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
-
在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
-
在实例列表中,单击目标实例名称,进入实例基本信息页面。
-
单击SQL拦截,进入拦截日志页签。
-
单击拦截规则页签。
-
在SQL语句输入框中,输入您需要拦截的SQL语句,然后单击设置拦截。
已添加的拦截规则将显示在SQL拦截语句列表中,并对该语句进行拦截。
删除拦截规则
-
在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
-
在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
-
在实例列表中,单击目标实例名称,进入实例基本信息页面。
-
单击SQL拦截,进入拦截日志页签。
-
单击拦截规则页签。
-
在SQL拦截语句列表中,找到目标语句,单击操作列的删除。
如果您需要批量删除语句,您可以勾选多条目标语句,然后单击列表上方的批量删除,即可进行批量删除操作。
SQL拦截日志查询
注意拦截日志非实时采集,以采集任务实际执行时间为准。
-
在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
-
在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
-
在实例列表中,单击目标实例名称,进入实例基本信息页面。
-
单击SQL拦截,进入拦截日志页签。
-
在日志列表中,查看已经被拦截的SQL日志。
您可以查看数据库名、SQL语句、用户名等信息。
注意SQL拦截日志采集频率为每小时,如果执行迁移可用区会导致该时间段的日志丢失。
针对SQL拦截规则只读实例和主实例默认保持一致,因此请您妥善设置拦截规则。
升级数据库版本后,您在低版本中的拦截规则将清空,因此请妥善保存您在低版本中使用的拦截规则。
SQL拦截使用示例
例如您有db1、db2两个库,db1下有两个表aa、bb;db2下有两个表aa、cc。
如果db1和db2库下的两个aa表作为非常重要的表,禁止用户误删除,则写明拦截语句为:
drop table db1.aa;
TRUNCATE TABLE db1.aa;
drop table db2.aa;
TRUNCATE TABLE db2.aa;
注意:不能通过以下语句进行通配,必须指定库名。
drop table aa;(错误示例)
TRUNCATE TABLE aa;(错误示例)
SQL拦截规则应用至其他实例
如果您有多个实例,且需要用到同一套拦截规则,可以在关系数据库MySQL版管理控制台使用SQL拦截规则应用至其他实例的功能。
- 在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 关系数据库MySQL版,进入关系数据库MySQL产品页面。然后单击管理控制台,进入TeleDB数据库概览页面。
- 在左侧导航栏,选择MySQL > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
- 在实例列表中,单击目标实例名称,进入实例基本信息页面。
- 单击SQL拦截,进入拦截日志页签。
- 单击拦截规则页签。
- 在SQL拦截语句列表中,找到需要应用到其他实例的拦截规则语句,然后单击列表上方的批量应用。
- 在SQL拦截规则对话框中,选择想要应用到的实例,然后单击确定。