PostgreSQL:ColumnLevelSecurity
grant update 를 사용한 방법
Update trigger 를 사용한 방법
CREATE OR REPLACE FUNCTION public.validate_profile_update()
RETURNS trigger
LANGUAGE plpgsql
AS $function$BEGIN
IF NEW.is_admin <> OLD.is_admin THEN
RAISE EXCEPTION 'Updating "is_admin" is not allowed';
END IF;
RETURN NEW;
END;$function$
CREATE TRIGGER before_profile_update
BEFORE INSERT OR UPDATE
ON profiles
FOR EACH ROW
WHEN (row_security_active('profiles'))
EXECUTE FUNCTION validate_profile_update();
See also
Favorite site