如何使用MySQL 8.0用户和角色管理

这篇文章主要为大家展示了如何使用mysql 8.0用户和角色管理,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。

Mysql8.0新加了很多功能,其中在用户管理中增加了角色的管理,

默认的密码加密方式也做了调整,由之前的sha1改为了sha2,同时加上5.7的禁用用户和用户过期的设置,

这样方面用户的管理和权限的管理,也增加了用户的安全性。

MYSQL8.0中,MySQL库中表的文件合并到数据根目录中的mysql.ibd中(MySQL8.0 Innodb引擎重构)。

同时MySQL8.0可以使用SET PERSIST动态修改参数并保存在配置文件中(mysqld-auto.cnf,保存的格式为JSON串),

这个是DBA同学的福音,不必担心设置之后忘记保存在配置文件中,重启之后会被还原的问题了。

查阅了MySQL8.0的官方文档,通过官方的示例来查看新的管理方式。

如何使用MySQL 8.0用户和角色管理

1、MySQL用户管理

  1.1、验证插件和密码加密方式的变化在MySQL 8.0中,caching_sha2_password是默认的身份验证插件而不是之前版本的mysql_native_password,

    默认的密码加密方式是sha2。

    如果需要保持之前的验证方式并保持之前版本的密码加密方式需要在配置文件中修改,暂不支持动态修改,需要重启生效:default_authentication_plugin = mysql_native_password。

    将8.0已有的sha2密码修改为sha1的模式:

    ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY 'passowrd' PASSWORD EXPIRE NEVER;

    #修改加密规则为永不过期

    ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'password';

    #更新一下用户的密码加密方式为之前版本的方式

    FLUSH PRIVILEGES; #刷新权限

  1.2 用户授权和修改密码

  MySQL8.0的用户授权和之前有所区别,老版本的常用授权语句在8.0中会报错:

  MySQL8.0之前版本:

  GRANT ALL ON *.* TO `wangwei`@`127.0.0.1` IDENTIFIED BY 'passowrd' WITH GRANT OPTION;

  MySQL8.0版本:

# 创建账号密码 CREATE USER `wangwei`@`127.0.0.1` IDENTIFIED BY 'passowrd'; # 授予权限 GRANT ALL ON *.* TO `wangwei`@`127.0.0.1` WITH GRANT OPTION; # 删除权限 REVOKE all privileges ON databasename.tablename FROM 'username'@'host'; # 修改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

  MySQL8.0中带过期时间用户的创建:

  CREATE USER `wangwei`@`127.0.0.1` IDENTIFIED BY 'wangwei' PASSWORD EXPIRE INTERVAL 90 DAY;   GRANT ALL ON *.* TO `wangwei`@`127.0.0.1` WITH GRANT OPTION;

MySQL8.0修改用户密码:

  1.2、密码过期时间管理

  要全局建立自动密码到期策略,请使用default_password_lifetime系统变量。其默认值为0,禁用自动密码过期。

  如果值default_password_lifetime正整数N,则表示允许的密码生存期,以便密码必须每天更改N。可以加在配置文件中:

    1:要建立全局策略,密码的使用期限大约为六个月,请在服务器my.cnf文件中使用以下行启动服务器

    [mysqld]default_password_lifetime=180

    2:要建立全局策略,以便密码永不过期,请将其设置default_password_lifetime为0:

    [mysqld]default_password_lifetime=0

    这个参数是可以动态设置并保存的:

    SET PERSIST default_password_lifetime = 180;SET PERSIST default_password_lifetime = 0;

    创建和修改带有密码过期的用户,帐户特定的到期时间设置示例:

    要求每90天更换密码:

      CREATE USER 'wangwei'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;

      ALTER USER 'wangwei'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;

    禁用密码过期:

      CREATE USER ' wangwei'@'localhost' PASSWORD EXPIRE NEVER;

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

    遵循全局到期政策:

      CREATE USER 'wangwei'@'localhost' PASSWORD EXPIRE DEFAULT;

      ALTER USER 'wangwei'@'localhost' PASSWORD EXPIRE DEFAULT;1.3 MySQL用户密码重用策略设置

    MySQL允许限制重复使用以前的密码。可以根据密码更改次数、已用时间或两者来建立重用限制。帐户的密码历史由过去分配的密码组成。

MySQL可以限制从此历史记录中选择新密码:

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。