适用范围
当前仅支持PostgreSQL 16
pg_tde简介
pg_tde插件是由Percona开发的一个开源插件,提供PostgreSQL数据库的表级数据透明加密功能。
pg_tde主要特性
- 加密堆表及其附属的TOAST对象
- 加密key支持Hashicorp Vault server存储或本地文件存储
- 支持物理流复制
- 支持数据加密的主密钥循环更新,且db级独立设置
编译安装
tar zxvf pg_tde-1.0.0-beta.tar.gz
cd pg_tde-1.0.0-beta
make USE_PGXS=1 pg_config=/opt/pg16/bin/pg_config
make USE_PGXS=1 pg_config=/opt/pg16/bin/pg_config install
配置使用
pg_tde扩展必须加载到shared_preload_libraries中,postgresql.conf添加动态库:
shared_preload_libraries='pg_tde'
修改shared_preload_libraries参数后需要重启数据库实例。
pg_ctl restart -D $PGDATA
创建扩展
CREATE DATABASE db_tde;
\c db_tde;
CREATE EXTENSION pg_tde ;
建立key provider,本地文件存储方式
SELECT pg_tde_add_key_provider_file('provider1','/home/postgres/tde_key_file');
添加主密钥
SELECT pg_tde_set_principal_key('my-principal-key', 'provider1');
创建加密表
CREATE TABLE test_enc (
id SERIAL PRIMARY KEY,
t VARCHAR(32)
) USING pg_tde_basic;
除了建表时显式设置表的access method,还可以设置default_table_access_method参数。
SET default_table_access_method = pg_tde_basic;
查询表是否已加密
SELECT pgtde_is_encrypted('test_enc');
参考文档
https://github.com/Percona-Lab/pg_tde
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




