sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:Kryptera kolumn med pgcrypto

Hemlig lagring är ett vanligt problem när man använder kryptomekanismer.

pgcrypto tillhandahåller inte nyckellagring, du är fri att lagra nyckeln där du vill och skydda den som du kan.

Att lagra nyckeln i en annan databas, om den hanteras av samma DBA, ger inte mycket säkerhet eftersom DBA kan komma åt den på samma sätt.

Helst skulle du lagra nyckeln i ett säkert valv och begära den från din applikation för att konstruera frågorna. Den kommer fortfarande att vara synlig från DBA medan begäran körs genom select * from pg_stat_activity .

Du kan ställa in nyckeln för en SQL-session bred användning genom set session my.vars.cryptokey = 'secret'; använd den sedan i dina frågor med följande syntax:current_setting('my.vars.cryptokey')::text

För att vara (nästan) transparent från applikationssynpunkt kan PostgreSQL-regler hjälpa till att översätta secure_column till funktionen för anrop för att dekryptera med den lagrade sessionsnyckeln. För att infoga skulle en förinsättningsutlösare krävas.




  1. Är mysql_real_escape_string() och mysql_escape_string() tillräckliga för appsäkerhet?

  2. Gå med till vänster eller välj från flera tabeller med kommatecken (,)

  3. Hur redigerar man snabbt värden i tabell i SQL Server Management Studio?

  4. Bästa praxis för att lagra taggar i en databas?