操作场景
RDS-PostgreSQL支持 teledb_firewall
插件,用于PostgreSQL的SQL黑名单扩展,旨在保护来自 SQL 注入或意外查询的数据库。
前提条件
- 请确保您的实例内核大版本满足,本插件所支持的内核版本,请参考支持的版本插件列表。
注意事项
- 只支持explain verbose 可以输出的语句DML。
- 安装插件后,可在管理控制台设置teledb_firewall.firewall参数并重启实例,详情请参见修改RDS-PostgreSQL实例参数。
teledb_firewall.firewall取值如下:
disable
:关闭模式blacklist
:黑名单模式
插件使用
- 安装插件
CREATE EXTENSION IF NOT EXISTS teledb_firewall;
- 卸载插件
DROP EXTENSION IF EXISTS teledb_firewall;
使用示例
--1. 首先使用explain verbose xxx; 获取对应sql的query id
explain verbose select count(1) from pg_class;
--2. 使用函数 teledb_append_blacklist 将获取的query id添加到黑名单中
select teledb_append_blacklist(3307043014);
--3. 查看当前黑名单内容
select * from teledb_firewall.firewall_table;
select * from teledb_firewall.teledb_firewall_statements ;
--4. 使用函数 teledb_remove_blacklist(); 将对应id从黑名单中移除
select teledb_remove_blacklist(3307043014);