我想创建一个使用 PostgreSQL 作为数据库的 Web 应用程序。我希望对数据库进行加密,这样即使是对数据库服务器具有 root 访问权限的攻击者也无法解密数据(或者至少他将不得不处理临时内存中的数据,这很困难)。我不关心架构,只关心表的内容。
我也不想将解密密钥存储在应用程序服务器上的某个位置(既不在配置文件中,也不在硬编码中)。
相反,我的想法是使用用户通过 Web 应用程序提供并在运行时解密的密钥来加密整个数据库(或者只是表和行?)。
PostgreSQL 是否可以实现这种情况,我有哪些选项可以实现这一点?
旁注:这是一个基于 .NET 的应用程序 (ASP.NET MVC3),我使用的是 Npsql 驱动程序。