PostgreSQL。用pgcrypto加密列[英] PostgreSQL: Encrypt Column With pgcrypto

本文是小编为大家收集整理的关于PostgreSQL。用pgcrypto加密列的处理方法,想解了PostgreSQL。用pgcrypto加密列的问题怎么解决?PostgreSQL。用pgcrypto加密列问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我需要在PostgreSQL 9.6数据库中加密一些列.加密的数据本质上是敏感的.但是,数据不是密码或其他身份验证凭据.该数据将需要解密以进行统计分析和用户的消费.

阅读了几个问题和答案后:

...并考虑以下评论:

在此处输入图像说明

...使用PGCrypto模块似乎最大的问题是在同一数据库中的键的存储.

.

这就提出了一个问题:

将键存储在不同的数据库中并通过外国数据包装器访问它是一致的,例如Postgresql_fdw?

推荐答案

使用加密麦卡尼主义时,秘密存储是一个常见的问题.

pgcrypto不键入密钥存储,您可以自由存储所需的钥匙并尽可能保护它.

将密钥存储在另一个数据库中,如果由同一DBA管理,则不会提供太多的安全性,因为DBA可以以相同的方式访问它.

理想情况下,您将密钥存储在安全保险库中,并从应用程序中请求它以构建查询.当请求通过select * from pg_stat_activity.

时,DBA仍然可以看到它.

您可以通过set session my.vars.cryptokey = 'secret';进行广泛使用的SQL会话设置键,然后使用以下语法将其用于查询:current_setting('my.vars.cryptokey')::text

从应用程序的角度来看,

几乎是(几乎)透明的,PostgreSQL规则可能有助于将secure_column转换为使用会话存储的密钥解密函数的调用.为了插入,需要一个预插入触发器.

本文地址:https://www.itbaoku.cn/post/1763778.html