ALTER USER
ALTER USER изменяет информацию о пользователе, включая пароль, метод аутентификации, роли по умолчанию и свойства пользователя (поддерживается начиная с версии v1.5.2).
Обычные пользователи могут использовать эту команду для изменения информации о себе. Только пользователи с ролью user_admin могут изменять информацию о других пользователях.
Синтаксис
ALTER USER user_identity
[auth_option]
[default_role]
[DEFAULT ROLE <role_name>[, <role_name>, ...]]
[SET PROPERTIES ("key"="value", ...)]
Параметры
-
user_identityсостоит из двух частей: "user_name" и "host", в форматеusername@'userhost'. Для части "host" вы можете использовать%для нечёткого соответствия. Если "host" не указан, по умолчанию используется "%", что означает, что пользователь может подключаться к Selena с любого хоста. Однако при использовании этого выражения сSET PROPERTIESдля изменения свойств пользователя необходимо указатьusernameвместоuser_identity. -
auth_optionопределяет метод аутентификации. В настоящее время поддерживаются три метода аутентификации: нативный пароль Selena, mysql_native_password и "authentication_ldap_simple". Нативный пароль Selena логически идентичен mysql_native_password, но немного отличается синтаксисом. Одна идентификация пользователя может использовать только один метод аутентификации. Вы можете использовать ALTER USER для изменения паролей и методов аутентификации пользователей.auth_option: {
IDENTIFIED BY 'auth_string'
IDENTIFIED WITH mysql_native_password BY 'auth_string'
IDENTIFIED WITH mysql_native_password AS 'auth_string'
IDENTIFIED WITH authentication_ldap_simple AS 'auth_string'
}Метод аутентификации Пароль при создании пользователя Пароль для входа Нативный пароль Открытый текст или шифротекст Открытый текст mysql_native_password BYОткрытый текст Открытый текст mysql_native_password WITHШифротекст Открытый текст authentication_ldap_simpleОткрытый текст Открытый текст
Примечание: Selena шифрует пароли пользователей перед их сохранением.
-
DEFAULT ROLEустанавливает роль по умолчанию для пользователя.-- Установить указанные роли в качестве ролей по умолчанию.
DEFAULT ROLE <role_name>[, <role_name>, ...]
-- Установить все роли пользователя, включая роли, которые будут назначены этому пользователю, в качестве ролей по умолчанию.
DEFAULT ROLE ALL
-- Роль по умолчанию не устанавливается, но роль public остаётся активной после входа пользователя.
DEFAULT ROLE NONEПеред запуском ALTER USER для установки ролей по умолчанию убедитесь, что все роли назначены пользователям. Роли автоматически активируются после повторного входа пользователя.
-
SET PROPERTIESустанавливает свойства пользователя, включая максимальное количество подключений пользователя (max_user_connections), catalog, базу данных или сессионные переменные на уровне пользователя. Сессионные переменные уровня пользователя вступают в силу при входе пользователя. Эта функция поддерживается начиная с версии v1.5.2.-- Установить максимальное количество подключений пользователя.
SET PROPERTIES ("max_user_connections" = "<Integer>")
-- Установить catalog.
SET PROPERTIES ("catalog" = "<catalog_name>")
-- Установить базу данных.
SET PROPERTIES ("catalog" = "<catalog_name>", "database" = "<database_name>")
-- Установить сессионные переменные.
SET PROPERTIES ("session.<variable_name>" = "<value>", ...)
-- Очистить свойства, установленные для пользователя.
SET PROPERTIES ("catalog" = "", "database" = "", "session.<variable_name>" = "");подсказкаSET PROPERTIESработает с пользователем, а не с идентификацией пользователя. Поэтому при изменении свойств пользователя необходимо указатьusernameвместоuser_identityв выраженииALTER USER.- Глобальные переменные и переменные только для чтения не могут быть установлены для конкретного пользователя.
- Переменные вступают в силу в следующем порядке: SET_VAR > Session > User property > Global.
- Вы можете использовать SHOW PROPERTY для просмотра свойств конкретного пользователя.
Примеры
Пример 1: Изменить пароль пользователя на пароль в открытом тексте.
ALTER USER 'jack' IDENTIFIED BY '123456';
ALTER USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password BY '123456';
Пример 2: Изменить пароль пользователя на зашифрованный пароль.
ALTER USER jack@'172.10.1.10' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
ALTER USER jack@'172.10.1.10' IDENTIFIED WITH mysql_native_password AS '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9';
Вы можете получить зашифрованный пароль с помощью функции password().
Пример 3: Изменить метод аутентификации на LDAP.
ALTER USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple;
Пример 4: Изменить метод аутентификации на LDAP и указать отличительное имя (DN) пользователя в LDAP.
ALTER USER jack@'172.10.1.10' IDENTIFIED WITH authentication_ldap_simple AS 'uid=jack,ou=company,dc=example,dc=com';
Пример 5: Изменить роли по умолчанию пользователя на db_admin и user_admin. Обратите внимание, что пользователю должны быть назначены эти две роли.
ALTER USER 'jack'@'192.168.%' DEFAULT ROLE db_admin, user_admin;
Пример 6: Установить все роли пользователя, включая роли, которые будут назначены этому пользователю, в качестве ролей по умолчанию.
ALTER USER 'jack'@'192.168.%' DEFAULT ROLE ALL;
Пример 7: Очистить все роли по умолчанию пользователя.
ALTER USER 'jack'@'192.168.%' DEFAULT ROLE NONE;
Примечание: По умолчанию роль
publicостаётся активной для пользователя.
Пример 8: Установить максимальное количество подключений пользователя на 600.
ALTER USER 'jack' SET PROPERTIES ("max_user_connections" = "600");
Пример 9: Установить catalog пользователя на hive_catalog.
ALTER USER 'jack' SET PROPERTIES ('catalog' = 'hive_catalog');
Пример 10: Установить базу данных пользователя на test_db в catalog по умолчанию.
ALTER USER 'jack' SET PROPERTIES ('catalog' = 'default_catalog', 'database' = 'test_db');
Пример 11: Установить сессионную переменную query_timeout на 600 для пользователя.
ALTER USER 'jack' SET PROPERTIES ('session.query_timeout' = '600');
Пример 12: Очистить свойства, установленные для пользователя.
ALTER USER 'jack' SET PROPERTIES ('catalog' = '', 'database' = '', 'session.query_timeout' = '');