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표현식만 바꿀 수 있어요. 그 외 속성은 정책을 드롭하고 재생성해야 해요.- 정책이 적용되는 테이블의 소유자여야 정책을 변경할 수 있어요.
- 절을 생략하면 정책의 해당 부분은 그대로 유지돼요.