Comprensión del comportamiento de enmascaramiento en las operaciones de DML
pg_columnmask se aplica de forma coherente en todas las operaciones de DML, como las instrucciones INSERT, UPDATE, DELETE y MERGE. Al ejecutar estas operaciones, Aurora PostgreSQL enmascara los datos de acuerdo con un principio fundamental: todos los datos leídos del almacenamiento se enmascaran de acuerdo con las políticas aplicables del usuario actual.
El enmascaramiento afecta a algunos de los siguientes componentes de la consulta, como:
cláusulas WHERE
condiciones de JOIN
subconsultas
cláusulas RETURNING
Todos estos componentes funcionan con valores enmascarados, no con los datos originales. Aunque los datos se escriben en el almacenamiento desenmascarado, los usuarios solo ven su vista enmascarada cuando los vuelven a leer.
Aurora PostgreSQL aplica todas las restricciones de la base de datos (NOT NULL, UNIQUE, CHECK, FOREIGN KEY) a los valores almacenados reales, no a los valores enmascarados. En ocasiones, esto puede crear aparentes incoherencias si las funciones de enmascaramiento no se diseñan cuidadosamente.
El enmascaramiento trabaja junto con los permisos por columnas:
Los usuarios sin privilegios SELECT no pueden leer las columnas
Los usuarios con privilegios SELECT ven los valores enmascarados de acuerdo con las políticas aplicables