热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分享一个mysql密码策略按需限制方案

概述今天主要分享一个关于mysql密码策略限制的方案账户设置过期。一、需求具体需求如下:root及应用系统账号设置永不过期

概述今天主要分享一个关于mysql密码策略限制的方案账户设置过期

一、需求具体需求如下:

root及应用系统账号设置永不过期账户设置过期,运维人员账号设置过期时间为180天

二、相关原理从MySQL 5.7.4版开始,用户的密码过期时间这个特性做了改进,可以通过一个全局变量default_password_lifetime来设置密码过期的策略,此全局变量可以设置一个全局的自动密码过期策略账户设置过期。 常用如下:

1、全局策略:90天过期

可以在MySQL的配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间账户设置过期。my.cnf配置如下:

 [mysqld]default_password_lifetime=902、全局策略:永不过期

如果要设置密码永不过期的全局策略账户设置过期,可以设置

 [mysqld]default_password_lifetime=03、用户特定策略:30天过期(覆盖全局)

还可以使用ALTER USER命令为每个具体的用户账户单独设置特定的值,它会自动覆盖密码过期的全局策略账户设置过期。要注意ALTER USER语句的INTERVAL的单位是“天”。

 ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY;4、用户特定策略:禁用密码过期

 ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;5、用户特定策略:使用默认的密码过期全局策略

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

三、实现方案1、禁用全局策略

在my.cnf设置:

 [mysqld]default_password_lifetime=02、设置root用户及应用权限账户永不过期

SELECT USER, HOST, account_locked, password_expired, password_lifetime, concat( 'alter user ', USER, '@''',host, ''' PASSWORD EXPIRE NEVER;' ) 'root_policy' FROM mysql.USER WHERE account_locked = 'N';

分享一个mysql密码策略按需限制方案

3、设置运维账号180天后过期

SELECT USER, HOST, account_locked, password_expired, password_lifetime, concat( 'alter user ', USER, '@''', HOST, ''' PASSWORD EXPIRE INTERVAL 180 DAY;' ) 'ops_policy' FROM mysql.USER WHERE account_locked = 'N' and user not in('root','dbmt');

分享一个mysql密码策略按需限制方案

4、测试重启后是否生效

重启数据库后检查,符合需求账户设置过期

SELECT USER, HOST, account_locked, password_expired, password_lifetimeFROM mysql.USER WHERE account_locked = 'N';

分享一个mysql密码策略按需限制方案

后面会分享更多devops和DBA方面内容账户设置过期,感兴趣的朋友可以关注下!

分享一个mysql密码策略按需限制方案


推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有