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

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, где user_name обозначает имя пользователя. Часть 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"