MySQL学习-用户管理(二)

132 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

前言

上篇我们学习了MySQL中的用户管理。有兴趣的小伙伴可以阅读(# MySQL学习-用户管理(一))。
下面我们继续学习MySQL中的用户管理。

用户管理

设置当前用户的密码

方法适用于root用户修改自己的密码,以及普通用户登录后修改自己的密码。
由于root用户拥有很高的权限,因此需要保证root用户的密码安全。root用户可以通过多种方式来修改密码,使用ALTER USER修改用户密码是MySQL官方推荐的方式。另外也可以通过SET语句修改密码。MySQL8中已经移除了PASSWORD函数,因此不再使用UPDATE语句直接操作用户表修改密码。

  • 方法一:使用ALTER语句修改密码
ALTER USER USER() IDENTIFIED BY 'new_password';
  • 方法二:使用SET语句修改密码
SET PASSWORD = 'new_password';

修改其他用户密码

使用root登录后可以修改其他用户的密码。

  • 方法一:使用ALTER语句修改密码
ALTER USER user IDENTIFIED BY 'new_password'
            , user IDENTIFIED BY 'new_password'
            , user IDENTIFIED BY 'new_password'...;
  • 方法二:使用SET语句修改密码
SET PASSWORD FOR 'username'@'hostname' = 'new_password';

MySQL8密码管理

密码过期策略

  • MySQL中,数据库管理员可以手动设置账号密码过期,也可以建立一个自动密码过期策略。
  • 过期策略可以是全局的,也可以为每个账号设置单独的过期策略。

全局设置

语法如下:

ALTER USER user PASSWORD EXPIRE;

修改变量,并持久化。

  • 方式一:使用SQL语句更改变量并持久化
SET PERSIST default_passwoed_lifetime = 365;#创建全局策略,设置密码每隔365天过期
  • 方式二:配置文件my.cnf中进行维护
default_passwoed_lifetime=365#创建全局策略,设置密码每隔365天过期。

单独设置

每个账号既可延用全局策略,也可单独设置策略。在CREATE USER和ALTER USER语句上加入PASSWORD EXPIRE选项可以实现单独设置策略。

示例:
  1. 设置yuanyuanlanlan账号密码180天过期
CREATE USER 'yuanyuanlanlan'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY;
ALTER USER 'yuanyuanlanlan'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY;
  1. 设置密码不过期
CREATE USER 'yuanyuanlanlan'@'localhost' PASSWORD EXPIRE INTERVAL NEVER;
ALTER USER 'yuanyuanlanlan'@'localhost' PASSWORD EXPIRE INTERVAL NEVER;
  1. 设置密码延用全局密码过期策略
CREATE USER 'yuanyuanlanlan'@'localhost' PASSWORD EXPIRE DEFAULT;
ALTER USER 'yuanyuanlanlan'@'localhost' PASSWORD EXPIRE DEFAULT;

密码重用

全局设置

  • 方式一:使用SQL
SET PERSIST password_history = 6;#设置不能选择最近使用过的6个密码
SET PERSIST password_reuse_interval = 365;@设置不能选择最近一年内的密码
  • 方式二:my.cnf配置文件
password_history=6#设置不能选择最近使用过的6个密码
password_reuse_interval=365@设置不能选择最近一年内的密码

单独设置

  1. 不能使用最近6个密码
CREATE USER 'yuanyuanlanlan'@'localhost' PASSWORD HISTORY 6;
ALTER USER 'yuanyuanlanlan'@'localhost' PASSWORD HISTORY 6;
  1. 不能使用最近一年的密码
CREATE USER 'yuanyuanlanlan'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
ALTER USER 'yuanyuanlanlan'@'localhost' PASSWORD REUSE INTERVAL 365 DAY;
  1. 同时不能使用最近6个密码和最近一年的密码
CREATE USER 'yuanyuanlanlan'@'localhost' 
PASSWORD HISTORY 6
PASSWORD REUSE INTERVAL 365 DAY;

ALTER USER 'yuanyuanlanlan'@'localhost' 
PASSWORD HISTORY 6
PASSWORD REUSE INTERVAL 365 DAY;

今天先学习到这里,明天继续。