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

ALTER USER

Описание​

Оператор ALTER USER используется для изменения атрибутов учётной записи пользователя, включая пароль, политики паролей и другие параметры.

Синтаксис​

ALTER USER [IF EXISTS] <user_identity> [IDENTIFIED BY <password>]
[<password_policy>]
[<comment>]

password_policy:
1. PASSWORD_HISTORY { <n> | DEFAULT }
2. PASSWORD_EXPIRE { DEFAULT | NEVER | INTERVAL <n> { DAY | HOUR | SECOND }}
3. FAILED_LOGIN_ATTEMPTS <n>
4. PASSWORD_LOCK_TIME { UNBOUNDED | <n> { DAY | HOUR | SECOND }}
5. ACCOUNT_UNLOCK

Обязательные параметры​

1. <user_identity>

user_identity однозначно идентифицирует пользователя. Синтаксис: 'user_name'@'host'. user_identity состоит из двух частей: user_name и host, где username обозначает имя пользователя. Часть host задаёт адрес хоста, с которого подключается клиент. В части host можно использовать % для сопоставления по шаблону. Если хост не указан, по умолчанию используется '%', что позволяет пользователю подключаться к Doris с любого хоста. Часть host также можно задать как домен с помощью синтаксиса 'user_name'@['domain']. Если эта часть заключена в квадратные скобки, Doris считает её доменом и пытается определить его IP-адрес.

Необязательные параметры​

1. <password>

Указывает пароль пользователя.

2. <password_policy>

password_policy задаёт политики входа с аутентификацией по паролю. В настоящее время поддерживаются следующие политики:

PASSWORD_HISTORY { <n> | DEFAULT}

Определяет, может ли текущий пользователь повторно использовать прежние пароли при смене пароля. Например, PASSWORD_HISTORY 10 запрещает использовать в качестве нового пароля любой из паролей, заданных при последних 10 сменах. Если указано PASSWORD_HISTORY DEFAULT, используется значение глобальной переменной password_history. Значение 0 отключает эту функцию. Значение по умолчанию: 0.

PASSWORD_EXPIRE { DEFAULT | NEVER | INTERVAL <n> { DAY | HOUR | SECOND }}

Задаёт срок действия пароля текущего пользователя. Например, PASSWORD_EXPIRE INTERVAL 10 DAY означает, что срок действия пароля истечёт через 10 дней. Значение PASSWORD_EXPIRE NEVER означает, что срок действия пароля не ограничен. Если указано PASSWORD_EXPIRE DEFAULT, используется значение глобальной переменной default_password_lifetime. По умолчанию используется NEVER (или 0), что означает неограниченный срок действия.

FAILED_LOGIN_ATTEMPTS <n>

Если текущий пользователь при входе n раз введёт неверный пароль, его учётная запись будет заблокирована. Например, FAILED_LOGIN_ATTEMPTS 3 означает, что учётная запись будет заблокирована после 3 неудачных попыток входа.

PASSWORD_LOCK_TIME { UNBOUNDED | <n> { DAY | HOUR | SECOND }}

Задаёт продолжительность блокировки учётной записи. Например, PASSWORD_LOCK_TIME 1 DAY означает, что учётная запись будет заблокирована на один день.

ACCOUNT_UNLOCK

ACCOUNT_UNLOCK используется для разблокировки учётной записи пользователя.

3. <comment>

Указывает комментарий к учётной записи пользователя.

Требования к правам доступа​

Пользователь, выполняющий эту команду SQL, должен иметь как минимум следующие привилегии:

ПривилегияОбъектПримечания
ADMIN_PRIVUSER или ROLEЭту операцию могут выполнять только пользователи или роли с привилегией ADMIN_PRIV

Примечания по использованию​

Начиная с версии 4.1.5 только 'root'@'%' обозначает особую учётную запись root. Учётная запись с идентификатором вроде 'root'@'localhost' остаётся обычным пользователем и не получает права изменять основную учётную запись root лишь благодаря своему имени пользователя. Защита основной учётной записи root также не распространяется на других пользователей с именем root.

  1. Начиная с версии 2.0 эта команда больше не поддерживает изменение ролей пользователя. Для соответствующих операций используйте GRANT и REVOKE.

  2. В одной команде ALTER USER можно изменить только один из следующих атрибутов учётной записи:

  • Изменить пароль
  • Изменить PASSWORD_HISTORY
  • Изменить PASSWORD_EXPIRE
  • Изменить FAILED_LOGIN_ATTEMPTS и PASSWORD_LOCK_TIME
  • Разблокировать пользователя

Пример​

Подготовка: создайте пользователя jack для выполнения приведённых ниже примеров:

CREATE USER jack@'%' IDENTIFIED BY "12345";
  • Изменение пароля пользователя
ALTER USER jack@'%' IDENTIFIED BY "12345";
  • Изменение политики паролей пользователя
ALTER USER jack@'%' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 1 DAY;
  • Разблокировка пользователя
ALTER USER jack@'%' ACCOUNT_UNLOCK
  • Изменение комментария к учётной записи пользователя
ALTER USER jack@'%' COMMENT "this is my first user"