sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL:Krypter kolonne med pgcrypto

Hemmelig opbevaring er et almindeligt problem, når du bruger kryptomekanismer.

pgcrypto sørger ikke for nøgleopbevaring, du kan frit gemme nøglen, hvor du vil, og beskytte den, som du kan.

Lagring af nøglen i en anden database, hvis den administreres af samme DBA, giver ikke meget sikkerhed, da DBA kan få adgang til den på samme måde.

Ideelt set ville du gemme nøglen i en sikker boks og anmode om den fra din applikation for at konstruere forespørgslerne. Den vil stadig være synlig fra DBA, mens anmodningen kører gennem select * from pg_stat_activity .

Du kan indstille nøglen til en SQL-session bred brug gennem set session my.vars.cryptokey = 'secret'; brug det derefter i dine forespørgsler med følgende syntaks:current_setting('my.vars.cryptokey')::text

For at være (næsten) gennemsigtig fra applikationssynspunktet, kan PostgreSQL-regler hjælpe med at oversætte secure_column til funktionen opkald til dekryptering med den gemte sessionsnøgle. For at indsætte kræves en trigger før indsættelse.




  1. FUNCTION syntaksfejl

  2. MySQL:Kan jeg lave en venstre join og kun trække én række fra jointabellen?

  3. Hvad er der galt med Cursors?

  4. Hvordan kan jeg oprette forbindelse til en Oracle-database fra Ant ved hjælp af tnsname?