CREATE SESSION POLICY

CREATE SESSION POLICY

CREATE SESSION POLICY 명령은 새 세션 정책(session policy)을 만들거나 기존 정책을 교체하는 명령이에요. 세션 정책은 유휴 세션 시간 제한(분) 등을 정의합니다.

출처: CREATE SESSION POLICY

본문

새 세션 정책을 만들거나 기존 세션 정책을 교체하는 명령입니다. 세션 정책은 유휴 세션 시간 제한 기간(분)을 정의해요. 관리자는 Snowflake 웹 인터페이스와 다른 Snowflake 클라이언트에 각각 다른 시간 제한 값을 설정할 수 있고, AGENT_RESTRICTED_SESSION_SCOPE로 에이전트의 권한 상한(privilege ceiling)을 설정할 수 있습니다. 이 속성은 Restricted Session Scope for agents 문서를 참고하세요.

세션 정책을 만든 후에는 ALTER ACCOUNT 문을 사용해 Snowflake 계정에, 또는 ALTER USER 문을 사용해 사용자에게 세션 정책을 적용해요.

관련: Session Policy DDL Reference

Syntax

CREATE [OR REPLACE] SESSION POLICY [IF NOT EXISTS] <name>
  [ 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>' ]

Required parameters (필수 파라미터)

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

Optional parameters (선택 파라미터)

  • 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 클라이언트와 프로그래밍 방식 클라이언트에서, 활동과 무관하게 사용자가 다시 인증해야 하기 전까지 세션이 활성 상태로 남을 수 있는 최대 분 수. 값이 비어 있으면 기본값을 사용해요. 값은 0에서 43200(30일) 사이의 정수. 값 0은 최대 수명이 적용되지 않음을 의미. 기본값: 0 (최대 수명 미적용)
  • SESSION_UI_MAX_LIFESPAN_MINS = <integer> — Snowsight에서, 활동과 무관하게 사용자가 다시 인증해야 하기 전까지 세션이 활성 상태로 남을 수 있는 최대 분 수. 값이 비어 있으면 기본값을 사용해요. 값은 0에서 43200(30일) 사이의 정수. 기본값: 0 (최대 수명 미적용)
  • ALLOWED_SECONDARY_ROLES = ( [ { 'ALL' | <role_name> [ , <role_name> ... ] } ] ) — 세션 정책에 허용되는 보조 역할(secondary roles)을 지정해요. 가능한 값: () — 모든 보조 역할을 허용하지 않음. ('ALL') — 모든 보조 역할을 허용. (<role_name>, ...) — 지정된 역할을 보조 역할로 허용. 보조 역할은 사용자 정의 계정 역할이나 시스템 역할일 수 있어요. 역할 이름은 Snowflake에 저장된 대로 지정하세요. 자세한 내용은 Identifier requirements를 참고. 기본값: ('ALL') — 새 세션 정책을 만들 때 이 속성을 설정하지 않으면 모든 보조 역할이 허용됩니다.
  • BLOCKED_SECONDARY_ROLES = ( [ { 'ALL' | <role_name> [ , <role_name> ... ] } ] ) — 세션 정책의 차단된 보조 역할을 지정해요. 차단된 보조 역할은 허용된 보조 역할보다 우선합니다. 가능한 값: () — 모든 보조 역할 허용. ('ALL') — 보조 역할 허용 안 함. (<role_name>, ...) — 지정된 역할을 보조 역할로 차단. 차단된 역할과 그 역할에 부여된 역할은 보조 역할로 활성화될 수 없어요. 기본값: () — 새 세션 정책을 만들 때 이 속성을 설정하지 않으면 모든 보조 역할이 허용됩니다.
  • AGENT_RESTRICTED_SESSION_SCOPE = { '<predefined_scope>' | '<rss_object_name>' | $$ <yaml_definition> $$ } — 에이전트가 세션에서 활성 상태일 때(SYS_CONTEXT('SNOWFLAKE$CURRENT', 'IS_AGENT_ACTIVATED')TRUE 반환) Snowflake가 적용하는 권한 상한. 에이전트가 활성 상태가 아니면 이 속성은 무시돼요. 사전 정의된 범위, YAML 구조, 예제는 Restricted Session Scope for agents를 참고하세요.
  • COMMENT = '<string_literal>' — 세션 정책에 대한 주석을 추가하거나 기존 주석을 덮어써요.

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

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

스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한과 상위 스키마에 대한 권한이 각각 최소 하나씩 필요합니다. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요. 세션 정책 DDL과 권한에 대한 추가 내용은 Managing session policies 문서를 참고하세요.

Usage notes (사용 참고 사항)

세션 정책은 계정 또는 사용자 수준에서 적용해요. 정책을 적용하려면 ALTER ACCOUNT 또는 ALTER USER 문을 사용합니다.

Examples (예제)

현재 계정의 세션 정책을 만들어 봅시다.

CREATE SESSION POLICY session_policy_prod_1
  SESSION_IDLE_TIMEOUT_MINS = 30
  SESSION_UI_IDLE_TIMEOUT_MINS = 30
  SESSION_MAX_LIFESPAN_MINS = 480
  SESSION_UI_MAX_LIFESPAN_MINS = 480
  COMMENT = 'session policy for use in the prod_1 environment'
;

더 알아보기 (Learn more)