ALTER SESSION POLICY

ALTER SESSION POLICY

기존 세션 정책(session policy)의 속성을 수정하는 명령이에요. 세션 정책 속성에 대한 변경 사항은 해당 정책을 사용하는 다음 SQL 쿼리가 실행될 때 적용돼요.

출처: 문서

본문

세션 정책 DDL 참조: Session Policy DDL Reference

구문 (Syntax)

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

ALTER SESSION POLICY [ IF EXISTS ] <name> SET
  [ SESSION_IDLE_TIMEOUT_MINS = <integer> ]
  [ SESSION_UI_IDLE_TIMEOUT_MINS = <integer> ]
  [ SESSION_MAX_LIFESPAN_MINS = <integer> ]
  [ SESSION_UI_MAX_LIFESPAN_MINS = <integer> ]
  [ ALLOWED_SECONDARY_ROLES = ( [ { 'ALL' | <role_name> [ , <role_name> ... ] } ] ) ]
  [ BLOCKED_SECONDARY_ROLES = ( [ { 'ALL' | <role_name> [ , <role_name> ... ] } ] ) ]
  [ AGENT_RESTRICTED_SESSION_SCOPE = { '<predefined_scope>' | '<rss_object_name>' | $$ <yaml_definition> $$ } ]
  [ COMMENT = '<string_literal>' ]

ALTER SESSION POLICY [ IF EXISTS ] <name> SET
  TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER SESSION POLICY [ IF EXISTS ] <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER SESSION POLICY [ IF EXISTS ] <name> UNSET
  [ SESSION_IDLE_TIMEOUT_MINS ]
  [ SESSION_UI_IDLE_TIMEOUT_MINS ]
  [ SESSION_MAX_LIFESPAN_MINS ]
  [ SESSION_UI_MAX_LIFESPAN_MINS ]
  [ ALLOWED_SECONDARY_ROLES ]
  [ BLOCKED_SECONDARY_ROLES ]
  [ AGENT_RESTRICTED_SESSION_SCOPE ]
  [ COMMENT ]

매개변수 (Parameters)

name — 세션 정책의 식별자로, 계정에서 고유해야 해요. 식별자 값은 알파벳 문자로 시작해야 하며, 전체 식별자 문자열을 큰따옴표로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없어요(예: "My object"). 큰따옴표로 묶은 식별자는 대소문자를 구분해요. 자세한 내용은 식별자 요구사항을 참고하세요.

RENAME TO new_name — 세션 정책의 새 식별자를 지정해요. 계정에서 고유해야 해요. 자세한 내용은 식별자 요구사항을 참고하세요. 객체의 이름을 바꾸면서 다른 데이터베이스 및/또는 스키마로 이동할 수 있어요. 그러려면 db_name.schema_name.object_name 또는 schema_name.object_name 형식으로 새 위치가 포함된 정규화된 new_name 값을 지정해요.

참고

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

SET ... — 공백, 콤마 또는 줄바꿈으로 구분해 세션 정책에 설정할 하나 이상의 매개변수를 지정해요.

SESSION_IDLE_TIMEOUT_MINS = integer — Snowflake 클라이언트와 프로그래매틱 클라이언트에 대해, 사용자가 다시 인증해야 하기 전에 세션이 유휴 상태일 수 있는 시간(분)이에요. 값을 지정하지 않으면 Snowflake가 기본값을 사용해요. 5부터 1440까지의 정수일 수 있어요.

기본값: 240 (4시간)

SESSION_UI_IDLE_TIMEOUT_MINS = integer — Snowsight에 대해, 사용자가 다시 인증해야 하기 전에 세션이 유휴 상태일 수 있는 시간(분)이에요. 값을 지정하지 않으면 Snowflake가 기본값을 사용해요. 5부터 1440까지의 정수일 수 있어요.

기본값: 1080 (18시간)

SESSION_MAX_LIFESPAN_MINS = integer — Snowflake 클라이언트와 프로그래매틱 클라이언트에 대해, 활동 여부와 무관하게 사용자가 다시 인증해야 하기 전에 세션이 활성 상태로 유지될 수 있는 최대 시간(분)이에요. 값을 지정하지 않으면 Snowflake가 기본값을 사용해요. 0부터 43200(30일)까지의 정수일 수 있어요. 0은 최대 수명이 적용되지 않음을 의미해요.

기본값: 0 (최대 수명 미적용)

SESSION_UI_MAX_LIFESPAN_MINS = integer — Snowsight에 대해, 활동 여부와 무관하게 사용자가 다시 인증해야 하기 전에 세션이 활성 상태로 유지될 수 있는 최대 시간(분)이에요. 값을 지정하지 않으면 Snowflake가 기본값을 사용해요. 0부터 43200(30일)까지의 정수일 수 있어요. 0은 최대 수명이 적용되지 않음을 의미해요.

기본값: 0 (최대 수명 미적용)

ALLOWED_SECONDARY_ROLES = ( [ { 'ALL' | role_name [ , role_name ... ] } ] ) — 세션 정책의 보조 역할(있는 경우)을 지정해요. 속성의 가능한 값:

  • () — 보조 역할을 허용하지 않아요.
  • ('ALL') — 모든 보조 역할을 허용해요.
  • ( role_name [ , role_name ... ] ) — 지정된 역할을 보조 역할로 허용해요. 보조 역할은 사용자 정의 계정 역할 또는 시스템 역할일 수 있어요. 역할 이름을 Snowflake에 저장된 그대로 지정해요. 자세한 내용은 식별자 요구사항을 참고하세요.

기본값: ('ALL'). 이 속성을 해제하면 DESCRIBE SESSION POLICY 명령 출력의 값은 'ALL'이에요.

BLOCKED_SECONDARY_ROLES = ( [ { 'ALL' | role_name [ , role_name ... ] } ] ) — 세션 정책의 차단된 보조 역할(있는 경우)을 지정해요. 차단된 보조 역할은 허용된 보조 역할보다 우선해요. 속성의 가능한 값:

  • () — 모든 보조 역할을 허용해요.
  • ('ALL') — 보조 역할을 허용하지 않아요.
  • ( role_name [ , role_name ... ] ) — 지정된 역할을 보조 역할로 차단해요. 지정된 역할과 그 역할에 부여된 역할은 보조 역할로 활성화할 수 없어요. 이러한 차단된 역할은 사용자 정의 계정 역할 또는 시스템 역할일 수 있어요. 역할 이름을 Snowflake에 저장된 그대로 지정해요. 자세한 내용은 식별자 요구사항을 참고하세요.

기본값: (). 이 속성을 해제하면 DESCRIBE SESSION POLICY 명령 출력의 값은 '()'이에요.

AGENT_RESTRICTED_SESSION_SCOPE = { '<predefined_scope>' | '<rss_object_name>' | $$ <yaml_definition> $$ } — 세션에서 에이전트가 활성화될 때 Snowflake가 적용하는 권한 상한(privilege ceiling)이에요. 활성 에이전트가 없으면 이 속성은 무시돼요. 값과 YAML 구조는 에이전트용 제한 세션 범위를 참고하세요.

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

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며, 최대 문자 수는 256이에요. 문에서 태그를 지정하는 방법은 태그 할당량을 참고하세요.

UNSET ... — 세션 정책에서 해제할 하나 이상의 매개변수를 지정해 시스템 기본값으로 되돌려요. 하나의 ALTER 문으로 여러 속성을 재설정할 수 있어요. 각 속성은 콤마로 구분해야 해요. 속성을 재설정할 때는 이름만 지정해요. 값을 지정하면 오류가 반환돼요.

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

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

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

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

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

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

세션 정책 DDL과 권한에 대한 추가 내용은 세션 정책 관리를 참고하세요.

사용 메모 (Usage notes)

  • 기존 세션 정책을 업데이트하려고 하는데 현재 정의를 확인해야 한다면 GET_DDL 함수를 호출하거나 DESCRIBE SESSION POLICY 명령을 실행해요.
  • ALTER 문을 실행하기 전에 DESCRIBE SESSION POLICY 문을 실행해 정책의 속성 값을 결정할 수 있어요.
  • 메타데이터 관련: Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감한 데이터, 수출 통제 데이터 또는 기타 규제 대상 데이터를 입력하지 않도록 주의해야 해요. 자세한 내용은 Snowflake의 메타데이터 필드를 참고하세요.

예시 (Examples)

다음 예시는 세션 정책을 Snowsight 세션 시간 제한 값 15분으로 업데이트해요.

DESC SESSION POLICY session_policy_prod_1;
+---------------------------------+-----------------------+------------------------+--------------------------+--------------------------------------------------+
| createdOn                       | name                  | sessionIdleTimeoutMins | sessionUIIdleTimeoutMins | comment                                          |
+---------------------------------+-----------------------+------------------------+--------------------------+--------------------------------------------------+
| Mon, 11 Jan 2021 00:00:00 -0700 | session_policy_prod_1 | 30                     | 30                       | session policy for use in the prod_1 environment |
+---------------------------------+-----------------------+------------------------+--------------------------+--------------------------------------------------+
ALTER SESSION POLICY session_policy_prod_1 SET SESSION_UI_IDLE_TIMEOUT_MINS = 15;

다음 예시는 모든 클라이언트에 대해 최대 세션 수명을 480분(8시간)으로 설정해요.

ALTER SESSION POLICY session_policy_prod_1 SET
  SESSION_MAX_LIFESPAN_MINS = 480
  SESSION_UI_MAX_LIFESPAN_MINS = 480;

더 알아보기 (Learn more)