ALTER USER

ALTER USER

시스템에서 기존 사용자의 속성과 객체/세션 파라미터를 수정하는 명령이에요:

  • 관리자는 이 명령을 사용해 관리자가 적절한 권한을 가진 모든 사용자의 속성과 파라미터 기본값을 수정할 수 있어요.

  • 개별 사용자는 이 명령을 사용해 자신의 특정 속성과 모든 세션 파라미터 기본값을 수정할 수 있어요. 자세한 내용은 사용 참고사항(이 문서의)을 참고하세요.

사용자가 제출한 모든 쿼리(및 기타 SQL 문)를 중단하는 데에도 사용할 수 있어요.

출처: 문서

본문

관련 명령: CREATE USER, DROP USER, SHOW PARAMETERS, SHOW USERS, DESCRIBE USER

구문 (Syntax)

ALTER USER [ IF EXISTS ] [ <name> ] RENAME TO <new_name>

ALTER USER [ IF EXISTS ] [ <name> ] RESET PASSWORD

ALTER USER [ IF EXISTS ] [ <name> ] ABORT ALL QUERIES

ALTER USER [ IF EXISTS ] [ <name> ] ADD DELEGATED AUTHORIZATION OF ROLE <role_name> TO SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] REMOVE DELEGATED { AUTHORIZATION OF ROLE <role_name> | AUTHORIZATIONS } FROM SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] REMOVE DELEGATED AUTHORIZATIONS OF ANY ROLE FROM SECURITY INTEGRATION <integration_name>

ALTER USER [ IF EXISTS ] [ <name> ] mfaActions

ALTER USER [ IF EXISTS ] [ <name> ] SET { AUTHENTICATION | PASSWORD | SESSION } POLICY <policy_name> [ FORCE ]

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { AUTHENTICATION | PASSWORD | SESSION } POLICY

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

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

ALTER USER [ IF EXISTS ] [ <name> ] SET { [ objectProperties ] [ objectParams ] [ sessionParams ] }

ALTER USER [ IF EXISTS ] [ <name> ] UNSET { <object_property_name> | <object_param_name> | <session_param_name> } [ , ... ]

여기에서:

mfaActions ::=
  {
    ENROLL MFA
    SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO }
    REMOVE MFA METHOD <mfa_method>
    MODIFY MFA METHOD <mfa_method> SET COMMENT = '<string>'
    ADD MFA METHOD OTP [ COUNT = <number> ]
  }
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>
    DISABLE_MFA = TRUE | FALSE
    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>'
objectParams ::=
    ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = TRUE | FALSE
    ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = TRUE | FALSE
    NETWORK_POLICY = <string>
    PREVENT_UNLOAD_TO_INLINE_URL = TRUE | FALSE
    PREVENT_UNLOAD_TO_INTERNAL_STAGES = TRUE | FALSE
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
    ENABLE_NOTEBOOK_CREATION_IN_PERSONAL_DB = 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>
    S3_STAGE_VPCE_DNS_NAME = <string>
    SEARCH_PATH = <string>
    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를 참고하세요.

파라미터 (Parameters)

*name*

수정할 사용자의 식별자를 지정해요. 식별자에 공백이나 특수 문자가 포함되면 전체 문자열을 큰따옴표로 감싸야 해요. 큰따옴표로 감싼 식별자는 대소문자를 구분해요.

식별자를 생략하면 문은 활성(즉 로그인된) 사용자를 수정해요. 사용 참고사항(이 문서의)에 설명된 제한이 적용돼요.

RENAME TO *new_name*

사용자의 새 식별자를 지정해요. 계정 내에서 고유해야 해요.

자세한 내용은 Identifier requirements를 참고하세요.

RESET PASSWORD

사용자와 공유할 수 있는 URL을 생성하는데, 이 URL은 사용자가 새 암호를 입력할 수 있는 웹 페이지를 열어요. 생성된 URL은 단일 사용에 유효하며 12시간 후 만료돼요.

이 파라미터를 지정해도 사용자의 현재 암호가 무효화되지 않는다는 점에 유의하세요. 사용자는 URL로 암호를 재설정할 때까지 현재 암호를 계속 사용할 수 있어요.

현재 암호를 무효화하려면 대신 SET PASSWORD = '*string*'을 사용하며, 이것은 사용자의 암호를 새 값으로 변경해요.

ABORT ALL QUERIES

사용자가 현재 실행 중이거나 예약한 모든 쿼리와 기타 SQL 문을 쿼리가 실행/예약되는 웨어하우스와 무관하게 중단해요.

사용자는 여전히 Snowflake에 로그인하고 새 쿼리를 시작할 수 있다는 점에 유의하세요.

모든 실행 중/예약된 쿼리를 중단하고 사용자가 Snowflake에 로그인하거나 새 쿼리를 시작하지 못하게 하려면 대신 SET DISABLED = TRUE를 지정해요.

ADD DELEGATED AUTHORIZATION OF ROLE *role_name* TO SECURITY INTEGRATION *integration_name*;

특정 통합에 대해 지정된 역할을 사용해 세션을 시작하라는 사용자 동의를 추가해요.

자세한 내용은 Adding Delegated Authorizations for OAuth User Consent를 참고하세요.

REMOVE DELEGATED AUTHORIZATION OF ROLE *role_name* FROM SECURITY INTEGRATION *integration_name*, REMOVE DELEGATED AUTHORIZATIONS FROM SECURITY INTEGRATION *integration_name*

사용자에 대한 동의를 취소해요:

  • 첫 번째 구문은 지정된 역할에 대해 지정된 보안 통합의 동의를 취소해요. 이는 통합과 특정 역할과 관련된 OAuth 액세스 토큰을 취소하는 효과가 있어요.

  • 두 번째 구문은 지정된 보안 통합의 모든 동의를 취소해요. 이는 통합과 관련된 OAuth 액세스 토큰을 취소하는 효과가 있어요.

자세한 내용은 다음을 참고하세요:

REMOVE DELEGATED AUTHORIZATIONS OF ANY ROLE FROM SECURITY INTEGRATION *integration_name*

프리뷰 기능 — 공개

모든 계정에서 사용할 수 있어요.

지정된 Snowflake OAuth 보안 통합에 대해 사용자가 역할 전환에 대한 동의(session:role-any 범위)를 취소해요. 특정 역할에 대한 사용자 동의에는 영향을 주지 않아요. 이는 그 통합에 대한 any-role 동의에 의존하는 OAuth 액세스 토큰을 취소해요.

OAUTH_ANY_ROLE_MODE로 구성된 Snowflake OAuth 사용자 지정 클라이언트 통합에만 적용돼요. 자세한 내용은 Allowing clients to switch roles을 참고하세요.

{ AUTHENTICATION | PASSWORD | SESSION } POLICY *policy_name* [ FORCE ]

사용자에 대해 다음 정책 중 하나를 지정해요:

사용자에게 이미 정책을 설정했다면 기존 정책을 먼저 해제할 필요 없이 FORCE를 지정해 새 정책을 설정할 수 있어요.

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

태그(tag) 이름과 태그 문자열 값을 지정해요.

태그 값은 항상 문자열이고 태그 값의 최대 문자 수는 256이에요.

문에서 태그를 지정하는 방법에 대한 정보는 Tag quotas를 참고하세요.

객체 속성 (Object properties)

SET *property_name* = *property_value* [ ... ], UNSET *property_name* [ , ... ]

사용자에 대해 설정하거나 해제할 객체 속성 하나(이상)를 지정해요. 객체 속성을 해제하면 기본값으로 재설정돼요.

TYPE = { PERSON | SERVICE | SERVICE_AGENT | LEGACY_SERVICE | NULL }

사용자 유형을 수정해요. 이 속성을 설정해 인간, 서비스, 서비스 에이전트, 레거시 서비스 사용자를 구분할 수 있어요. 이러한 사용자 유형의 특성에 대한 정보는 Types of users를 참고하세요.

PERSON

Snowflake와 상호작용하는 인간 사용자인 사용자.

SERVICE

인간의 개입 없이 Snowflake와 상호작용하는 서비스 또는 애플리케이션인 사용자.

ALTER USER 명령으로 사용자의 TYPE 속성이 SERVICE로 설정되면 호환되지 않는 속성이 저장되어 있지만 DESCRIBE USER 같은 명령으로 반환되지 않아요. 호환되지 않는 속성은 ALTER USER 명령으로 설정할 수 없어요.

TYPE 속성이 SERVICE로 설정된 사용자가 TYPE 속성이 PERSON으로 설정된 사용자로 변경되면, 호환되지 않는 속성이 복원되어 PASSWORD 속성을 포함해 변경할 수 있어요.

SERVICE_AGENT

자체 ID와 권한을 사용해 Snowflake와 상호작용하는 자동화된 AI 에이전트. SERVICE_AGENT 사용자가 여는 모든 세션은 자동으로 에이전트 활성 상태예요.

ALTER USER 명령으로 사용자의 TYPE 속성이 SERVICE_AGENT로 설정되면 호환되지 않는 속성이 저장되어 있지만 DESCRIBE USER 같은 명령으로 반환되지 않아요. 호환되지 않는 속성은 ALTER USER 명령으로 설정할 수 없어요.

TYPE 속성이 SERVICE_AGENT로 설정된 사용자가 TYPE 속성이 PERSON으로 설정된 사용자로 변경되면, 호환되지 않는 속성이 복원되어 PASSWORD 속성을 포함해 변경할 수 있어요.

LEGACY_SERVICE

TYPE 속성이 LEGACY_SERVICE로 설정된 사용자는 비대화형 통합을 나타내요. SERVICE와 비슷하지만 암호 및 SAML 인증을 허용해요.

참고

LEGACY_SERVICE 유형은 더 이상 사용되지 않아요. 서비스와 애플리케이션에는 SERVICE 유형을 사용해요. LEGACY_SERVICE 폐지 타임라인은 Planning for the deprecation of single-factor password sign-ins을 참고하세요.

NULL

PERSON과 동일하게 기능해요. 기존 사용자의 TYPE 속성을 NULL로 설정할 수 없어요.

ALLOWED_INTERFACES = ( { 'ALL' | '*interface*' [ , ... ] } )

사용자가 접근할 수 있는 Snowflake 인터페이스를 지정해요.

('ALL')을 지정하면 사용자는 Snowsight와 이 속성에 지정할 수 있는 다른 모든 인터페이스에 접근할 수 있어요. 인터페이스 하나 이상을 지정하면 사용자는 지정된 인터페이스에만 접근할 수 있고 지정된 인터페이스 밖의 Snowflake 데이터와 상호작용할 수 없어요.

*interface*에는 쉼표로 구분된 목록에서 다음 값 중 하나 이상을 지정할 수 있어요:

SNOWFLAKE_INTELLIGENCE

사용자가 Snowflake CoWork에 접근할 수 있어요.

STREAMLIT

사용자가 앱 뷰어 URL을 통해 Streamlit 앱에 접근할 수 있어요.

DISABLE_MFA = { TRUE | FALSE }

이 파라미터의 효과는 사용자가 자발적으로 MFA에 등록했는지 또는 등록이 요구되었는지에 따라 달라져요.

  • 사용자가 MFA를 사용하도록 요구하는 인증 정책의 적용을 받으면, 이 파라미터를 TRUE로 설정하면 사용자의 MFA 방법이 삭제돼요. 다음에 사용자가 로그인할 때 인증의 두 번째 요소로 사용할 새 MFA 방법을 추가하라는 메시지가 표시돼요.

  • 사용자가 자발적으로 MFA에 등록했다면, 이 파라미터를 TRUE로 설정하면 사용자가 인증의 두 번째 요소 없이 인증할 수 있게 돼요.

WORKLOAD_IDENTITY = ( list_of_properties )

사용자가 워크로드 ID 페더레이션(workload identity federation)을 사용해 인증하도록 구성해요. TYPE 속성이 SERVICE 또는 SERVICE_AGENT로 설정된 사용자에 이 속성을 설정할 수 있어요.

속성 목록은 다음과 같아요:

TYPE = { AWS | AZURE | GCP | OIDC }

애플리케이션 또는 워크로드가 Snowflake로 보내는 증명(attestation)을 발급하는 제공자를 지정해요.

ARN = 'string'

TYPE=AWS에 필수. 다른 유형에는 유효하지 않아요.

Snowflake에 인증하는 인스턴스와 연결된 AWS 사용자 또는 역할을 고유하게 식별하는 Amazon Resource Identifier(ARN)을 지정해요. Snowflake는 다음 형태의 IAM 식별자를 받아들여요:

  • arn:aws:iam::account:user/user_name_with_path

  • arn:aws:iam::account:role/role_name_with_path

  • arn:aws:sts::account:assumed_role/role_name/role_session_name

ARN을 얻는 데 도움이 필요하면 Configure Snowflake를 참고하세요.

ISSUER = 'string'

TYPE=AZURETYPE=OIDC에 필수. 다른 유형에는 유효하지 않아요.

  • TYPE=AZURE의 경우 다음 형식으로 Entra ID 테넌트의 Authority URL을 지정해요:

    https://login.microsoftonline.com/tenant/v2.0

    이 URL을 얻는 데 도움이 필요하면 Configure Microsoft Azure를 참고하세요.

  • TYPE=OIDC의 경우 OpenID Connect(OIDC) 발급자 URL을 지정해요. OIDC 제공자는 발급자 URL로 식별돼요.

    다양한 OIDC 제공자에 대해 이 발급자 URL을 얻는 방법의 예는 Use cases를 참고하세요.

SUBJECT = 'string'

TYPE=AZURE, TYPE=GCP, TYPE=OIDC에 필수. 다른 유형에는 유효하지 않아요.

  • TYPE=AZURE의 경우 Azure 워크로드에 할당된 관리 ID의 대소문자 구분 Object ID(Principal ID)를 지정해요.

  • TYPE=GCP의 경우 Snowflake에 연결하는 워크로드와 연결된 서비스 계정의 uniqueId 속성을 지정해요.

    이 식별자를 얻는 데 도움이 필요하면 Configure Snowflake를 참고하세요.

  • TYPE=OIDC의 경우 Snowflake에 연결하는 워크로드의 식별자를 지정해요. 값의 형식은 증명을 발급하는 OIDC 제공자마다 다르지요.

    OIDC 제공자가 발급한 증명의 subject를 구성하는 방법의 예는 Use cases를 참고하세요.

OIDC_AUDIENCE_LIST = ( 'string' [ , 'string' ... ] )

TYPE=OIDC에 선택사항. 다른 유형에는 유효하지 않아요.

OIDC 제공자가 발급한 ID 토큰의 aud 클레임에 어떤 값이 있어야 하는지 지정해요. aud 클레임이 지정된 audience 중 하나 이상을 포함하면 Snowflake가 증명을 받아들여요.

생략하거나 비우면 audience는 snowflakecomputing.com으로 가정돼요.

설정할 수 있는 다른 객체 속성(예: PASSWORD, LOGIN_NAME, DEFAULT_ROLE)에 대한 정보는 CREATE USER를 참고하세요.

속성 설정 및 해제에 대한 더 일반적인 세부 사항은 사용 참고사항(이 문서의)을 참고하세요.

객체 파라미터 (Object parameters)

SET ...

사용자에 대해 설정할 파라미터 하나(이상)를 지정해요(공백, 쉼표 또는 새 줄로 구분):

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

구문 또는 해석 오류로 실패한 쿼리가 쿼리 기록에 표시되는 방식을 제어해요. FALSE이면 실패한 쿼리의 내용이 쿼리 기록을 제공하는 뷰, 페이지, 함수에서 삭제(redact)돼요.

이 파라미터는 쿼리를 실행한 사용자가 아니라 쿼리 기록을 보는 사용자에 대한 동작을 제어해요.

AUDIT 권한이 부여되거나 상속된 역할을 가진 사용자만 ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR 파라미터를 설정할 수 있어요.

ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = { TRUE | FALSE }

보안 객체와 관련된 오류 메시지가 메타데이터에서 삭제되는지 여부를 제어해요. 보안 객체의 오류 메시지 삭제에 대한 자세한 내용은 Secure objects: Redaction of information in error messages를 참고하세요.

AUDIT 권한이 부여되거나 상속된 역할을 가진 사용자만 ENABLE_UNREDACTED_SECURE_OBJECT_ERROR 파라미터를 설정할 수 있어요.

ALTER USER 명령으로 특정 사용자에 대해 파라미터를 TRUE로 설정할 때는 오류를 일으킨 사용자가 아니라 메타데이터에서 삭제되지 않은 오류 메시지를 보고 싶은 사용자를 수정해요.

NETWORK_POLICY = *string*

사용자에 대해 활성화된 네트워크 정책(network policy)을 지정해요.

또한 파라미터 설정 및 해제에 대한 더 일반적인 세부 사항은 사용 참고사항(이 문서의)을 참고하세요.

UNSET ...

사용자에 대해 해제할 속성을 지정하며, 기본값으로 재설정돼요.

  • NETWORK_POLICY

  • AUTHENTICATION POLICY

  • PASSWORD POLICY

  • SESSION POLICY

  • TAG *tag_name* [ , *tag_name* ... ]

세션 파라미터 (Session parameters)

SET *session_param_name* = *param_value* [ ... ], UNSET *session_param_name* [ , ... ]

사용자에 대해 설정하거나 해제할 세션 파라미터 하나(이상)를 지정해요. 세션 파라미터를 해제하면 기본값으로 재설정돼요.

설정할 수 있는 세션 파라미터(ABORT_DETACHED_QUERY, AUTOCOMMIT 등)에 대한 자세한 내용은 Parameters를 참고하세요.

또한 파라미터 설정 및 해제에 대한 더 일반적인 세부 사항은 사용 참고사항(이 문서의)을 참고하세요.

다중 인증(MFA) 작업 (mfaActions)

*user* ENROLL MFA

지정된 사용자를 다중 인증(MFA)에 등록시키고 인증의 두 번째 요소를 추가하라는 메시지를 표시해요.

  • 사용자에게 검증된 이메일이 있으면 Snowflake가 MFA 인증 방법을 추가하라는 이메일을 보내요.

  • 사용자에게 검증된 이메일이 없으면 Snowflake가 MFA 인증 방법을 추가하라는 페이지의 URL을 반환해요.

SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO }

현재 사용자에게 둘 이상의 MFA 방법이 있으면 인증의 두 번째 요소로 사용할 것을 지정해요.

*user* REMOVE MFA METHOD *mfa_method*

지정된 사용자가 이전에 설정한 MFA 방법을 제거해요. 사용자는 더 이상 그 MFA 방법을 인증의 두 번째 요소로 사용할 수 없어요.

*mfa_method*의 식별자를 얻으려면 SHOW MFA METHODS 명령을 실행하고 name 열에서 값을 찾아요.

[ *user* ] MODIFY MFA METHOD *mfa_method* SET COMMENT = '*string*'

지정된 MFA 방법에 대해 설명적인 이름을 설정해요.

*mfa_method*의 식별자를 얻으려면 SHOW MFA METHODS 명령을 실행하고 name 열에서 값을 찾아요.

사용자는 *user*를 생략해 자신의 MFA 방법에 대해 설명적인 이름을 설정할 수 있어요.

ADD MFA METHOD OTP [ COUNT = *number* ]

다른 인증 방법을 사용할 수 없을 때 높은 권한을 가진 사용자가 인증하는 데 사용할 수 있는 일회용 패스코드(OTP)를 생성해요.

COUNT는 생성되는 OTP 수를 제어해요. 생략하면 OTP 하나가 생성돼요. 최대는 10개 OTP예요.

자세한 내용은 Setting up administrators for break glass access를 참고하세요.

사용 참고사항 (Usage notes)

  • 사용자에 OWNERSHIP 권한이 있는 역할, 또는 더 높은 역할만 이 명령을 실행해 대부분의 사용자 속성을 수정할 수 있어요.

SET PASSWORD = '*string*'로 사용자의 암호를 변경할 때는 MUST_CHANGE_PASSWORD = TRUE도 지정해 사용자가 다른 인터페이스(예: SnowSQL 또는 다른 클라이언트 애플리케이션)를 통해서 Snowflake에 로그인하기 전에 웹 인터페이스에 로그인해 암호를 변경하도록 강제하는 것을 권장해요.

또는 RESET PASSWORD를 사용해 사용자가 접근해 암호를 변경할 수 있는 웹 페이지의 URL을 생성해요.

  • ACCOUNTADMIN 역할을 가진 사용자만 다음 파라미터를 설정할 수 있어요:

    • PREVENT_UNLOAD_TO_INLINE_URL

    • PREVENT_UNLOAD_TO_INTERNAL_STAGES

  • 개별 사용자는 자신(즉 명령에서 자신의 사용자 이름/식별자를 지정)에 대해 ALTER USER 명령을 실행하고 다음을 변경할 수 있어요:

    • DEFAULT_WAREHOUSE

    • DEFAULT_NAMESPACE

    • DEFAULT_ROLE

    • 자신의 세션 파라미터 기본값 중 하나

    사용자는 이 명령으로 자신의 암호를 변경할 수 없다는 점에 유의하세요. 보안상의 이유로 Snowflake는 사용자가 웹 인터페이스 내에서만 암호를 변경하도록 허용해요.

    그러나 적절한 권한이 있는 관리자는 SET PASSWORD = '*string*'와 함께 이 명령을 사용해 사용자의 암호를 변경할 수 있어요.

사용자의 암호를 변경할 때는 MUST_CHANGE_PASSWORD = TRUE도 지정해 사용자가 다른 인터페이스(예: SnowSQL 또는 다른 클라이언트 애플리케이션)를 통해서 Snowflake에 로그인하기 전에 웹 인터페이스에 로그인해 암호를 변경하도록 강제하는 것을 권장해요.

또는 RESET PASSWORD를 사용해 사용자가 접근해 암호를 변경할 수 있는 웹 페이지의 URL을 생성해요.

  • ALTER USER 문은 기본 객체(DEFAULT_WAREHOUSE, DEFAULT_NAMESPACE, DEFAULT_ROLE)의 존재를 검증하지 않아요. DEFAULT_SECONDARY_ROLES는 값으로 객체 이름을 받아들이지 않지만, ALTER USER 문은 지원되는 값이 지정되었는지는 검증한다는 점에 유의하세요.

  • 단일 ALTER 문으로 여러 객체 속성과 객체/세션 파라미터를 설정하고 해제할 수 있어요:

    • 여러 속성/파라미터를 설정할 때는 공백, 쉼표 또는 새 줄로 구분해요.

    • 여러 속성/파라미터를 해제할 때는 쉼표로 구분해야 해요. 또한 속성/파라미터를 해제할 때는 이름만 지정해요. 속성/파라미터에 값을 지정하면 오류가 반환돼요.

  • 로컬 사용자 객체와 조직 사용자(organization user) 사이에 충돌이 있으면, 로컬 사용자의 이름을 바꿀 때 조직 사용자에 해당하는 사용자가 자동으로 만들어져요.

  • 사용자에 대해 SET DISABLED = TRUE를 지정하면:

    • 사용자가 현재 실행 중이거나 예약한 모든 쿼리와 기타 SQL 문이 중단되고 사용자가 추가 쿼리를 시작할 수 없어요.

    • 사용자는 Snowflake에서 잠겨 다시 로그인할 수 없어요.

    사용자의 실행 중·예약된 쿼리/문만 중단하려면 대신 ABORT ALL QUERIES를 사용해요.

  • 사용자의 TYPE 속성이 SERVICE 또는 SERVICE_AGENT이면 다음 명령을 사용할 수 없어요:

    • ALTER USER RESET PASSWORD

    • ALTER USER SET DISABLE_MFA = TRUE

  • ALTER USER … UNSET TYPE 명령을 실행하면 TYPE 속성이 PERSON으로 설정돼요.

  • ALTER USER … SET TYPE=NULL 명령을 실행하면 TYPE 속성이 PERSON으로 설정돼요.

  • 메타데이터에 관해: 고객은 Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감 데이터, 수출 통제 데이터 또는 기타 규제 데이터를 입력하지 않도록 해야 해요. 자세한 내용은 Metadata fields in Snowflake를 참고하세요.

예제 (Examples)

user1user2로 이름을 바꾸는 예제예요:

ALTER USER user1 RENAME TO user2;

user1이라는 사용자의 암호를 H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt로 설정하고 Snowflake 웹 인터페이스에 로그인해 암호를 변경하도록 요구하는 예제예요:

ALTER USER user1 SET PASSWORD = 'H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt' MUST_CHANGE_PASSWORD = TRUE;

사용자 유형을 Snowflake와 프로그래매틱하게 상호작용하는 애플리케이션으로 변경하는 예제예요:

ALTER USER user1 SET TYPE = SERVICE;

사용자에서 기존 주석을 제거하는 예제예요:

ALTER USER user1 UNSET COMMENT;

기본적으로 보조 역할을 활성화하지 않는 예제예요:

ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ();

기본적으로 모든 보조 역할을 활성화하는 예제예요:

ALTER USER user1 UNSET DEFAULT_SECONDARY_ROLES;

또는

ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ('ALL');

더 알아보기 (Learn more)

CREATE USER, DROP USER, SHOW PARAMETERS, SHOW USERS, DESCRIBE USER