42501: insufficient_privilege
PostgreSQL¿Qué significa?
El rol no tiene el privilegio necesario para la operación que intenta realizar.
¿Por qué ocurre?
No se otorgó el GRANT necesario sobre la tabla/esquema/base de datos, falta USAGE sobre el esquema, el objeto pertenece a otro rol o las políticas de seguridad a nivel de fila (RLS) bloquean el acceso.
Cómo solucionarlo
Otorgue el privilegio que falta: GRANT SELECT, INSERT ON my_table TO app_role; para el esquema GRANT USAGE ON SCHEMA app_schema TO app_role. Para grants masivos use GRANT ... ON ALL TABLES IN SCHEMA, y ALTER DEFAULT PRIVILEGES para objetos futuros. Vea los privilegios actuales: \dp my_table. Si RLS está activo, revise las políticas correspondientes.