Skip to main content
ClickHouse 사용자 계정을 변경합니다. 구문:
ALTER USER를 사용하려면 ALTER USER 권한이 필요합니다. SET variable = valueMODIFY SETTING variable = value의 별칭입니다: 나머지 설정은 유지한 채 단일 설정만 제자리에서 변경합니다. 전체 설정 목록을 대체하고 상속된 모든 (parent) 프로필도 제거하는 단독 SETTINGS 절보다 이것(또는 MODIFY SETTING)을 사용하는 것이 좋습니다.

GRANTEES 절

이 사용자가 권한을 부여할 수 있는 사용자 또는 역할을 지정합니다. 단, 그러려면 이 사용자에게도 필요한 모든 접근 권한이 GRANT OPTION과 함께 부여되어 있어야 합니다. GRANTEES 절의 옵션은 다음과 같습니다.
  • user — 이 사용자가 권한을 부여할 수 있는 사용자를 지정합니다.
  • role — 이 사용자가 권한을 부여할 수 있는 역할을 지정합니다.
  • ANY — 이 사용자는 누구에게나 권한을 부여할 수 있습니다. 기본 설정입니다.
  • NONE — 이 사용자는 누구에게도 권한을 부여할 수 없습니다.
EXCEPT 표현식을 사용하면 특정 사용자나 역할을 제외할 수 있습니다. 예를 들어 ALTER USER user1 GRANTEES ANY EXCEPT user2user1GRANT OPTION과 함께 일부 권한을 부여받은 경우, user2를 제외한 누구에게나 해당 권한을 부여할 수 있음을 의미합니다.

예시

할당된 역할을 기본 역할로 설정:
사용자에게 사전에 할당된 역할이 없으면 ClickHouse는 예외를 발생시킵니다. 할당된 모든 역할을 기본 역할로 설정합니다:
향후 사용자에게 역할이 할당되면 해당 역할은 자동으로 기본 역할이 됩니다. role1role2를 제외하고 할당된 모든 역할을 기본 역할로 설정하세요:
john 계정의 사용자가 자신의 권한을 jack 계정의 사용자에게 부여할 수 있도록 합니다:
기존 인증 방법은 유지하면서 사용자에게 새 인증 방법을 추가합니다:
참고:
  1. 이전 버전의 ClickHouse는 여러 인증 메서드 구문을 지원하지 않을 수 있습니다. 따라서 ClickHouse 서버에 이러한 사용자가 있는 상태에서 이를 지원하지 않는 버전으로 다운그레이드하면 해당 사용자는 더 이상 사용할 수 없게 되며, 일부 사용자 관련 작업도 정상적으로 동작하지 않게 됩니다. 다운그레이드를 안전하게 수행하려면, 다운그레이드 전에 모든 사용자가 단일 인증 메서드만 사용하도록 설정해야 합니다. 또는 적절한 절차 없이 서버를 다운그레이드한 경우 문제가 있는 사용자를 삭제해야 합니다.
  2. 보안상의 이유로 no_password는 다른 인증 메서드와 함께 사용할 수 없습니다. 따라서 no_password 인증 메서드는 ADD할 수 없습니다. 아래 쿼리는 오류를 발생시킵니다:
사용자의 인증 메서드를 삭제하고 no_password만 사용하려면 아래의 대체 구문으로 지정해야 합니다. 인증 메서드를 재설정하고 쿼리에 지정된 메서드를 추가합니다(ADD 키워드 없이 앞에 오는 IDENTIFIED와 동일한 효과):
인증 메서드를 재설정하고 가장 최근에 추가된 것만 유지합니다:

VALID UNTIL 절

인증 방법의 만료 날짜와 선택적으로 시간을 지정할 수 있습니다. 문자열을 매개변수로 받습니다. 날짜 및 시간에는 YYYY-MM-DD [hh:mm:ss] [timezone] 포맷을 사용하는 것이 좋습니다. 기본적으로 이 매개변수는 'infinity'입니다. 허용되는 마감 시한의 범위는 1900-01-01 00:00:00 UTC부터 9999-12-31 09:59:59 UTC까지입니다. 이는 모든 시간대에서 9999년을 벗어나지 않는 가장 늦은 시점이므로, 저장된 시점을 표시할 때 값이 제한되지 않습니다. 과거의 마감 시한은 자격 증명이 이미 만료되었음을 의미합니다. 1970-01-01 00:00:01 UTC 이전의 마감 시한은 “이미 만료됨” 표식으로만 허용됩니다. Unix epoch 1초 후인 가장 이른 만료 시점(1970-01-01 00:00:01 UTC)으로 정규화되므로, SHOW CREATE USER는 작성한 마감 시한 대신 해당 시점을 표시합니다. 해당 시점 이후의 마감 시한은 그대로 저장됩니다. 마감 시한은 절대 시점으로 저장되지만, SHOW CREATE USERsystem.users는 이를 서버 또는 세션 시간대로 표시합니다. 따라서 동일한 저장 시점도 구성이 다른 서버에서는 서로 다른 현지 시간 텍스트로 나타납니다. 예를 들어 위에서 정규화된 만료 시점은 UTC 서버에서는 1970-01-01 00:00:01로, Pacific/Kiritimati 서버에서는 1970-01-01 14:00:01로 표시됩니다. 적용 시에는 항상 표시값이 아니라 저장된 시점을 사용합니다. 절의 위치에 따라 적용되는 인증 방법가 결정됩니다.
  • IDENTIFIED 절 앞에 있는 경우(또는 쿼리에서 인증 방법를 전혀 지정하지 않은 경우): 마감 시한은 사용자의 모든 인증 방법에 적용되는 사용자 수준의 마감 시한입니다.
  • 인증 방법 뒤에 있는 경우: 마감 시한은 해당 방법에만 적용됩니다. 따라서 전체 IDENTIFIED 목록 뒤에 작성한 절은 마지막 방법에만 적용되며, 그 이전 방법에는 만료 시한이 없습니다.
예시:
  • ALTER USER name1 VALID UNTIL '2025-01-01'
  • ALTER USER name1 VALID UNTIL '2025-01-01 12:00:00 UTC'
  • ALTER USER name1 VALID UNTIL 'infinity'
  • ALTER USER name1 VALID UNTIL '2025-01-01' IDENTIFIED WITH plaintext_password BY 'password_1', bcrypt_password BY 'password_2' — 사용자 수준의 마감 시한이 두 방법 모두에 적용됩니다.
  • ALTER USER name1 IDENTIFIED WITH plaintext_password BY 'no_expiration', bcrypt_password BY 'expiration_set' VALID UNTIL '2025-01-01' — 마감 시한은 bcrypt_password 방법에만 적용되며, plaintext_password는 만료되지 않습니다.

VALID FOR 절

VALID FOR 절은 VALID UNTIL의 편의 약식 표현입니다. 절대 날짜 및 시간 대신 인터벌을 지정하며, 쿼리 실행 시점의 현재 시간에 해당 인터벌을 더해 만료 기한을 계산합니다. 결과는 VALID UNTIL 형식으로 저장되므로 SHOW CREATE USER는 항상 해석된 절대 기한을 표시합니다. 배치 규칙은 VALID UNTIL과 같습니다. IDENTIFIED 앞에 있거나 인증 방법가 없는 경우에는 모든 메서드에 적용되는 사용자 수준 기한이 되며, 인증 방법 뒤에 있으면 해당 방법에만 적용됩니다. 기한은 초 단위 정밀도로 저장되고 적용되므로 초 미만 인터벌(NANOSECOND, MICROSECOND, MILLISECOND)은 허용되지 않습니다. 허용되는 가장 작은 단위는 SECOND입니다. 음수 인터벌은 자격 증명이 이미 만료되었음을 나타내는 용도로 사용할 수 있습니다. 계산된 기한이 1970-01-01 00:00:01 UTC 이전이면 가장 이른 만료 시점인 해당 시각으로 정규화되며, SHOW CREATE USER는 이를 표시합니다. VALID UNTIL에 설명된 대로 서버 또는 세션 시간대로 렌더링됩니다. 예시:
  • ALTER USER name1 VALID FOR INTERVAL 1 DAY
  • ALTER USER name1 VALID FOR INTERVAL 3 MONTH
  • ALTER USER name1 VALID FOR INTERVAL 30 DAY IDENTIFIED WITH plaintext_password BY 'password_1', bcrypt_password BY 'password_2' — 사용자 수준 기한이 두 방법 모두에 적용됩니다.
  • ALTER USER name1 IDENTIFIED WITH plaintext_password BY 'no_expiration', bcrypt_password BY 'expiration_set' VALID FOR INTERVAL 30 DAY — 기한은 bcrypt_password 방법에만 적용되며, plaintext_password는 만료되지 않습니다.

GRANTS 절

특정 인증 방법으로 인증된 세션에 부여되는 접근 권한을 제한할 수 있습니다. 자세한 내용은 CREATE USER의 GRANTS 절을 참조하십시오. ADD IDENTIFIED와 함께 사용하면 애플리케이션용 token, 즉 만료일과 제한된 권한 집합을 가진 추가 자격 증명을 편리하게 생성할 수 있습니다. 예시:
  • ALTER USER name1 ADD IDENTIFIED WITH plaintext_password BY 'app_token' VALID UNTIL '2026-12-31' GRANTS (SELECT ON db.table, INSERT ON db.table)
마지막 수정일 2026년 8월 26일