Skip to content

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