Lưu trữ bí mật là một vấn đề phổ biến khi sử dụng vi sinh vật tiền điện tử.
pgcrypto không cung cấp khả năng lưu trữ khóa, bạn có thể tự do lưu trữ khóa ở nơi bạn muốn và bảo vệ nó khi bạn có thể.
Lưu trữ khóa trong một cơ sở dữ liệu khác, nếu được quản lý bởi cùng một DBA sẽ không cung cấp nhiều bảo mật vì DBA có thể truy cập nó theo cách tương tự.
Lý tưởng nhất là bạn nên lưu trữ khóa trong một kho bảo mật và yêu cầu nó từ ứng dụng của bạn để tạo các truy vấn. Nó sẽ vẫn hiển thị từ DBA trong khi yêu cầu đang chạy qua select * from pg_stat_activity
.
Bạn có thể đặt khóa để sử dụng rộng rãi phiên SQL thông qua set session my.vars.cryptokey = 'secret';
sau đó sử dụng nó vào các truy vấn của bạn với cú pháp sau:current_setting('my.vars.cryptokey')::text
Để (gần như) minh bạch theo quan điểm ứng dụng, các quy tắc PostgreSQL có thể giúp dịch secure_column
gọi đến chức năng giải mã với khóa được lưu trữ phiên. Để chèn, cần phải có trình kích hoạt chèn trước.