ALTER USER
Изменяет учетные записи пользователей в ClickHouse.
Синтаксис:
Чтобы использовать ALTER USER, необходимо иметь привилегию ALTER USER.
Клауза GRANTEES
Определяет пользователей или роли, которым разрешено получать привилегии от этого пользователя при условии, что этому пользователю также выданы все необходимые привилегии с GRANT OPTION. Параметры клаузы GRANTEES:
user— Указывает пользователя, которому этот пользователь может выдавать привилегии.role— Указывает роль, которой этот пользователь может выдавать привилегии.ANY— Этот пользователь может выдавать привилегии любому пользователю или роли. Значение по умолчанию.NONE— Этот пользователь не может выдавать привилегии никому.
Вы можете исключить любого пользователя или роль с помощью выражения EXCEPT. Например, ALTER USER user1 GRANTEES ANY EXCEPT user2. Это означает, что если у user1 есть какие‑то привилегии, выданные с GRANT OPTION, то он сможет выдавать эти привилегии кому угодно, кроме user2.
Примеры
Сделайте назначенные роли ролями по умолчанию:
Если роли ранее не были назначены пользователю, ClickHouse сгенерирует исключение.
Сделайте все назначенные роли ролями по умолчанию:
Если в будущем пользователю назначат роль, она автоматически станет ролью по умолчанию.
Сделайте все назначенные роли ролями по умолчанию, кроме role1 и role2:
Позволяет пользователю с учётной записью john предоставлять свои привилегии пользователю с учётной записью jack:
Добавляет новые методы аутентификации пользователю, сохраняя уже существующие:
Notes:
- Более старые версии ClickHouse могут не поддерживать синтаксис с несколькими методами аутентификации. Поэтому, если сервер ClickHouse содержит таких пользователей и понижен до версии, которая этого не поддерживает, такие пользователи станут непригодными к использованию, а некоторые операции, связанные с пользователями, перестанут работать. Чтобы выполнить понижение версии без последствий, необходимо перед понижением оставить для всех пользователей только один метод аутентификации. Если же сервер был понижен без соблюдения этой процедуры, проблемных пользователей следует удалить.
no_passwordне может сосуществовать с другими методами аутентификации по соображениям безопасности. По этой причине невозможно добавить метод аутентификацииno_passwordс помощьюADD. Приведённый ниже запрос вызовет ошибку:
Если вы хотите удалить методы аутентификации пользователя и полагаться только на no_password, необходимо воспользоваться приведённой ниже формой с заменой.
Сбрасывает методы аутентификации и добавляет те, что указаны в запросе (эквивалент ведущего IDENTIFIED без ключевого слова ADD):
Сбросить методы аутентификации и сохранить только последний добавленный:
Оператор VALID UNTIL
Позволяет задать дату окончания срока действия и, при необходимости, время для метода аутентификации. Принимает строку в качестве параметра. Рекомендуется использовать формат 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''