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_PRIV | USER или ROLE | Эту операцию могут выполнять только пользователи или роли с привилегией ADMIN_PRIV |
Примечания по использованию
Начиная с версии 4.1.5 только 'root'@'%' обозначает особую учётную запись root. Учётная запись с идентификатором вроде 'root'@'localhost' остаётся обычным пользователем и не получает права изменять основную учётную запись root лишь благодаря своему имени пользователя. Защита основной учётной записи root также не распространяется на других пользователей с именем root.
-
Начиная с версии 2.0 эта команда больше не поддерживает изменение ролей пользователя. Для соответствующих операций используйте GRANT и REVOKE.
-
В одной команде 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"