看完几个问题和答案后:
> Storing encrypted data in Postgres
> https://dba.stackexchange.com/questions/24370/how-to-use-aes-encryption-in-postgresql
> https://dba.stackexchange.com/questions/59942/secure-postgresql-database-encryption
……并考虑以下评论:
…使用pgcrypto模块似乎最大的问题是在同一个数据库中存储密钥.
这引出了一个问题:
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.jb51.cc/postgresql/191915.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。