MySQL用户管理——设置账户密码及账户过期

2023年 8月 9日 60.6k 0

说明如何设置MySQL账户的密码,及账户过期。使用MySQL创建账户时,可以为账户直接创建密码。例如,

CREATE USER ... IDENTIFIED BY 'password'

对于一个已经存在的账户而言,可以通过执行“ALTER USER”语句或者“SET PASSWORD”语句对该账户设置密码。例如,

ALTER USER user1@localhost IDENTIFIED BY 'password';SET PASSWORD FOR user1@localhost ='password';

或者使用mysqladmin客户端执行下列语句,前提是需要连接到mysql数据库

mysqladmin ... password 'newpassword'

MySQL从8.0.14版本之后支持使用双重密码,双重密码允许账户使用主要(primary)和次要(secondary)两个密码。其主要目的是在用户拥有大量的MySQL服务器、并且有多个应用程序连接到不同的MySQL,当对应用程序更新使用新的MySQL密码时,可以通过同时使用两个密码保证系统的正常运行。当全部的应用程序更新密码后,可以删除次要密码。

使用双重密码时,使用下列语句,

ALTER USER USER() IDENTIFIED BY 'newpassword' RETAIN CURRENT PASSWORD;

此时,新的密码将作为主要密码使用。

删除次要密码时,使用下列语句,

ALTER USER USER() DISCARD OLD PASSWORD;

当运维策略需要为数据库的新账户的密码设置使用期限时,可以使用“PASSWORD EXPIRE”关键字对账户进行设置。例如,

CREATE USER 'use'@'localhost' IDENTIFIED BY 'password1' PASSWORD EXPIRE;

此时,该用户登录MySQL服务器后,需要更改其密码才能够执行其他的语句。DBA通过配置“default_password_lifetime”全局变量,可以指定密码使用的期限(日),默认值为0,表示密码不会过期。也可以通过“PASSWORD EXPIRE”、“CREATE USER”或“ALTER USER”语句为每个账户指定期限。例如,

CREATE USER 'user4'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE INTERVAL 30 DAY;

为账户指定默认的密码期限。例如,

ALTER USER 'user5'@'localhost' PASSWORD EXPIRE DEFAULT;

禁用密码使用期限。例如,

ALTER USER 'user5'@'localhost' PASSWORD EXPIRE NEVER;

当账户密码过期时,用户必须更改其密码后,才能够执行其他语句。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论