CREATE USER

새 사용자를 만들거나 시스템의 기존 사용자를 바꿉니다. 자세한 내용은 사용자 관리 섹션을 참조하십시오.

참고

사용자 관리자(즉, USERADMIN 이상의 역할을 가진 사용자) 또는 계정에 대한 CREATE USER 권한이 있는 다른 역할만 사용자를 만들 수 있습니다.

참고 항목:

DROP USER , ALTER USER , DESCRIBE USER , SHOW PARAMETERS

구문

CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
  [ objectProperties ]
  [ objectParams ]
  [ sessionParams ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Copy

여기서

objectProperties ::=
  PASSWORD = '<string>'
  LOGIN_NAME = <string>
  DISPLAY_NAME = <string>
  FIRST_NAME = <string>
  MIDDLE_NAME = <string>
  LAST_NAME = <string>
  EMAIL = <string>
  MUST_CHANGE_PASSWORD = TRUE | FALSE
  DISABLED = TRUE | FALSE
  DAYS_TO_EXPIRY = <integer>
  MINS_TO_UNLOCK = <integer>
  DEFAULT_WAREHOUSE = <string>
  DEFAULT_NAMESPACE = <string>
  DEFAULT_ROLE = <string>
  DEFAULT_SECONDARY_ROLES = ( 'ALL' )
  MINS_TO_BYPASS_MFA = <integer>
  RSA_PUBLIC_KEY = <string>
  RSA_PUBLIC_KEY_FP = <string>
  RSA_PUBLIC_KEY_2 = <string>
  RSA_PUBLIC_KEY_2_FP = <string>
  COMMENT = '<string_literal>'
Copy
objectParams ::=
  ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
  NETWORK_POLICY = <string>
Copy
sessionParams ::=
  ABORT_DETACHED_QUERY = TRUE | FALSE
  AUTOCOMMIT = TRUE | FALSE
  BINARY_INPUT_FORMAT = <string>
  BINARY_OUTPUT_FORMAT = <string>
  DATE_INPUT_FORMAT = <string>
  DATE_OUTPUT_FORMAT = <string>
  ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
  ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
  JSON_INDENT = <num>
  LOCK_TIMEOUT = <num>
  QUERY_TAG = <string>
  ROWS_PER_RESULTSET = <num>
  SIMULATED_DATA_SHARING_CONSUMER = <string>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
  STRICT_JSON_OUTPUT = TRUE | FALSE
  TIMESTAMP_DAY_IS_ALWAYS_24H = TRUE | FALSE
  TIMESTAMP_INPUT_FORMAT = <string>
  TIMESTAMP_LTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_NTZ_OUTPUT_FORMAT = <string>
  TIMESTAMP_OUTPUT_FORMAT = <string>
  TIMESTAMP_TYPE_MAPPING = <string>
  TIMESTAMP_TZ_OUTPUT_FORMAT = <string>
  TIMEZONE = <string>
  TIME_INPUT_FORMAT = <string>
  TIME_OUTPUT_FORMAT = <string>
  TRANSACTION_DEFAULT_ISOLATION_LEVEL = <string>
  TWO_DIGIT_CENTURY_START = <num>
  UNSUPPORTED_DDL_ACTION = <string>
  USE_CACHED_RESULT = TRUE | FALSE
  WEEK_OF_YEAR_POLICY = <num>
  WEEK_START = <num>
Copy

참고

가독성을 위해 사용자에 맞춰 설정할 수 있는 세션 매개 변수의 전체 목록은 여기에 포함되지 않습니다. 계정 및 오브젝트 매개 변수뿐 아니라 설명을 포함한 모든 세션 매개 변수의 전체 목록은 매개 변수 를 참조하십시오.

필수 매개 변수

name

사용자의 식별자로, 계정에 고유한 식별자여야 합니다.

식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

참고

사용자는 이 값을 사용하여 Snowflake에 로그인하지 않습니다. 대신, 사용자는 LOGIN_NAME 속성에 지정된 값을 사용하여 로그인합니다. 하지만 사용자에 대해 명시적으로 지정된 로그인 이름이 없으면 사용자 이름/식별자가 기본 로그인 이름으로 사용됩니다.

선택적 오브젝트 속성(objectProperties)

PASSWORD = 'string'

사용자의 비밀번호는 작은따옴표나 큰따옴표로 묶어야 합니다. 지정된 비밀번호가 없는 경우 사용자는 자신의 비밀번호를 명시적으로 지정해야 Snowflake에 로그인할 수 있습니다.

비밀번호에 백슬래시(즉, \) 문자를 사용하는 경우 SQL 명령에서 비밀번호를 지정할 때 백슬래시로 문자를 이스케이프하거나 이중 달러 기호(즉, $$)를 구분 기호로 사용하십시오. 자세한 내용은 문자열 및 이진 데이터 타입 섹션을 참조하십시오.

Snowflake의 비밀번호에 대한 자세한 내용은 비밀번호 정책 를 참조하십시오.

기본값: NULL

LOGIN_NAME = string

사용자가 시스템에 로그인하기 위해 입력하는 이름입니다. 사용자의 로그인 이름은 전체 계정에서 고유해야 합니다.

로그인 이름은 공백과 영숫자가 아닌 문자(예: 느낌표(!), 백분율 기호(%), 별표(*))를 포함한 임의의 문자열이 될 수 있지만, 문자열에 공백이나 영숫자가 아닌 문자가 포함된 경우 작은따옴표나 큰따옴표로 묶어야 합니다. 로그인 이름은 항상 대/소문자를 구분하지 않습니다.

Snowflake에서는 로그인에 공통 식별자(예: 이메일 주소)를 사용할 수 있도록 다른 사용자 및 로그인 이름 지정을 허용합니다.

기본값: 사용자 이름/식별자(즉, 값이 지정되지 않은 경우 name 에 지정된 값이 로그인 이름으로 사용됨)

DISPLAY_NAME = string

Snowflake 웹 인터페이스에서 사용자에 대해 표시되는 이름입니다.

기본값: 사용자 이름/식별자(즉, 값이 지정되지 않은 경우 name 에 지정된 값이 표시 이름으로 사용됨)

FIRST_NAME = string , . MIDDLE_NAME = string , . LAST_NAME = string

사용자의 이름, 중간 이름, 성입니다.

기본값: NULL

EMAIL = string

사용자의 이메일 주소입니다.

Snowflake를 사용하는 데 이메일 주소가 꼭 필요한 것은 아니지만, Snowflake 커뮤니티에 액세스하여 지원 티켓을 열거나 커뮤니티 포럼에 기여하려면 사용자에 대해 유효한 이메일 주소가 지정되어 있어야 합니다.

개인 이메일 주소보다는 비즈니스 이메일 주소를 지정하는 것이 좋습니다. 사용자 이메일 주소는 Snowflake 계정의 다른 모든 사용자에게 표시됩니다.

기본값: NULL

MUST_CHANGE_PASSWORD = TRUE | FALSE

사용자가 다음에(최초 로그인 포함) 시스템에 로그인할 때 비밀번호를 반드시 변경하도록 할지 여부를 지정합니다.

기본값: FALSE

DISABLED = TRUE | FALSE

사용자가 비활성화되어 다음 작업을 하지 못하게 할지 여부를 지정합니다.

  • 신규 사용자의 경우 사용자는 Snowflake 외부에서 잠기며 로그인할 수 없습니다.

  • 기존 사용자의 경우 이 속성을 설정하면 현재 실행 중인 모든 쿼리가 중단되고 사용자가 새 쿼리를 실행할 수 없습니다. 또한, 사용자가 그 즉시 Snowflake를 사용할 수 없도록 계정이 잠겨 다시 로그인할 수 없습니다.

기본값: FALSE

DAYS_TO_EXPIRY = integer

사용자 상태가 《만료됨》으로 설정된 후 사용자가 더 이상 로그인할 수 없는 일수를 지정합니다. 이는 임시 사용자(즉, 제한된 기간에만 Snowflake에 액세스하면 되는 사용자)를 정의하는 데 유용합니다. 일반적으로 Snowflake에서는 계정 관리자 (즉, ACCOUNTADMIN 역할이 있는 사용자)가 《만료》되면 잠기므로 이 속성을 설정하면 안 됩니다.

일단 설정된 후에는 이 값이 0 까지 카운트다운되지만 멈추지는 않습니다. 음수 값은 사용자의 상태가 《만료됨》임을 나타냅니다. 이 값을 재설정하려면 ALTER USER 를 사용하여 다음 값을 설정하십시오.

  • 사용자를 임시 사용자로 다시 활성화하려면 값을 0 보다 큰 값으로 설정하십시오.

  • 사용자를 영구 사용자로 지정하려면 값을 NULL 또는 0 으로 설정하십시오.

기본값: NULL

MINS_TO_UNLOCK = integer

사용자 로그인에 대한 임시 잠금이 해제될 때까지의 시간(분)을 지정합니다. 무단 사용자 로그인을 방지하기 위해, Snowflake는 로그인 시도에 5회 연속 실패하면 사용자 계정을 임시로 잠급니다.

  • 양수 값은 사용자의 상태가 《잠김》임을 나타냅니다.

  • 값이 0 (또는 음수 값)까지 카운트다운되면 잠금이 해제되어 사용자가 다시 로그인할 수 있게 됩니다.

  • 사용자가 Snowflake에 성공적으로 로그인하면 값이 NULL 로 재설정됩니다.

사용자를 만들 때, 이 속성을 설정하여 지정된 시간이 경과할 때까지 사용자가 로그인하지 못하도록 할 수 있습니다.

사용자에 대한 잠금을 즉시 제거하려면 ALTER USER 를 사용하고 이 매개 변수에 대해 0 의 값을 지정하십시오.

기본값: NULL

DEFAULT_WAREHOUSE = string

로그인 시 사용자 세션에 대해 기본적으로 활성화되는 가상 웨어하우스를 지정합니다.

사용자는 ALTER USER 를 사용하여 현재 기본 가상 웨어하우스를 지정하거나 변경할 수 있습니다. 또한, 세션을 시작(즉, 로그인)한 후 사용자는 USE WAREHOUSE 를 사용하여 세션의 가상 웨어하우스를 변경할 수 있습니다.

CREATE USER 작업에서는 웨어하우스가 있는지 확인하지 않습니다.

기본값: NULL

DEFAULT_NAMESPACE = string

로그인 시 사용자 세션에 대해 기본적으로 활성화되는 네임스페이스(데이터베이스만 또는 데이터베이스와 스키마)를 지정합니다.

  • 데이터베이스만 지정하려면 데이터베이스 이름을 입력하십시오.

  • 스키마를 지정하려면 db_name.schema_name 의 형식으로 정규화된 스키마 이름을 입력하십시오.

사용자는 ALTER USER 를 사용하여 현재 기본 네임스페이스를 지정하거나 변경할 수 있습니다. 또한, 세션을 시작(즉, 로그인)한 후 사용자는 USE DATABASE 또는 USE SCHEMA 를 사용하여 세션의 네임스페이스를 변경할 수 있습니다.

CREATE USER 작업에서는 네임스페이스가 있는지 확인하지 않습니다.

기본값: NULL

DEFAULT_ROLE = string

로그인 시 사용자 세션에 대해 기본적으로 활성화되는 기본 역할을 지정합니다. 기본 역할은 CREATE <오브젝트> 문 또는 기타 SQL 작업의 실행을 승인하는 단일 역할입니다. 이러한 작업을 수행할 수 있는 권한은 역할 계층 구조의 기본 역할 또는 하위 역할에 부여될 수 있습니다.

사용자의 기본 역할을 지정한다고 해서 사용자에게 역할이 부여되는 것은 아닙니다. GRANT ROLE 명령을 사용하여 사용자에게 명시적으로 역할을 부여해야 합니다. 또한, CREATE USER 작업에서는 역할이 있는지 확인하지 않습니다.

사용자는 ALTER USER 를 사용하여 현재 기본 역할을 지정하거나 변경할 수 있습니다. 또한, 세션을 시작(즉, 로그인)한 후 사용자는 USE ROLE 를 사용하여 세션의 역할을 변경할 수 있습니다. 어느 경우든, 사용자는 자신에게 명시적으로 부여된 역할 중에서만 선택할 수 있습니다.

기본값: NULL

DEFAULT_SECONDARY_ROLES = ( 'ALL' )

로그인 시 사용자 세션에 대해 활성화되는 보조 역할 세트를 지정합니다. 보조 역할은 CREATE <오브젝트> 문 실행 이외의 모든 SQL 작업에 권한을 부여하는 역할 세트입니다. 이러한 작업을 수행할 수 있는 권한은 기본 역할, 보조 역할 또는 역할 계층 구조의 하위 역할에 부여될 수 있습니다.

사용자의 기본 보조 역할을 지정해도 사용자에게 역할이 부여되지 않습니다. 또한 GRANT ROLE 명령을 사용하여 사용자에게 명시적으로 역할을 부여해야 합니다.

다음 값이 지원됩니다.

ALL:

사용자에게 부여된 모든 역할입니다.

각 SQL 문이 실행될 때 역할 세트가 재평가됩니다. 사용자에게 추가 역할이 부여되고, 해당 사용자가 새 SQL 문을 실행하는 경우, 새로 부여된 역할은 새 SQL 문에 대한 활성 보조 역할입니다. 사용자로부터 취소된 역할에도 동일한 논리가 적용됩니다.

기본값: NULL

MINS_TO_BYPASS_MFA = integer

사용자에 대한 MFA를 일시적으로 무시할 시간(분)을 지정합니다.

이 속성을 사용하면 MFA를 등록한 사용자가 MFA 디바이스를 사용할 수 없는 경우에 로그인 중에 MFA를 일시적으로 무시하도록 허용할 수 있습니다.

RSA_PUBLIC_KEY = string

키 페어 인증 에 사용되는 사용자의 RSA 공개 키를 지정합니다.

RSA_PUBLIC_KEY_FP = string

키 페어 인증 에 사용되는 사용자의 RSA 공개 키 지문을 지정합니다.

RSA_PUBLIC_KEY_2 = string

조직에서 설정한 만료 일정에 따라 키 페어 인증 을 위해 공개 키와 개인 키를 순환하는 데 사용되는 사용자의 두 번째 RSA 공개 키를 지정합니다.

RSA_PUBLIC_KEY_2_FP = string

조직에서 설정한 만료 일정에 따라 키 페어 인증 을 위해 공개 키와 개인 키를 순환하는 데 사용되는 사용자의 두 번째 RSA 공개 키 지문을 지정합니다.

COMMENT = 'string_literal'

사용자에 대한 설명을 지정합니다.

기본값: NULL

선택적 오브젝트 매개 변수(objectParams)

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

구문 또는 구문 분석 오류로 인해 실패한 쿼리가 쿼리 기록에 표시되는 방식을 제어합니다. FALSE인 경우 쿼리 기록을 제공하는 뷰, 페이지, 함수에서 실패한 쿼리의 내용이 수정됩니다.

이 매개 변수는 쿼리를 실행한 사용자가 아니라 쿼리 기록을 보는 사용자의 동작을 제어합니다.

AUDIT 권한이 부여되거나 상속되는 역할을 가진 사용자만 ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR 매개 변수를 설정할 수 있습니다.

NETWORK_POLICY = string

사용자에 대해 기존의 네트워크 정책 이 활성 상태임을 지정합니다. 네트워크 정책은 액세스 또는 새로 고침 토큰에 대한 인증 코드를 교환할 때와 새로 고침 토큰을 사용하여 새 액세스 토큰을 받을 때 사용자 IP 주소의 목록을 제한합니다.

이 매개 변수를 설정하지 않으면 계정에 대한 네트워크 정책(있는 경우)이 대신 사용됩니다.

선택적 세션 매개 변수(sessionParams)

사용자를 위해 설정할 하나 이상의 세션 매개 변수 기본값을 지정합니다(공백, 쉼표 또는 줄 바꿈으로 구분됨). 이러한 기본값은 사용자가 Snowflake에 로그인하여 세션을 시작할 때마다 설정됩니다. 사용자는 항상 ALTER SESSION 을 사용하여 세션 내에서 이러한 기본값을 스스로 변경할 수 있습니다.

기본값을 포함하여, 사용자에 맞춰 지정할 수 있는 세션 매개 변수의 전체 목록은 매개 변수 를 참조하십시오.

선택적 매개 변수

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE USER

계정

Only the USERADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

  • CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

모든 기본 속성, 기본 역할 그리고 최초 로그인 후 사용자가 변경해야 하는 기본 비밀번호를 사용하여 사용자를 만들기:

CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL') MUST_CHANGE_PASSWORD = TRUE;
Copy