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

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'