ALTER PRIVACY POLICY¶
기존 개인정보 보호정책 의 속성을 수정합니다.
조심
budget_limit
, max_budget_per_aggregate
또는 budget_window
를 변경하면 ALTER 명령에 지정되지 않은 속성은 전부 기본값으로 돌아갑니다. 매개 변수의 현재 값을 얻으려면 DESCRIBE PRIVACY POLICY 명령을 실행하십시오.
구문¶
ALTER PRIVACY POLICY [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER PRIVACY POLICY [ IF EXISTS ] <name> SET BODY -> <expression>
ALTER PRIVACY POLICY <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER PRIVACY POLICY <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER PRIVACY POLICY [ IF EXISTS ] <name> SET COMMENT = '<string_literal>'
ALTER PRIVACY POLICY [ IF EXISTS ] <name> UNSET COMMENT
매개 변수¶
name
변경할 개인정보 보호정책의 식별자를 지정합니다.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
RENAME TO new_name
개인정보 보호정책의 새 식별자를 지정하며, 스키마에 고유한 식별자여야 합니다. 다른 개인정보 보호정책에 대해 식별자가 이미 준비되어 있으면 새 식별자를 사용할 수 없습니다.
자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
선택적으로 오브젝트의 이름을 바꾸는 동안 오브젝트를 다른 데이터베이스 및/또는 스키마로 이동할 수 있습니다. 그러려면 각각
db_name.schema_name.object_name
또는schema_name.object_name
형식으로 새 데이터베이스 및/또는 스키마 이름을 포함하는 정규화된new_name
값을 지정하십시오.참고
대상 데이터베이스 및/또는 스키마가 이미 있어야 합니다. 또한, 새 위치에 이름이 같은 오브젝트가 있으면 안 됩니다. 그렇지 않으면 문이 오류를 반환합니다.
오브젝트 소유자(즉, 오브젝트에 대한 OWNERSHIP 권한이 있는 역할) 역시 대상 스키마를 소유하지 않는 한 오브젝트를 관리되는 액세스 스키마로 이동하는 것은 금지됩니다.
SET ...
개인정보 보호정책에 대해 설정할 하나 이상의 속성을 지정합니다.
BODY -> expression
정책에 대해 새로운 본문을 지정합니다.
본문의 SQL 식은 정책의 반환 값을 제어하기 위해 NO_PRIVACY_POLICY와 PRIVACY_BUDGET이라는 두 함수를 호출합니다. 정책이 할당된 테이블에 대해 쿼리가 실행될 경우 Snowflake는 본문의 조건을 평가하여 적절한 함수를 호출하고 값을 반환합니다. 이 반환 값에 따라 개인정보가 보호되는 테이블에 대한 쿼리와 연관된 개인정보 보호 예산(있는 경우)이 결정됩니다.
이 식에서는 CURRENT_ROLE 또는 INVOKER_ROLE 과 같은 컨텍스트 함수를 사용하여 사용자 또는 사용자 그룹을 개인정보 보호 예산과 연결할 수 있습니다.
본문의 식에서 CASE 블록을 사용하는 경우 NO_PRIVACY_POLICY 또는 PRIVACY_BUDGET을 호출하는 ELSE 문을 포함해야 합니다. 모든 사용자는 개인정보 보호 예산에 연결되거나 개인정보가 보호되는 테이블에 대한 무제한 액세스 권한이 있어야 합니다. 사용자가 개인정보가 보호되는 테이블이나 뷰에 액세스해서는 안 되는 경우에는 개인정보 보호 정책에서 이를 정의하려고 하지 말고 SELECT 권한을 취소하십시오.
NO_PRIVACY_POLICY
쿼리가 개인정보 보호 정책이 할당된 테이블 또는 뷰에 제한 없이 액세스할 수 있도록 하려면 본문의 식을 사용하여
NO_PRIVACY_POLICY
함수를 호출합니다.PRIVACY_BUDGET
정책에서 개인정보 보호 예산을 반환하려면 본문의 식을 사용하여
PRIVACY_BUDGET
함수를 호출하십시오. 이 식에는 쿼리를 실행 중인 사용자와 같은 요소를 기반으로 정책이 다양한 쿼리에 대해 서로 다른 개인정보 보호 예산을 반환할 수 있는 조건이 포함될 수 있습니다.계정 간 협업에서 개인정보 보호 예산은 컨슈머 계정의 계정 식별자에 따라 자동으로 네임스페이스가 지정되므로, 개인정보 보호 예산의 이름이 같더라도 서로 다른 두 컨슈머 계정이 동일한 개인정보 보호 예산을 공유하지 못합니다. CURRENT_ACCOUNT 함수를 사용하여 계정 이름과 개인정보 보호 예산 이름을 연결하면 개인정보 보호 예산을 구분하는 데 도움이 될 수 있습니다. 예를 들어,
PRIVACY_BUDGET(BUDGET_NAME => 'external_budget.' || CURRENT_ACCOUNT())
와 같이 함수를 호출할 수 있습니다.PRIVACY_BUDGET
함수의 ㅅ서명은 다음과 같습니다.PRIVACY_BUDGET( BUDGET_NAME=> '<string>' [, BUDGET_LIMIT=> <decimal> ] [, MAX_BUDGET_PER_AGGREGATE=> <decimal> ] [, BUDGET_WINDOW=> <string> ] )
개인정보 보호 예산 인자:
BUDGET_NAME => expression
개인정보 보호 예산의 이름으로 확인됩니다. Snowflake에서는 개인정보 보호정책 본문에 개인정보 보호 예산의 이름이 지정되면 예산을 자동으로 생성합니다.
BUDGET_LIMIT => decimal
이 개인정보 보호정책의 예산 한도를 지정하는 0보다 큰 10진수입니다. 이를 통해 허용되는 개인정보 보호 손실의 총금액을 관리합니다. 이 값을 조정하면 새로 고침 기간 동안 이 개인정보 보호 예산으로 보호되는 테이블에 대해 계산할 수 있는 전체 차등 비공개 집계 수가 변경됩니다. 누적 개인정보 보호 손실액이 이 수치를 초과하게 만드는 쿼리를 실행하는 경우 해당 쿼리는 실패합니다. 대략적인 추정치로,
MAX_BUDGET_PER_AGGREGATE=1
에서 예산 한도가 233이므로 새로 고침 기간당 약 1,000개를 집계할 수 있습니다.기본값: 233.0
MAX_BUDGET_PER_AGGREGATE => decimal
쿼리에서 각 집계 함수에 사용되는 개인정보 보호 예산을 지정합니다. 이 값을 조정하면 각 집계 쿼리에 추가되는 노이즈의 양은 물론이고, 예산 한도에 도달하기 전에 계산할 수 있는 집계 수도 변경됩니다. 예를 들어,
select count(*), avg(a) ...
쿼리에는count(*)
및avg(a)
라는 두 집계가 있습니다. 0보다 큰 10진수 값을 지정하십시오.기본값: 0.5
BUDGET_WINDOW => string
개인정보 보호 예산을 얼마나 자주 새로 고치는지, 즉 누적 개인정보 보호 손실이 얼마나 자주 0으로 재설정되는지를 나타냅니다. 유효한 값:
Daily
: 매일 12:00 AM UTC에 새로 고쳐집니다.Weekly
: 매주 일요일 12:00 AM UTC에 새로 고쳐집니다.Monthly
: 매월 1일 12:00 AM UTC에 새로 고쳐집니다.Yearly
: 1월 1일 12:00 AM UTC에 새로 고쳐집니다.Never
: 개인정보 보호 예산은 절대로 새로 고쳐지지 않습니다.
기본값: Weekly
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
태그 이름과 태그 문자열 값을 지정합니다.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.
문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.
COMMENT = 'string_literal'
개인정보 보호정책에 대한 설명을 추가하거나 기존 설명을 덮어씁니다.
기본값: 값 없음
UNSET ...
개인정보 보호정책에 대해 기본값으로 재설정하여 설정 해제할 하나 이상의 속성 및/또는 매개 변수를 지정합니다.
TAG tag_name [ , tag_name ... ]
COMMENT
속성/매개 변수를 재설정할 때는 이름만 지정하십시오. 속성 값을 지정하면 오류가 반환됩니다.
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
OWNERSHIP |
개인정보 보호정책 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
기존 개인정보 보호정책을 업데이트하고 정책의 현재 정의를 확인해야 할 경우 DESCRIBE PRIVACY POLICY 명령을 실행하십시오. 또한 GET_DDL 함수를 사용하여 본문을 포함한 개인정보 보호정책의 전체 정의를 얻을 수도 있습니다.
개인정보 보호정책 소유자(즉, 개인정보 보호정책에 대한 OWNERSHIP 권한을 가진 역할) 역시 대상 스키마를 소유하지 않는 한 (ALTER PRIVACY POLICY … RENAME TO 구문을 사용하여) 개인정보 보호정책을 관리되는 액세스 스키마 로 이동하는 것은 금지됩니다.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
예¶
항상 analysts
로 명명된 예산을 반환하도록 개인정보 보호정책 my_priv_policy
의 본문을 수정합니다.
-- Modify the body of privacy policy "my_priv_policy" so it always returns a -- budget named "analysts" ALTER PRIVACY POLICY my_priv_policy SET BODY -> PRIVACY_BUDGET(BUDGET_NAME => 'analysts'); -- Set budget limit to 50 and max budget per aggregate to 0.1 -- budget window is not mentioned so it is reset to its default value ALTER PRIVACY POLICY users_policy SET BODY -> privacy_budget(budget_name=>'analysts', budget_limit=>50, max_budget_per_aggregate=>0.1);