- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。
MySQL中记录使用过的历史密码,目前包含如下密码管理功能:
(1)密码过期:需要定期修改密码。
(2)密码重用机制:不允许使用旧密码。
(3)密码强度评估:要求使用高强度的密码。
MySQL密码管理功能只针对使用基于MySQL授权插件的账号,这些插件有mysql_native_password、sha256_password和caching_sha2_password。
在MySQL中,数据库管理员可以手动设置
账号密码过期,也可以建立一个自动
密码过期的策略。
过期策略可以是全局的
,也可以为每个账号
设置单独的过期策略。
手动设置立马过期
手动设置账号密码过期,可使用如下语句:
ALTER USER user PASSWORD EXPIRE;
示例:将用户zhang3账号的密码设置为过期,SQL语句如下:
ALTER USER 'zhang3'@'localhost' PASSWORD EXPIRE;
该语句将用户zhang3的密码设置为过期,zhang3用户仍然可以登录进入数据库,但无法进行查询。密码过期后,只有重新设置了新密码,才能正常使用。
手动设置指定时间过期方式1:全局
如果密码使用的时间大于允许的时间,服务器会自动设置为过期,不需要手动设置。
MySQL使用 default_password_lifetime
系统变量建立全局密码过期策略。
它的默认值是0,表示禁用自动密码过期。
它允许的值是正整数N,表示允许的密码生存期。密码必须每隔N天进行修改。
两种实现方式分别如图所示:
方式①:使用SQL语句更改该变量的值并持久化
SET PERSIST default_password_lifetime = 180; # 建立全局策略,设置密码每隔180天过期
方式②:配置文件my.cnf中进行维护
[mysqld]
default_password_lifetime=180 #建立全局策略,设置密码每隔180天过期
手动设置指定时间过期方式2:单独设置
每个账号既可延用全局密码过期策略,也可单独设置策略。在 CREATE USER
和 ALTER USER
语句上加入 PASSWORD EXPIRE
选项可实现单独设置策略。下面是一些语句示例。
#设置zhang3账号密码每90天过期:
CREATE USER 'zhang3'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER 'zhang3'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
#设置密码永不过期:
CREATE USER 'zhang3'@'localhost' PASSWORD EXPIRE NEVER;
ALTER USER 'zhang3'@'localhost' PASSWORD EXPIRE NEVER;
#延用全局密码过期策略:
CREATE USER 'zhang3'@'localhost' PASSWORD EXPIRE DEFAULT;
ALTER USER 'zhang3'@'localhost' PASSWORD EXPIRE DEFAULT;
MySQL限制使用已用过的密码。重用限制策略基于密码更改的数量
和使用时间
。重用策略可以是全局
的,也可以为每个账号设置单独的策略
。
账号的历史密码包含过去该账号所使用的密码。MySQL基于以下规则来限制密码重用:
如果账号的密码限制基于密码更改的数量
,那么新密码不能从最近限制的密码数量中选择。例如,如果密码更改的最小值是3,那么新密码不能与最近3个密码中任何一个相同。
如果账号的密码限制基于时间
,那么新密码不能从规定时间内选择。例如,如果密码重用周期为60天,那么新密码不能从最近60天内使用的密码中选择。
MySQL使用password_history和password_reuse_interval系统变量设置密码重用策略。
password_history
: 规定密码重用的数量。
password_reuse_interval
: 规定密码重用的周期
这两个值可在服务器的配置文件
中进行维护,也可在运行期间使用SQL语句更改
该变量的值并持久化。
手动设置密码重用方式1:全局
方式①:使用SQL
SET PERSIST password_history = 6; #设置不能选择最近使用过的6个密码
SET PERSIST password_reuse_interval = 365; #设置不能选择最近一年内的密码
方式②:my.cnf配置文件
[mysqld]
password_history=6
password_reuse_interval=365
手动设置密码重用方式2:单独设置
每个账号可以延用全局密码重用策略,也可以单独设置策略。这两个选项可以单独使用,也可以结合在一起使用。下面是一些示例。
#不能使用最近5个密码:
CREATE USER 'zhang3'@'localhost' PASSWORD HISTORY 5;
ALTER USER 'zhang3'@'localhost' PASSWORD HISTORY 5;
#不能使用最近365天内的密码:
CREATE USER 'zhang3'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'zhang3'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
#既不能使用最近5个密码,也不能使用365天内的密码
CREATE USER 'zhang3'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'zhang3'@'localhost'
PASSWORD HISTORY 5
PASSWORD REUSE INTERVAL 365 DAY;
蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
更多技术知识,蓝队云期待与你一起探索。
售前咨询
售后咨询
备案咨询
二维码
TOP