MySQL 5.7设置用户密码过期

数据库mysql的user表里有三个字段用于控制用户密码过期的设置:

`password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`password_last_changed` timestamp NULL DEFAULT NULL,
`password_lifetime` smallint(5) unsigned DEFAULT NULL,
  • password_expired:枚举值,设置用户密码是否过期的开关,默认为N。
  • password_last_changed:记录密码最近修改的时间
  • password_lifetime:设置密码的有效时间,天数

即使password_expired为"Y",用户也是可以使用密码登录MySQL,但是不允许做任何操作。使用过期密码登录执行操作报错如下:

mysql> SHOW DATABASES;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
Keep in mind that this does not affect any current connections the account has open.

MySQL支持全局设置和针对单独用户设置两种方式密码过期。

全局设置密码过期:default_password_lifetime

MySQL 5.7.4改进了用户密码过期的功能,新增了全局变量default_password_lifetime用于设置全局的用户密码过期策略。

default_password_lifetime可以在启动的配置文件my.cnf中配置,也可以使用命令行设置。

在my.cnf配置

[mysqld]
default_password_lifetime=90

default_password_lifetime的值为密码的有效天数。密码设置超过有效天数,密码过期失效。

default_password_lifetime的值为0时,表示用户设置的密码永不过期。

[mysqld]
default_password_lifetime=0

使用命令行配置

使用命令行设置需要有超级权限。

mysql> SET GLOBAL default_password_lifetime = 90;
Query OK, 0 rows affected (0.00 sec)

单个用户设置密码过期

针对单个用户设置密码过期将会覆盖全局的设置。

直接让用户密码过期

mysql> ALTER USER 'demo'@'localhost' PASSWORD EXPIRE;

指定过期天数

ALTER USER ‘demo’@‘localhost' PASSWORD EXPIRE INTERVAL 30 DAY;

设置用户密码永不过期

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

版权声明:著作权归作者所有。

相关推荐

MySQL限定用户远程连接的ip(设置白名单)

出于安全考虑,有时我们需要限定MySQL用户连接ip。使用授权语法grant可以帮我们完成对ip设置白名单。允许所有的ip访问:mysql> grant all privileges on mydb.* to 'myaccount'@'%'; 其中'myaccount'@’%‘表示,允许账号myaccount在所有的ip上

MySQL 5.7推荐使用ALTER USER修改密码

MySQL修改用户的密码主要有两种方法:ALTER USER 和SET PASSWORDALTER USER 基本使用ALTER USER testuser IDENTIFIED BY '123456'; 修改当前登录用户ALTER USER USER() IDENTI

MySQL 5.7账号锁定Account Lock

MySQL 5.7.8新增了Account Lock用于锁定账号。Account Lock可以在创建账号锁定,也可以使用ALTER USER语句进行锁定。创建账号时锁定mysql> CREATE USER 'demo'@'localhost' IDENTIFIED BY 'a123456'&n

Linux:使用visudo设置用户sudo权限

visudo我们可以修改/etc/sudoers文件来设置用户的sudo权限,修改/etc/sudoers一定要使用visudo命令,它可以让我们比较安全的修改此文件。visudo有以下特性:锁定文件避免多个同时编辑检查语法的完整性检查解析错误,以避免用户错误输入使用root的权限直接执行visudo,打开suders文件$visudo 注意:这里不需要输入shduers文件的路径,默认为/etc

SSH 禁止特定用户使用密码登录

SSH禁止特定用户使用密码登录可以在/etc/ssh/sshd_config添加Match配置过滤指定的用户。按用户过滤Match User user1,user2,user3,user4     PasswordAuthentication no 按组过滤Match Group group1  &