Penyimpanan rahasia adalah masalah umum saat menggunakan mekanisme kripto.
pgcrypto tidak menyediakan penyimpanan kunci, Anda bebas menyimpan kunci di tempat yang Anda inginkan dan melindunginya semampu Anda.
Menyimpan kunci di database lain, jika dikelola oleh DBA yang sama tidak memberikan banyak keamanan karena DBA dapat mengaksesnya dengan cara yang sama.
Idealnya, Anda akan menyimpan kunci di brankas yang aman dan memintanya dari aplikasi Anda untuk membuat kueri. Itu masih akan terlihat dari DBA saat permintaan berjalan melalui select * from pg_stat_activity
.
Anda dapat menyetel kunci untuk penggunaan sesi SQL secara luas melalui set session my.vars.cryptokey = 'secret';
kemudian gunakan ke dalam kueri Anda dengan sintaks berikut:current_setting('my.vars.cryptokey')::text
Agar (hampir) transparan dari sudut pandang aplikasi, aturan PostgreSQL dapat membantu untuk menerjemahkan secure_column
ke panggilan untuk mendekripsi fungsi dengan kunci sesi yang disimpan. Untuk memasukkan, pemicu pra-penyisipan akan diperlukan.