首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL:用pgcrypto加密列

PostgreSQL:用pgcrypto加密列
EN

Stack Overflow用户
提问于 2017-02-23 23:51:00
回答 1查看 7.1K关注 0票数 8

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

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

..。考虑到这些评论:

..。使用pgcrypto模块的最大问题似乎是密钥存储在同一个数据库中。

这就引出了一个问题:

将密钥存储在不同的数据库中并通过外部数据包装器(如Postgresql_FDW )访问它是否符合最佳实践?

EN

回答 1

Stack Overflow用户

发布于 2018-01-10 13:11:56

在使用密码机制时,秘密存储是常见的问题。

pgcrypto不提供povide密钥存储,您可以自由地将密钥存储在您想要的位置,并尽可能地保护它。

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

理想情况下,您应该将密钥存储在一个安全的保险库中,并从您的应用程序中请求它,以便构造查询。在请求通过select * from pg_stat_activity运行时,DBA仍然可以看到它。

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

从应用程序的角度来看,为了(几乎)透明,PostgreSQL规则可能有助于将secure_column转换为具有会话存储密钥的解密函数调用。插入时,需要一个预插入触发器。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42428360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档