기능 정책 변경
기능 정책 변경 (ALTER FEATURE POLICY)
이 기능은 중화인민공화국에서는 사용할 수 없어요.
feature policy를 변경하거나 이름을 바꿔요. Feature policies는 모든 데이터베이스 또는 특정 데이터베이스, 모든 personal databases, 또는 모든 native apps나 특정 애플리케이션에 적용할 수 있어요. 개요는 Feature policies를 참조해요.
참고:
CREATE FEATURE POLICY , DESCRIBE FEATURE POLICY, DROP FEATURE POLICY, SHOW FEATURE POLICIES
출처: 문서
본문
구문
ALTER FEATURE POLICY [ IF EXISTS ] SET
[ BLOCKED_OBJECT_TYPES_FOR_CREATION = ( [ [ , ... ] ] ) ]
[ COMMENT = '' ]
[ AS $$
$$ ]
ALTER FEATURE POLICY [ IF EXISTS ]
AS $$
$$
ALTER FEATURE POLICY [ IF EXISTS ] UNSET
[ BLOCKED_OBJECT_TYPES_FOR_CREATION ]
[ COMMENT ]
[ POLICY_DEFINITION ]
ALTER FEATURE POLICY [ IF EXISTS ] RENAME TO
ALTER FEATURE POLICY [ IF EXISTS ] SET TAG = '' [ , = '' ... ]
ALTER FEATURE POLICY [ IF EXISTS ] UNSET TAG [ , ... ]
매개 변수
name
변경할 feature policy의 식별자를 지정해요.
식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 해요. 큰따옴표로 묶인 식별자는 대소문자를 구분해요.
자세한 내용은 식별자 요구 사항을 참조하세요.
SET
feature policy에 설정할 속성(하나 이상)을 지정해요.
BLOCKED_OBJECT_TYPES_FOR_CREATION = ( type [ , type ... ] )
생성이 금지되는 객체를 지정해요.
가능한 값은 다음과 같아요:
- AGENTS
- APPLICATION_SERVICE
- ARTIFACT_REPOSITORY
- COMPUTE_POOLS
- DATABASES
- GIT_REPOSITORY
- MCP_SERVERS
- SCHEMA
- SECRET
- TASKS
- WAREHOUSES
- WORKSPACE
계정 수준 객체 유형은 feature policy가 개인 데이터베이스에 바인딩된 경우에는 효과가 없어요. 네이티브 앱 컨텍스트에서만 적용돼요.
COMMENT = 'string_literal'
feature policy에 대한 주석을 지정하는 문자열(리터럴)이에요.
AS $$ ... $$
조건부 생성 규칙을 정의하는 YAML 본문이에요.
기존 정책 본문을 대체해요. 이 절은 SET과 함께 사용하거나 단독 절로 사용할 수 있어요.
구문과 예제는 Feature policy 규칙 및
정책 본문 수정 또는 제거를 참조하세요.
UNSET
feature policy에서 설정 해제할 속성(하나 이상)을 지정해요.
BLOCKED_OBJECT_TYPES_FOR_CREATION
feature policy에서 차단된 객체 유형 목록을 제거해요.
COMMENT
feature policy의 주석을 제거해요.
POLICY_DEFINITION
YAML 정책 본문을 제거하지만 BLOCKED_OBJECT_TYPES_FOR_CREATION 절은 유지해요.
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
태그 이름과 태그 문자열 값을 지정해요.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자예요.
문에서 태그를 지정하는 방법에 대한 자세한 내용은 을 참조하세요.
액세스 제어 요구 사항
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요:
| 권한 | 객체 | 참고 사항 |
|---|---|---|
| APPLY FEATURE POLICY | Account | 현재 계정에 feature policy를 설정하려면 이 권한이 필요해요. |
| APPLY 또는 OWNERSHIP | Feature policy | feature policy를 수정하려면 이 권한 중 하나가 필요해요. |
스키마의 객체를 작업하려면 상위 데이터베이스에 대한 권한이 하나 이상, 상위 스키마에 대한 권한이 하나 이상 필요해요.
지정된 권한 집합을 가진 사용자 지정 역할을 만드는 방법은 을 참조하세요.
보호 가능한 객체에 대해 SQL 작업을 수행하기 위한 역할 및 권한 부여에 대한 일반적인 정보는 액세스 제어 개요를 참조하세요.
사용 참고 사항
- 이전 정책이 계정이나 객체에 적용된 경우, 기존 정책을 강제로 교체하려면 FORCE 옵션을 지정하지 않으면 오류가 반환돼요.
- feature policy가 앱에서 바인딩 해제되면, 해당 앱에 계정 수준
FOR ALL APPLICATIONS정책이 있다면 그 정책이 적용돼요. - feature policy가 데이터베이스에서 바인딩 해제되면, 계정 수준
FOR ALL DATABASES(또는 개인 데이터베이스의 경우FOR ALL PERSONAL DATABASES) 정책이 있다면 그 정책이 적용돼요.
예제
다음 예제는 feature policy의 BLOCKED_OBJECT_TYPES_FOR_CREATION 속성을 설정하여 앱이 데이터베이스나 태스크를 생성하지 못하도록 해요:
ALTER FEATURE POLICY block_create_db_policy SET
BLOCKED_OBJECT_TYPES_FOR_CREATION = (DATABASES, TASKS);
다음 예제는 feature policy의 YAML 본문을 대체해요:
ALTER FEATURE POLICY my_policy AS $$
blocked_creation_rules:
- object_type: TABLE
block_when: "$IS_TEMPORARY"
$$;
block_when 표현식은 $ 변수 축약형을 사용해요. 사용 가능한 속성과 동일한 SYS_CONTEXT 형식은
사용 가능한 컨텍스트를 참조하세요.
다음 예제는 YAML 본문을 제거하지만 차단된 객체 유형은 유지해요:
ALTER FEATURE POLICY my_policy UNSET POLICY_DEFINITION;
다음 예제는 feature policy의 이름을 block_create_db_policy에서 block_create_db_task_policy로 변경해요:
ALTER FEATURE POLICY block_create_db_policy RENAME TO block_create_db_task_policy;