SQL防火墻(sql_firewall)
更新時間 2025-01-20 19:33:05
最近更新時間: 2025-01-20 19:33:05
分享文章
本小節主要介紹RDS-PostgreSQL的teledb_firewall插件使用方法。
操作場景
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);