PostgreSQL DBA(130) - Extension(pgsql-gzip)
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本文简单介绍了PostgreSQL的插件:pgsql-gzip。该插件可用于对列进行加密和解密。安装clone代码,编译安装[pg12@localhost contrib]$ git clone ht
千家信息网最后更新 2025年11月09日PostgreSQL DBA(130) - Extension(pgsql-gzip)
本文简单介绍了PostgreSQL的插件:pgsql-gzip。该插件可用于对列进行加密和解密。
安装
clone代码,编译安装
[pg12@localhost contrib]$ git clone https://github.com/pramsey/pgsql-gzip.gitCloning into 'pgsql-gzip'...remote: Enumerating objects: 114, done.remote: Counting objects: 100% (114/114), done.remote: Compressing objects: 100% (71/71), done.remote: Total 114 (delta 63), reused 81 (delta 35), pack-reused 0Receiving objects: 100% (114/114), 18.56 KiB | 0 bytes/s, done.Resolving deltas: 100% (63/63), done.[pg12@localhost contrib]$ cd pgsql-gzip/[pg12@localhost pgsql-gzip]$ makegcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -O0 -DOPTIMIZER_DEBUG -g3 -gdwarf-2 -fPIC -I. -I./ -I/appdb/pg12/pg12.0/include/postgresql/server -I/appdb/pg12/pg12.0/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o pg_gzip.o pg_gzip.c -MMD -MP -MF .deps/pg_gzip.Pogcc -std=gnu99 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -O0 -DOPTIMIZER_DEBUG -g3 -gdwarf-2 -fPIC -shared -o gzip.so pg_gzip.o -L/appdb/pg12/pg12.0/lib -Wl,--as-needed -Wl,-rpath,'/appdb/pg12/pg12.0/lib',--enable-new-dtags -lz [pg12@localhost pgsql-gzip]$ make install/bin/mkdir -p '/appdb/pg12/pg12.0/lib/postgresql'/bin/mkdir -p '/appdb/pg12/pg12.0/share/postgresql/extension'/bin/mkdir -p '/appdb/pg12/pg12.0/share/postgresql/extension'/bin/install -c -m 755 gzip.so '/appdb/pg12/pg12.0/lib/postgresql/gzip.so'/bin/install -c -m 644 .//gzip.control '/appdb/pg12/pg12.0/share/postgresql/extension/'/bin/install -c -m 644 .//gzip--1.0.sql '/appdb/pg12/pg12.0/share/postgresql/extension/'[pg12@localhost pgsql-gzip]$ make installcheck/appdb/pg12/pg12.0/lib/postgresql/pgxs/src/makefiles/../../src/test/regress/pg_regress --inputdir=./ --bindir='/appdb/pg12/pg12.0/bin' --dbname=contrib_regression gzip(using postmaster on Unix socket, default port)============== dropping database "contrib_regression" ==============DROP DATABASE============== creating database "contrib_regression" ==============CREATE DATABASEALTER DATABASE============== running regression test queries ==============test gzip ... ok 253 ms===================== All 1 tests passed. =====================[pg12@localhost pgsql-gzip]$体验
创建扩展
[local]:5432 pg12@testdb=# create extension gzippg12@testdb-# ;CREATE EXTENSION[local]:5432 pg12@testdb=#主要的函数包括gzip和gunzip
[local]:5432 pg12@testdb=# \df gzip List of functions Schema | Name | Result data type | Argument data types | Type --------+------+------------------+---------------------------------------------------------------------+------ public | gzip | bytea | uncompressed bytea, compression_level integer DEFAULT '-1'::integer | func public | gzip | bytea | uncompressed text, compression_level integer DEFAULT '-1'::integer | func(2 rows)[local]:5432 pg12@testdb=# \df gunzip List of functions Schema | Name | Result data type | Argument data types | Type --------+--------+------------------+---------------------+------ public | gunzip | bytea | compressed bytea | func(1 row)压缩/解压
[local]:5432 pg12@testdb=# select gzip('测试数据123测试'); gzip ---------------------------------------------------------------------------------- \x1f8b08000000000000037bb6b5fbc5faa9cfa66e78d6bbced0c8f819980b00299ee5af15000000(1 row)[local]:5432 pg12@testdb=# select gunzip('\x1f8b08000000000000037bb6b5fbc5faa9cfa66e78d6bbced0c8f819980b00299ee5af15000000'::bytea); gunzip ---------------------------------------------- \xe6b58be8af95e695b0e68dae313233e6b58be8af95(1 row)[local]:5432 pg12@testdb=# select gunzip(gzip('测试数据123测试')); gunzip ---------------------------------------------- \xe6b58be8af95e695b0e68dae313233e6b58be8af95(1 row)[local]:5432 pg12@testdb=# [local]:5432 pg12@testdb=# select '测试数据123测试'::bytea; bytea ---------------------------------------------- \xe6b58be8af95e695b0e68dae313233e6b58be8af95(1 row)[local]:5432 pg12@testdb=#通过pgsql-gzip可实现非透明的压缩和解压。
参考资料
pgsql-gzip
GZip in PostgreSQL
测试
数据
插件
代码
函数
参考资料
资料
体验
加密
参考
编译
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
甘南软件开发
贵阳哪里可以学网络技术
服务器云储存价格
软件开发wifi广告
如何有效控制软件开发进度
班队会网络安全工作
江苏好的软件开发品质保障
数据库火热程度排名
技术在软件开发的应用
论文如何引用官方数据库
内蒙古专业软件开发价格标准
啥是计算机网络技术
数据库一打开就是蓝屏
食蚁兽网络技术
石嘴山软件开发要多少钱
中国使用国外服务器吗
黑客网络安全学习网站
5G通信网络技术资料
压测怎么构造数据库数据
周村微信小程序软件开发报价
软件开发未来一年的规划
榆树网络安全论文
魔兽世界单机版8.3服务器闪退
discuz 数据库设计
浦东新区本地软件开发要多少钱
成都web前端软件开发有用吗
网络安全研发工程师怎么样
修改wamp数据库端口
网络安全去哪里学习
网络技术推广渠道加盟