Tajné úložiště je běžným problémem při používání kryptomechanismů.
pgcrypto neposkytuje úložiště klíčů, můžete si klíč uložit, kam chcete, a chránit jej, jak můžete.
Uložení klíče v jiné databázi, pokud je spravováno stejným DBA, neposkytuje příliš velké zabezpečení, protože DBA k němu může přistupovat stejným způsobem.
V ideálním případě byste klíč uložili do zabezpečeného trezoru a vyžádali si jej od své aplikace, abyste mohli sestavit dotazy. Bude stále viditelné z DBA, zatímco požadavek běží prostřednictvím select * from pg_stat_activity
.
Klíč můžete nastavit pro široké použití relace SQL pomocí set session my.vars.cryptokey = 'secret';
pak jej použijte ve svých dotazech s následující syntaxí:current_setting('my.vars.cryptokey')::text
Aby byla z aplikačního hlediska (téměř) transparentní, pravidla PostgreSQL mohou pomoci při překladu secure_column
k volání funkce dešifrování pomocí uloženého klíče relace. Pro vložení by byl vyžadován spouštěč předběžného vložení.