これによると answer によると、pgcryptoで完全に安全なデータベース暗号化を行うことはできません。
さて、2年後(postgresql 9.3)、安全なデータベース暗号化を実現するための新しい拡張機能や新しい方法はありますか、それともアプリケーションサーバーでこれを行うことが、データベースにアクセスできる誰かがデータを復号化できないようにする唯一の方法ですか?
Pgcryptoには大幅な機能強化はありません。また、それらを使用するクエリがログに記録されないように関数に機密マークを付ける機能はありません。とにかく、1つのセキュリティホールを埋め、別のセキュリティホールを作成します。
DBにキーを実際にstoreしない限り、本質的にDBにデータを復号化する機能を与えていません。ログ、ネットワークプロトコルキャプチャ(SSLでない場合)、pg_stat_activity
など。DBサーバーとアプリサーバーの両方を信頼している場合、これは実際にはそれほど重要ではない可能性があります。それでもなお、DBが復号化キーをまったく表示しない方が良いと私は思います。
以下も参照してください。