I’ve given user x the following
GRANT ALL ON ALL TABLES IN SCHEMA y TO x;
GRANT ALL ON ALL SEQUENCES IN SCHEMA y TO x;
GRANT ALL ON ALL FUNCTIONS IN SCHEMA y TO x;
However in QGIS they dont have access to check/tick the 'update existing field' button. They can chose a field to update and write an expression for its update e.g $area but the OK button remains greyed out. If I as administrator load the layer, the check/tick box appears and I can write and run expressions.
I'm sure its a permissions thing in PostGIS.
Si

