ALTER POLICY

ALTER POLICY

ALTER POLICY는 행 단위 보안(row-level security) 정책의 정의를 바꾸는 명령이에요. 정책의 적용 대상 역할 목록과 USING·WITH CHECK 표현식을 수정할 수 있어요.

출처: PostgreSQL 문서

본문

문법 (Synopsis)

ALTER POLICY name ON table_name RENAME TO new_name

ALTER POLICY name ON table_name
    [ TO { role_name | PUBLIC | CURRENT_ROLE | CURRENT_USER | SESSION_USER } [, ...] ]
    [ USING ( using_expression ) ]
    [ WITH CHECK ( check_expression ) ]

설명 (Description)

ALTER POLICY는 기존 행 단위 보안 정책의 정의를 변경해요. ALTER POLICY는 정책이 적용되는 역할 집합과 USING, WITH CHECK 표현식만 수정할 수 있다는 점에 유의하세요. 정책이 적용되는 명령이나 허용적(permissive)/제한적(restrictive) 여부 같은 다른 속성을 바꾸려면 정책을 드롭하고 다시 만들어야 해요.

ALTER POLICY를 쓰려면 정책이 적용되는 테이블의 소유자여야 해요.

두 번째 형태의 ALTER POLICY에서는 역할 목록, using_expression, check_expression이 지정된 경우 각각 독립적으로 교체돼요. 이 절 중 하나가 생략되면 정책의 해당 부분은 그대로 유지돼요.

파라미터 (Parameters)

name — 변경할 기존 정책의 이름이에요.

table_name — 정책이 적용되는 테이블의 이름이에요 (스키마 한정을 써도 돼요).

new_name — 정책의 새 이름이에요.

role_name — 정책이 적용되는 역할(들)이에요. 한 번에 여러 역할을 지정할 수 있어요. 모든 역할에 정책을 적용하려면 PUBLIC을 사용해요.

using_expression — 정책의 USING 표현식이에요. 자세한 내용은 CREATE POLICY를 참고하세요.

check_expression — 정책의 WITH CHECK 표현식이에요. 자세한 내용은 CREATE POLICY를 참고하세요.

호환성 (Compatibility)

ALTER POLICY는 PostgreSQL 확장 기능이에요.

더 알아보기 (Learn more)

  • ALTER POLICY는 역할 목록과 USING·WITH CHECK 표현식만 바꿀 수 있어요. 그 외 속성은 정책을 드롭하고 재생성해야 해요.
  • 정책이 적용되는 테이블의 소유자여야 정책을 변경할 수 있어요.
  • 절을 생략하면 정책의 해당 부분은 그대로 유지돼요.