ALTER PROJECTION POLICY

ALTER PROJECTION POLICY

기존 프로젝션 정책(projection policy) 규칙을 새 규칙이나 새 주석으로 교체하고, 프로젝션 정책의 이름을 바꿀 수 있게 해주는 명령이에요. 정책 규칙 변경 사항은 해당 정책을 사용하는 다음 SQL 쿼리가 실행될 때 적용돼요.

출처: 문서

본문

Enterprise Edition(이상)이 필요해요. 업그레이드 문의는 Snowflake Support에 연락하세요.

프로젝션 정책 DDL 참조: Projection policy DDL reference

구문 (Syntax)

ALTER PROJECTION POLICY [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER PROJECTION POLICY [ IF EXISTS ] <name> SET BODY -> <expression>

ALTER PROJECTION POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER PROJECTION POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER PROJECTION POLICY [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'

ALTER PROJECTION POLICY [ IF EXISTS ] <name> UNSET COMMENT

매개변수 (Parameters)

name — 수정할 프로젝션 정책의 식별자를 지정해요.

식별자에 공백이나 특수 문자가 포함되어 있으면 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요구사항을 참고하세요.

RENAME TO new_name — 프로젝션 정책의 새 식별자를 지정해요. 스키마에서 고유해야 해요. 다른 프로젝션 정책에 이미 사용 중인 식별자는 사용할 수 없어요.

자세한 내용은 식별자 요구사항을 참고하세요.

객체의 이름을 바꾸면서 다른 데이터베이스 및/또는 스키마로 이동할 수 있어요. 그러려면 db_name.schema_name.object_name 또는 schema_name.object_name 형식으로 새 위치가 포함된 정규화된 new_name 값을 지정해요.

참고

  • 대상 데이터베이스 및/또는 스키마는 이미 존재해야 해요. 새 위치에 같은 이름의 객체가 이미 있으면 문이 오류를 반환해요.
  • 객체 소유자(즉 객체에 OWNERSHIP 권한이 있는 역할)가 대상 스키마도 소유하지 않는 한, 관리형 접근 스키마로의 이동은 금지돼요.

SET ... — 프로젝션 정책에 설정할 하나 이상의 속성을 지정해요:

BODY -> expression — 열을 투영(project)할지 여부를 결정하는 SQL 식이에요.

식에는 CASE와 기타 논리 문을 포함할 수 있지만 PROJECTION_CONSTRAINT 함수를 호출해야 해요:

PROJECTION_CONSTRAINT(ALLOW=>{TRUE|FALSE}, ENFORCEMENT=><enforcement_style>)
  • ALLOW => { TRUE | FALSE }TRUE는 열이 투영되도록 허용해요. FALSE는 ENFORCEMENT로 지정된 동작으로 열이 투영되지 않도록 해요. FALSE는 최종 결과 테이블에 나타나는 열에만 영향을 줘요.

  • ENFORCEMENT => 'enforcement_style' — ALLOW=FALSE일 때 쿼리가 보호된 열을 포함하면 어떻게 할지 지정해요. 지원되는 값:

    • FAIL — 가장 바깥쪽 쿼리에 보호된 열이 포함되면 쿼리가 실패해요.
    • NULLIFY — 보호된 열의 모든 행이 NULL 값을 반환해요.

    기본값: FAIL

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]태그 이름과 태그 문자열 값을 지정해요.

태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.

COMMENT = 'string_literal' — 프로젝션 정책의 주석을 추가하거나 기존 주석을 덮어써요.

기본값: 값 없음

UNSET ... — 프로젝션 정책의 하나 이상의 속성 및/또는 매개변수를 해제해 기본값으로 되돌려요:

  • TAG tag_name [ , tag_name ... ]
  • COMMENT

속성/매개변수를 재설정할 때는 이름만 지정해야 하며, 값을 지정하면 오류가 반환돼요.

접근 제어 요구사항 (Access control requirements)

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요: GRANT OWNERSHIP

권한 객체 설명
OWNERSHIP Projection policy OWNERSHIP은 객체를 만든 역할에 자동으로 부여되는 객체의 특별한 권한이에요. 소유 역할(또는 MANAGE GRANTS 권한이 있는 역할)이 GRANT OWNERSHIP 명령으로 다른 역할에 이전할 수도 있어요.

스키마의 객체를 조작하려면 상위 데이터베이스와 상위 스키마 각각에 대해 하나 이상의 권한이 필요해요.

지정한 권한 집합을 가진 사용자 정의 역할을 만드는 방법은 사용자 정의 역할 만들기를 참고하세요.

보호 객체에서 SQL 작업을 수행할 때 역할과 권한 부여에 대한 일반 정보는 접근 제어 개요를 참고하세요.

프로젝션 정책 DDL과 권한에 대한 추가 내용은 권한과 명령을 참고하세요.

사용 메모 (Usage notes)

  • 기존 프로젝션 정책을 업데이트하려고 하는데 현재 정의를 확인해야 한다면 DESCRIBE PROJECTION POLICY 명령이나 GET_DDL 함수를 실행해요.
  • 프로젝션 정책 소유자(즉 정책에 OWNERSHIP 권한이 있는 역할)가 대상 스키마도 소유하지 않는 한, 관리형 접근 스키마로의 이동(ALTER PROJECTION POLICY … RENAME TO 구문 사용)은 금지돼요.
  • 메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.

예시 (Examples)

프로젝션 정책 이름을 바꿔요.

ALTER PROJECTION POLICY mypolicy RENAME TO proj_policy_acctnumber;

더 알아보기 (Learn more)