ALTER USER ... ATTRIBUTE ...  with the value for the column key set to JSON null  (unquoted, in lower case). This is illustrated by the following sequence of SQL statements: 

mysql> ALTER USER ’bill’@’localhost’ COMMENT ’Something about Bill’; Query OK, 0 rows affected (0.06 sec) mysql> SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES -> WHERE USER=’bill’ AND HOST=’localhost’; +------+-----------+---------------------------------------------------+ | USER | HOST | ATTRIBUTE | +------+-----------+---------------------------------------------------+ | bill | localhost | {"baz": "faz", "comment": "Something about Bill"} | +------+-----------+---------------------------------------------------+ 1 row in set (0.00 sec) mysql> ALTER USER ’bill’@’localhost’ COMMENT ’’; Query OK, 0 rows affected (0.09 sec) mysql> SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES -> WHERE USER=’bill’ AND HOST=’localhost’; +------+-----------+-------------------------------+ | USER | HOST | ATTRIBUTE | +------+-----------+-------------------------------+ | bill | localhost | {"baz": "faz", "comment": ""} | +------+-----------+-------------------------------+ 1 row in set (0.00 sec) mysql> ALTER USER ’bill’@’localhost’ ATTRIBUTE ’{"comment": null}’; Query OK, 0 rows affected (0.07 sec) mysql> SELECT * FROM INFORMATION_SCHEMA.USER_ATTRIBUTES -> WHERE USER=’bill’ AND HOST=’localhost’; +------+-----------+----------------+ | USER | HOST | ATTRIBUTE | +------+-----------+----------------+ | bill | localhost | {"baz": "faz"} | +------+-----------+----------------+ 1 row in set (0.00 sec) 

For ALTER USER  syntax that permits an auth_option  value to follow a user  value, auth_option indicates how the account authenticates by specifying an account authentication plugin, credentials (for example, a password), or both. Each auth_option  value applies only  to the account named immediately preceding it. 

Following the user  specifications, the statement may include options for SSL/TLS, resource-limit, password-management, and locking properties. All such options are global  to the statement and apply to all  accounts named in the statement. 

Example: Change an account’s password and expire it. As a result, the user must connect with the named password and choose a new one at the next connection: 

ALTER USER ’jeffrey’@’localhost’ IDENTIFIED BY ’ new_password ’ PASSWORD EXPIRE; 

Example: Modify an account to use the caching_sha2_password  authentication plugin and the given password. Require that a new password be chosen every 180 days, and enable failed-login tracking, such that three consecutive incorrect passwords cause temporary account locking for two days: 

ALTER USER ’jeffrey’@’localhost’ IDENTIFIED WITH caching_sha2_password BY ’ new_password ’ PASSWORD EXPIRE INTERVAL 180 DAY FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2; 

Example: Lock or unlock an account: 

