Перейти к основному содержимому
Перейти к основному содержимому

ALTER USER

Изменяет учетные записи пользователей ClickHouse.

Синтаксис:

Для использования ALTER USER вы должны иметь права ALTER USER.

GRANTEES Clause

Указывает пользователей или роли, которые могут получать привилегии от этого пользователя при условии, что у этого пользователя также есть все необходимые права, предоставленные с помощью GRANT OPTION. Опции пункта GRANTEES:

  • user — Указывает пользователя, которому этот пользователь может предоставлять привилегии.
  • role — Указывает роль, которой этот пользователь может предоставлять привилегии.
  • ANY — Этот пользователь может предоставлять привилегии любому. Это значение по умолчанию.
  • NONE — Этот пользователь не может предоставлять привилегии никому.

Вы можете исключить любого пользователя или роль, используя выражение EXCEPT. Например, ALTER USER user1 GRANTEES ANY EXCEPT user2. Это означает, что если user1 получил некоторые привилегии с помощью GRANT OPTION, он сможет предоставить эти привилегии любому, кроме user2.

Примеры

Установить назначенные роли по умолчанию:

Если роли ранее не были назначены пользователю, ClickHouse выдаст исключение.

Установить все назначенные роли по умолчанию:

Если в будущем роли будут назначены пользователю, они автоматически станут по умолчанию.

Установить все назначенные роли по умолчанию, исключая role1 и role2:

Позволяет пользователю с аккаунтом john предоставлять свои привилегии пользователю с аккаунтом jack:

Добавляет новые методы аутентификации пользователю, сохраняя существующие:

Примечания:

  1. Более ранние версии ClickHouse могут не поддерживать синтаксис нескольких методов аутентификации. Поэтому, если сервер ClickHouse содержит таких пользователей и был понижен до версии, которая не поддерживает это, такие пользователи станут неработоспособными, и некоторые операции, связанные с пользователями, будут нарушены. Для плавного понижения необходимо установить для всех пользователей единственный метод аутентификации перед понижением. В качестве альтернативы, если сервер был понижен без надлежащей процедуры, недействительные пользователи должны быть удалены.
  2. no_password не может сосуществовать с другими методами аутентификации по соображениям безопасности. Поэтому невозможно ADD метод аутентификации no_password. Запрос ниже выдаст ошибку:

Если вы хотите удалить методы аутентификации для пользователя и использовать no_password, вы должны указать в следующем заменяющем формате.

Сбросить методы аутентификации и добавить указанные в запросе (эффект ведет к IDENTIFIED без ключевого слова ADD):

Сбросить методы аутентификации и сохранить наиболее недавно добавленный:

VALID UNTIL Clause

Позволяет указать дату истечения срока действия и, необязательно, время для метода аутентификации. Принимает строку в качестве параметра. Рекомендуется использовать формат YYYY-MM-DD [hh:mm:ss] [timezone] для даты и времени. По умолчанию этот параметр равен 'infinity'. Пункт VALID UNTIL может быть указан только вместе с методом аутентификации, за исключением случая, когда в запросе не был указан метод аутентификации. В этом сценарии пункт VALID UNTIL будет применяться ко всем существующим методам аутентификации.

Примеры:

  • 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 IDENTIFIED WITH plaintext_password BY 'no_expiration', bcrypt_password BY 'expiration_set' VALID UNTIL '2025-01-01'