暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

透明加密插件pg_tde使用简介

原创 彭冲 2024-09-13
252

适用范围

当前仅支持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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论