内容提要
Percona正在开发PG_TDE,这是一个用AES-CTR加密算法加密数据的开源扩展程序。他们希望从用户那里获得反馈和测试,以确保其稳定性。文章提供了在Docker容器中运行PG_TDE的说明,并演示了如何创建和查询加密表。Percona鼓励用户测试该扩展程序,以帮助改进产品并推动PostgreSQL的发展。
延伸解读
PG_TDE 的定位与现状
PG_TDE 是 Percona 为 PostgreSQL 16 及以上版本开发的实验性透明数据加密访问方法,采用 AES-CTR 算法,旨在解决静态数据保护问题。目前该扩展处于积极开发阶段,尚未成为 PostgreSQL 原生功能,因此用户测试和反馈对完善其稳定性至关重要。
透明数据加密的实际表现
在 Docker 环境中测试时,加密表与非加密表的查询结果完全一致,用户无需修改查询语句。但可通过 pgtde_is_encrypted() 函数检查表是否加密,这为验证加密状态提供了便利,同时体现了透明加密对应用透明的基本特性。
参与测试的价值与途径
Percona 鼓励用户在测试机器上部署 PG_TDE 并尽可能多地运行实例,以发现潜在问题。反馈可通过 GitHub 仓库或论坛提交,这不仅能帮助改进产品,也能避免自身成为未来可能遇到的边缘案例,推动 PostgreSQL 生态发展。
Q&A
PG_TDE是什么?它有什么作用?
PG_TDE是Percona正在开发的一个开源扩展程序,为PostgreSQL 16及更高版本提供实验性的透明数据加密(TDE)访问方法。它使用AES-CTR加密算法在文件级别加密数据,解决静态数据保护问题。
为什么PostgreSQL需要透明数据加密(TDE)?
PostgreSQL本身没有原生的透明数据加密解决方案,而TDE能在文件级别加密数据,保护静态数据。其他数据库已有此功能,用户反馈希望PostgreSQL也具备,因此Percona将其作为开源扩展提供。
如何在Docker中运行PG_TDE?
首先确保系统已安装Docker。然后运行命令:docker run --name pg-tde -e POSTGRES_PASSWORD=mysecretpassword -d perconalab/postgres-tde-ext。之后可以用docker run -it --rm postgres psql -h 172.17.0.2 -U postgres连接到实例。
如何创建加密表并插入数据?
使用CREATE TABLE语句并在末尾加上'USING pg_tde',例如:CREATE TABLE test_enc (id SERIAL, t VARCHAR(32), PRIMARY KEY(id)) USING pg_tde; 然后可以像普通表一样插入数据。
如何检查一个表是否被加密?
可以使用函数pgtde_is_encrypted('<table name>')来检查。如果返回't'表示已加密,返回'f'表示未加密。
查询加密表和非加密表的结果有区别吗?
没有区别。查询加密表(如test_enc)和普通表(如test_basic)返回的数据完全相同,用户无需改变查询方式。
如何向Percona提供PG_TDE的反馈?
可以通过GitHub仓库或论坛提供反馈。Percona鼓励用户下载PG_TDE到测试机上进行测试,并分享体验(无论好坏),以帮助改进产品。