⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

透明数据加密(TDE)实现:在存储层用pgcrypto自动加解密

通过触发器+视图模拟Oracle TDE,对敏感列数据自动加密存储,解密显示,且对查询无感。 · 难度:入门 · +10XP

自建TDE:加密对应用透明

本教程使用pgcryptopgp_sym_encryptpgp_sym_decrypt,结合INSTEAD OF触发器。核心设计:创建加密视图替代直接表查询,在视图的INSERT/UPDATE触发器中加密,SELECT时解密。密钥管理使用current_setting('encrypt.key')从环境变量读取。演示如何应对索引需求:使用pg_trgm对加密字段建GIN索引支持模糊查询。

CREATE VIEW secure_employees AS
SELECT id, name, pgp_sym_decrypt(encrypted_salary, current_setting('encrypt.key')) AS salary
FROM employees_encrypted;

CREATE RULE update_salary AS ON UPDATE TO secure_employees DO INSTEAD UPDATE employees_encrypted SET encrypted_salary = pgp_sym_encrypt(NEW.salary, current_setting('encrypt.key')) WHERE id = OLD.id;

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 131 篇
0 完成
🔥 0