CREATE USER
CREATE USER
CREATE USER 명령은 시스템에 새 사용자(user)를 만들거나 기존 사용자를 교체하는 명령이에요. 자세한 내용은 User management 문서를 참고하세요.
출처: CREATE USER
본문
시스템에 새 사용자를 만들거나 기존 사용자를 교체하는 명령입니다.
참고 사용자 관리자(즉
USERADMIN역할 이상을 가진 사용자) 또는 계정에CREATE USER권한이 있는 다른 역할만 사용자를 만들 수 있어요.
관련 명령: DROP USER, ALTER USER, DESCRIBE USER, SHOW PARAMETERS
Syntax
CREATE [ OR REPLACE ] USER [ IF NOT EXISTS ] <name>
[ objectProperties ]
[ objectParams ]
[ sessionParams ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Where:
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 }
ALLOWED_INTERFACES = ( <list_of_interfaces> )
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>
TYPE = { PERSON | SERVICE | SERVICE_AGENT | LEGACY_SERVICE }
WORKLOAD_IDENTITY = ( <list_of_properties> )
COMMENT = '<string_literal>'
objectParams ::=
ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = TRUE | FALSE
NETWORK_POLICY = <string>
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>
DEFAULT_NULL_ORDERING = <string>
ENABLE_GET_DDL_USE_DATA_TYPE_ALIAS = TRUE | FALSE
ERROR_ON_NONDETERMINISTIC_MERGE = TRUE | FALSE
ERROR_ON_NONDETERMINISTIC_UPDATE = TRUE | FALSE
JSON_INDENT = <num>
LOCK_TIMEOUT = <num>
OPT_OUT_ERROR_LOGGING = TRUE | FALSE
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>
참고 가독성을 위해 사용자에 대해 설정할 수 있는 세션 파라미터의 전체 목록은 여기에 포함되지 않았습니다. 모든 세션 파라미터의 전체 목록과 설명, 그리고 계정·객체 파라미터는 Parameters 문서를 참고하세요.
Required parameters (필수 파라미터)
name— 사용자의 식별자예요. 계정에서 고유해야 합니다. 식별자는 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예:"My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다. 자세한 내용은 Identifier requirements 문서를 참고하세요.참고 사용자는 이 값을 사용해 Snowflake에 로그인하지 않아요. 대신
LOGIN_NAME속성에 지정된 값을 사용해 로그인합니다. 다만 사용자에 로그인 이름이 명시적으로 지정되지 않으면 사용자 이름/식별자가 기본 로그인 이름으로 사용됩니다.
Optional object properties (objectProperties)
PASSWORD = '<string>'— 사용자 비밀번호는 작은따옴표나 큰따옴표로 감싸야 해요. 비밀번호가 지정되지 않으면 사용자에게 비밀번호가 명시적으로 지정될 때까지 Snowflake에 로그인할 수 없습니다. 비밀번호에 백슬래시(\) 문자를 사용한다면 SQL 명령에서 비밀번호를 지정할 때 백슬래시로 이스케이프하거나 이중 달러 기호($$) 구분자를 사용하세요. Snowflake 비밀번호에 대한 자세한 내용은 Password policies 문서를 참고. 기본값: NULLLOGIN_NAME = <string>— 사용자가 시스템에 로그인할 때 입력하는 이름이에요. 로그인 이름은 전체 계정에서 고유해야 합니다. 로그인 이름은 공백과 느낌표(!), 퍼센트(%), 별표(*) 같은 비알파벳 문자를 포함한 어떤 문자열이든 가능하지만, 문자열에 공백이나 비알파벳 문자가 포함되면 작은따옴표나 큰따옴표로 감싸야 해요. 로그인 이름은 항상 대소문자를 구분하지 않습니다. Snowflake는 로그인에 일반적인 식별자(예: 이메일 주소)를 사용할 수 있도록 사용자 이름과 로그인 이름을 다르게 지정하는 것을 허용해요. 기본값: 사용자의 이름/식별자DISPLAY_NAME = <string>— Snowflake 웹 인터페이스에서 사용자에게 표시되는 이름이에요. 기본값: 사용자의 이름/식별자FIRST_NAME/MIDDLE_NAME/LAST_NAME = <string>— 사용자의 이름, 중간 이름, 성이에요. 기본값: NULLEMAIL = <string>— 사용자의 이메일 주소예요. Snowflake를 사용하는 데 이메일 주소는 필요하지 않지만, 지원 티켓을 열거나 커뮤니티 포럼에 기여하기 위해 Snowflake Community에 접근하려면 유효한 이메일 주소가 지정되어야 해요. 개인 이메일보다 업무 이메일 주소를 지정하는 것을 권장합니다. 사용자 이메일 주소는 Snowflake 계정의 다른 모든 사용자에게 보입니다. 기본값: NULLMUST_CHANGE_PASSWORD = { TRUE | FALSE }— 다음 로그인(첫/초기 로그인 포함) 시 사용자가 비밀번호를 변경하도록 강제할지 지정해요. 기본값: FALSEDISABLED = { TRUE | FALSE }— 사용자가 비활성화되어 다음 작업을 방지하는지 지정해요. 기본값: FALSEALLOWED_INTERFACES = ( <list_of_interfaces> )— 사용자가 접근할 수 있는 Snowflake 인터페이스를 지정해요.('ALL')을 지정하면 사용자는 Snowsight와 이 속성에 지정할 수 있는 다른 모든 인터페이스에 접근할 수 있습니다. 인터페이스를 하나 이상 지정하면 사용자는 지정된 인터페이스에만 접근할 수 있고, 지정된 인터페이스 밖의 어떤 Snowflake 데이터와도 상호작용할 수 없어요. 인터페이스에 대해 다음 값을 쉼표로 구분한 목록에서 하나 이상 지정할 수 있어요: 사용자가 Snowflake CoWork에 접근, 사용자가 앱-뷰어 URL을 통해 Streamlit 앱에 접근. 기본값:('ALL')DAYS_TO_EXPIRY = <integer>— 사용자 상태가 "Expired"로 설정되고 더 이상 로그인이 허용되지 않는 날 수를 지정해요. 임시 사용자(즉 제한된 시간 동안만 Snowflake에 접근해야 하는 사용자)를 정의하는 데 유용합니다. 계정 관리자(즉ACCOUNTADMIN역할을 가진 사용자)에DAYS_TO_EXPIRY를 설정하는 것은 허용되지 않아요. 설정하면 Snowflake가 무시합니다. 설정되면 값은 0으로 카운트다운되지만 멈추지는 않습니다. 음수 값은 사용자 상태가 "Expired"임을 나타냅니다. 기본값: NULLMINS_TO_UNLOCK = <integer>— 사용자 로그인의 임시 잠금이 해제될 때까지의 분 수를 지정해요. 무단 사용자 로그인을 방지하기 위해 Snowflake는 5회 연속 실패한 로그인 시도 후 사용자에 임시 잠금을 걸어요. 사용자를 만들 때 이 속성을 설정해 지정된 시간이 지날 때까지 로그인하지 못하게 할 수 있습니다. 잠금을 즉시 해제하려면ALTER USER로 이 파라미터에 0을 지정하세요. 기본값: NULLDEFAULT_WAREHOUSE = <string>— 로그인 시 사용자 세션에서 기본적으로 활성화되는 가상 웨어하우스를 지정해요. 사용자는ALTER USER로 현재 기본 가상 웨어하우스를 지정하거나 변경할 수 있고, 로그인 후에는USE WAREHOUSE로 세션의 웨어하우스를 변경할 수 있어요.CREATE USER작업은 웨어하우스가 존재하는지 확인하지 않습니다. 기본값: NULLDEFAULT_NAMESPACE = <string>— 로그인 시 사용자 세션에서 기본적으로 활성화되는 네임스페이스(데이터베이스만 또는 데이터베이스와 스키마)를 지정해요. 사용자는ALTER USER로 변경하거나, 로그인 후USE DATABASE또는USE SCHEMA로 변경할 수 있어요.CREATE USER작업은 네임스페이스가 존재하는지 확인하지 않습니다. 기본값: NULLDEFAULT_ROLE = <string>— 로그인 시 사용자 세션에서 기본적으로 활성화되는 기본 역할(primary role)을 지정해요. 기본 역할은CREATE <object>문이나 다른 SQL 작업의 실행을 승인하는 단일 역할입니다. 사용자에 기본 역할을 지정한다고 해서 그 역할이 사용자에게 부여되는 것은 아니며,GRANT ROLE명령으로 명시적으로 부여해야 해요.CREATE USER작업은 역할이 존재하는지 확인하지 않습니다. 기본값: NULLDEFAULT_SECONDARY_ROLES = { ( 'ALL' ) | () }— 로그인 시 사용자 세션에서 활성화되는 보조 역할 집합을 지정해요. 보조 역할은CREATE <object>문 실행을 제외한 SQL 작업을 승인하는 역할 집합입니다. 사용자에 기본 보조 역할을 지정한다고 해서 역할이 부여되는 것은 아니며,GRANT ROLE명령으로 명시적으로 부여해야 해요. 지원 값:('ALL')— 사용자에게 부여된 모든 역할. (각 SQL 문이 실행될 때 역할 집합이 다시 평가되므로 새로 부여된 역할은 다음 문에서 활성화됩니다.)()— 역할 없음. 기본값: ALLMINS_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 공개 키 지문을 지정해요. 조직이 설정한 만료 스케줄에 따라 키 쌍 인증을 위한 공개·개인 키를 교체하는 데 사용됩니다.TYPE = { PERSON | SERVICE | SERVICE_AGENT | LEGACY_SERVICE }— 사용자 유형을 지정해요. 사람, 서비스, 서비스 에이전트, 레거시 서비스 사용자를 구분할 수 있게 합니다.PERSON— 인간 사용자로 Snowflake와 상호작용할 수 있음.SERVICE— 인간 개입 없이 Snowflake와 상호작용하는 서비스 또는 애플리케이션.SERVICE_AGENT— 자신의 신원과 권한으로 Snowflake와 상호작용하는 자동화된 AI 에이전트.SERVICE_AGENT사용자가 연 모든 세션은 자동으로 에이전트 활성 상태가 됩니다.LEGACY_SERVICE— 비대화형 통합을 나타냄.SERVICE와 유사하지만 비밀번호와 SAML 인증을 허용함.
참고
LEGACY_SERVICE유형은 더 이상 사용되지 않습니다(Deprecated). 서비스와 애플리케이션에는SERVICE유형을 사용하세요.- 기본값: PERSON
WORKLOAD_IDENTITY = ( <list_of_properties> )— 워크로드 ID 페더레이션(workload identity federation)으로 인증하도록 사용자를 구성해요.TYPE속성이SERVICE또는SERVICE_AGENT인 사용자에 설정할 수 있어요. 속성 목록:- provider — 애플리케이션 또는 워크로드가 Snowflake에 보내는 증명(attestation)을 발행하는 공급자를 지정해요.
TYPE=AWS에 필수이며 다른 유형에서는 유효하지 않습니다. - aws_iam_user_arn / aws_iam_role_arn — Snowflake에 인증하는 인스턴스와 연결된 AWS 사용자 또는 역할을 고유하게 식별하는 Amazon Resource Identifier(ARN)를 지정해요.
TYPE=AZURE와TYPE=OIDC에 필수이며 다른 유형에서는 유효하지 않습니다. - azure_application_id —
TYPE=AZURE,TYPE=GCP,TYPE=OIDC에 필수이며 다른 유형에서는 유효하지 않습니다. - azure_tenant_id —
TYPE=AZURE,TYPE=GCP,TYPE=OIDC에 필수이며 다른 유형에서는 유효하지 않습니다. - oidc_audiences —
TYPE=OIDC에 선택 사항이며 다른 유형에서는 유효하지 않습니다. OIDC 공급자가 발행한 ID 토큰의aud클레임에 있어야 하는 값을 지정해요.aud클레임이 지정된 audience 중 하나 이상을 포함하면 Snowflake는 증명을 수락합니다. 생략하거나 비어 있으면 audience는snowflakecomputing.com으로 간주됩니다.
- provider — 애플리케이션 또는 워크로드가 Snowflake에 보내는 증명(attestation)을 발행하는 공급자를 지정해요.
COMMENT = '<string_literal>'— 사용자에 대한 주석을 지정해요. 기본값: NULL
Optional object parameters (objectParams)
ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR— 구문 또는 파싱 오류로 실패하는 쿼리가 쿼리 기록에 어떻게 표시되는지 제어해요.FALSE면 실패한 쿼리의 내용이 쿼리 기록을 제공하는 뷰, 페이지, 함수에서 편집(redact)됩니다. 이 파라미터는 쿼리를 실행한 사용자가 아니라 쿼리 기록을 보는 사용자의 동작을 제어해요.AUDIT권한이 부여되거나 상속된 역할을 가진 사용자만 이 파라미터를 설정할 수 있습니다.ENABLE_UNREDACTED_SECURE_OBJECT_ERROR— 보안 객체와 관련된 오류 메시지가 메타데이터에서 편집되는지 여부를 제어해요. 자세한 내용은 Secure objects: Redaction of information in error messages 문서를 참고하세요.NETWORK_POLICY = <string>— 사용자와 연결된 네트워크 정책을 지정해요. 자세한 내용은 Network policies 문서를 참고하세요.
Session parameters (sessionParams)
사용자에 대해 설정할 수 있는 세션 파라미터는 형식·날짜/시간·거버넌스 관련 파라미터를 포함해 다양해요. 모든 파라미터에 대한 자세한 설명은 Parameters 문서를 참고하세요.
Examples (예제)
모든 기본 속성, 기본 역할, 그리고 첫 로그인 후 사용자가 반드시 변경해야 하는 기본 비밀번호를 가진 사용자를 만들어 봅시다.
CREATE USER user1 PASSWORD='abc123' DEFAULT_ROLE = myrole DEFAULT_SECONDARY_ROLES = ('ALL') MUST_CHANGE_PASSWORD = TRUE;