ALTER USER

시스템의 기존 사용자에 대한 속성과 오브젝트/세션 매개 변수를 수정합니다.

  • 관리자는 이 명령을 사용하여 관리자에게 적절한 권한이 있는 모든 사용자의 속성 및 매개 변수 기본값을 변경할 수 있습니다.

  • 개별 사용자는 이 명령을 사용하여 특정 속성과 모든 세션 매개 변수 기본값을 스스로 변경할 수 있습니다. 자세한 내용은 이 항목에 있는 사용법 노트 섹션을 참조하십시오.

사용자가 제출한 모든 쿼리와 기타 SQL 문을 중단하는 데 사용할 수도 있습니다.

참고 항목:

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

구문

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> ] mfaActions

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

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> } [ , ... ]
Copy

여기서

mfaActions ::=
  {
    ENROLL MFA
    SET DEFAULT_MFA_METHOD = { PASSKEY | TOTP | DUO }
    REMOVE MFA METHOD <mfa_method>
    MODIFY MFA METHOD <mfa_method> SET COMMENT = '<string>'
  }
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>
    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 | LEGACY_SERVICE | NULL
    COMMENT = '<string>'
Copy
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
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>
    DEFAULT_NULL_ORDERING = <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>
    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>
Copy

참고

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

매개 변수

name

변경할 사용자의 식별자를 지정합니다. 식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

식별자를 생략할 경우 이 문은 활성 사용자(즉, 로그인한 사용자)를 수정합니다. (이 항목의) 사용법 노트 에 설명된 제한 사항이 적용됩니다.

RENAME TO new_name

사용자의 새 식별자를 지정하며, 계정에 고유한 식별자여야 합니다.

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

RESET PASSWORD

사용자가 새 비밀번호를 입력할 수 있는 웹 페이지가 열리도록 사용자와 공유할 수 있는 URL을 생성합니다. 생성된 URL은 1회용으로 유효하며 4시간 후에는 만료됩니다.

이 매개 변수를 지정해도 사용자의 현재 비밀번호가 무효화되지는 않습니다. 사용자는 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;

특정 통합에 대해 지정된 역할을 사용하여 세션을 시작하기 위한 사용자 동의를 추가합니다.

자세한 내용은 OAuth 사용자 동의를 위해 위임된 권한 추가 를 참조하십시오.

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

사용자에 대한 동의 취소:

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

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

자세한 내용은 다음을 참조하십시오.

{ AUTHENTICATION | PASSWORD | SESSION } POLICY policy_name

사용자에 대해 다음 정책 중 하나를 지정합니다.

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

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

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

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

오브젝트 속성(objectProperties)

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

사용하려고 설정하거나 설정 해제할 하나 이상의 오브젝트 속성을 지정합니다. 오브젝트 속성을 설정 해제하면 다시 기본값으로 재설정됩니다.

TYPE = { PERSON | SERVICE | LEGACY_SERVICE | NULL }

사용자 유형을 변경합니다. 이 속성을 설정하여 인간 사용자, 서비스 사용자, 레거시 서비스 사용자를 구분할 수 있습니다. 이러한 유형의 사용자 특성에 대한 자세한 내용은 사용자 유형 섹션을 참조하십시오.

PERSON

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

SERVICE

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

사용자가 ALTER USER 명령을 사용하여 TYPE 속성을 SERVICE 로 설정한 경우 호환되지 않는 속성은 계속 저장되지만 DESCRIBE USER 와 같은 명령에 의해 반환되지 않습니다. 호환되지 않는 속성은 ALTER USER 명령을 사용하여 설정할 수 없습니다.

TYPE 속성이 SERVICE 로 설정된 사용자가 TYPE 속성이 PERSON 또는 NULL 로 설정된 사용자로 변경되는 경우, 호환되지 않는 속성이 복원되고 PASSWORD 속성을 포함하여 변경될 수 있습니다.

LEGACY_SERVICE

TYPE 속성이 LEGACY_SERVICE 로 설정된 사용자는 비대화형 통합을 나타냅니다. SERVICE 와 유사하지만 비밀번호와 SAML 인증을 허용합니다.

NULL

PERSON 과 동일한 기능을 합니다.

DISABLE_MFA = { TRUE | FALSE }

이 매개 변수의 효과는 사용자가 자발적으로 MFA 에 등록했는지 또는 등록을 요구받았는지에 따라 달라집니다.

  • 사용자가 MFA 를 사용해야 하는 인증 정책의 적용을 받는 경우 이 매개 변수를 TRUE 로 설정하면 사용자의 MFA 방법이 지워집니다. 사용자가 다음에 로그인할 때 두 번째 인증 요소로 사용할 수 있는 새로운 MFA 방법을 추가하라는 메시지가 표시됩니다.

  • 사용자가 자발적으로 MFA 에 등록한 경우 이 매개 변수를 TRUE 로 설정하면 두 번째 인증 요소 없이 비밀번호 사용자가 인증할 수 있습니다.

설정할 수 있는 다른 오브젝트 속성(예: PASSWORD, LOGIN_NAME, DEFAULT_ROLE)에 대한 자세한 내용은 CREATE USER 섹션을 참조하십시오.

속성 설정 및 설정 해제에 대한 더 일반적인 세부 정보는 이 항목에 있는 사용법 노트 를 참조하십시오.

오브젝트 매개 변수(objectParams)

SET ...

사용자를 위해 설정할 하나 이상의 매개 변수를 지정합니다(공백, 쉼표 또는 줄 바꿈으로 구분됨).

ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR = { TRUE | FALSE }

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

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

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

ENABLE_UNREDACTED_SECURE_OBJECT_ERROR = { TRUE | FALSE }

보안 오브젝트와 관련된 오류 메시지를 메타데이터에서 삭제할지 여부를 제어합니다. 보안 오브젝트에 대한 오류 메시지 수정에 대한 자세한 내용은 오브젝트 보안: 오류 메시지의 정보 삭제: 오류 메시지의 정보 삭제 섹션을 참조하십시오.

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

ALTER USER 명령을 사용하여 특정 사용자에 대한 매개 변수를 TRUE 로 설정할 때는 오류를 일으킨 사용자가 아니라 메타데이터에서 수정된 오류 메시지를 보려는 사용자를 수정하십시오.

NETWORK_POLICY = string

사용자에게 유효하게 적용되는 네트워크 정책 을 지정합니다.

또한, 매개 변수 설정 및 설정 해제에 대한 더 일반적인 세부 정보는 이 항목에 있는 사용법 노트 섹션을 참조하십시오.

UNSET ...

사용자에 대해 설정 해제할 속성을 지정하여 기본값으로 재설정합니다.

  • NETWORK_POLICY

  • SESSION POLICY

  • TAG tag_name [ , tag_name ... ]

세션 매개 변수(sessionParams)

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

사용자에 대해 설정하거나 설정 해제할 하나 이상의 세션 매개 변수를 지정합니다. 세션 매개 변수를 설정 해제하면 다시 기본값으로 재설정됩니다.

설정할 수 있는 세션 매개 변수(ABORT_DETACHED_SESSION, AUTOCOMMIT 등)에 대한 자세한 내용은 매개 변수 를 참조하십시오.

또한, 매개 변수 설정 및 설정 해제에 대한 더 일반적인 세부 정보는 이 항목에 있는 사용법 노트 섹션을 참조하십시오.

다단계 인증(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 방법에 대한 설명 이름을 설정할 수 있습니다.

사용법 노트

  • 사용자에 대한 OWNERSHIP 권한을 가진 역할이나 더 높은 역할만 이 명령을 실행하여 대부분의 사용자 속성을 수정할 수 있습니다.

    SET PASSWORD = 'string' 을 사용하여 사용자의 비밀번호를 변경할 때 다른 인터페이스(예: SnowSQL 또는 다른 클라이언트 애플리케이션)를 통해 Snowflake에 로그인하기 전에 사용자가 웹 인터페이스에 로그인하고 비밀번호를 변경할 수밖에 없도록 MUST_CHANGE_PASSWORD = TRUE 도 지정하는 것이 좋습니다.

    또는 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' 과 함께 이 명령을 사용하여 사용자의 비밀번호를 변경할 수 있습니다.

    사용자의 비밀번호를 변경할 때 다른 인터페이스(예: SnowSQL 또는 다른 클라이언트 애플리케이션)를 통해 Snowflake에 로그인하기 전에 사용자가 웹 인터페이스에 로그인하고 비밀번호를 변경할 수밖에 없도록 MUST_CHANGE_PASSWORD = TRUE 도 지정하는 것이 좋습니다.

    또는 RESET PASSWORD 를 사용하여 사용자가 비밀번호를 변경하기 위해 액세스할 수 있는 웹 페이지로 연결되는 URL을 생성합니다.

  • ALTER USER 문은 기본 오브젝트(DEFAULT_WAREHOUSE, DEFAULT_NAMESPACE, DEFAULT_ROLE)가 존재하는지 확인하지 않습니다. DEFAULT_SECONDARY_ROLES 는 오브젝트 이름을 값으로 허용하지 않지만, ALTER USER 문은 지원되는 값이 지정되었는지 확인합니다.

  • 단일 ALTER 문으로 여러 오브젝트 속성과 오브젝트/세션 매개 변수를 설정 및 설정 해제할 수 있습니다.

    • 여러 속성/매개 변수를 설정할 때는 공백, 쉼표 또는 줄 바꿈으로 구분하십시오.

    • 여러 속성/매개 변수를 설정 해제할 때는 쉼표로 구분해야 합니다. 또한, 속성/매개 변수를 설정 해제할 때는 이름만 지정하십시오. 속성/매개 변수 값을 지정하면 오류가 반환됩니다.

  • 사용자에 대해 SET DISABLED = TRUE 를 지정하는 경우는 다음과 같습니다.

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

    • 사용자는 Snowflake 외부에서 잠기며 다시 로그인할 수 없습니다.

    사용자에 대해 실행 중인 쿼리/문과 예약된 쿼리/문만 모두 중단하려면 ABORT ALL QUERIES 를 대신 사용하십시오.

  • 사용자의 TYPE 속성이 SERVICE 인 경우 다음 명령은 사용할 수 없습니다.

    • ALTER USER RESET PASSWORD

    • ALTER USER SET DISABLE_MFA = TRUE

  • 메타데이터 관련:

    주의

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

이름을 user1 에서 user2 로 바꾸기:

ALTER USER user1 RENAME TO user2;
Copy

user1 로 명명된 사용자의 비밀번호를 H8MZRqa8gEe/kvHzvJ+Giq94DuCYoQXmfbb$Xnt 로 설정하고, 사용자가 Snowflake 웹 인터페이스에 로그인하여 자신의 비밀번호를 변경하도록 요구합니다.

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

사용자 유형 을 프로그래밍 방식으로 Snowflake와 상호 작용하는 애플리케이션으로 변경합니다.

ALTER USER user1 SET TYPE = SERVICE;
Copy

사용자의 기존 설명 제거:

ALTER USER user1 UNSET COMMENT;
Copy

기본적으로 보조 역할은 활성화하지 않습니다.

ALTER USER user1 SET DEFAULT_SECONDARY_ROLES = ();
Copy

기본적으로 모든 보조 역할을 활성화합니다.

ALTER USER user1 UNSET DEFAULT_SECONDARY_ROLES;
Copy

OR

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