开发者

Mysql中的用户管理实践

目录
  • 13. 用户管理
    • 13.1 用户
      • 13.1.1 用户信息
      • 13.1.2 创建用户
      • 13.1.3 删除用户
      • 13.1.4 修改用户密码
      • 13.1.5 密码策略要求
    • 1. 设置一个更强的密码
      • 2. 临时降低密码策略要求
        • 3. 查看当前密码策略
          • 13.2 数据库的权限
            • 13.2.1 授权
            • 13.2.2 回收权限
        • 常见问题提示:

          13. 用户管理

          为什么不能只用 root: 出于安全考虑,不应该所有操作都由 root 执行。

          mysql 的用户信息存储位置: mysql.user 表。

          13.1 用户

          13.1.1 用户信息

          • 用户表字段解释:
            • host: 可以从哪台主机登录。
            • user: 用户名。
            • authentication_string: 加密后的密码。
            • *_priv: 用户权限。
          select User,Host,authentication_string from user;

          Mysql中的用户管理实践

          13.1.2 创建用户

          语法:

          create user '用户名'@'主机名' identified by '密码';

          示例:

          create user 'maomi-9527'@'localhost' identified by '666888';

          Mysql中的用户管理实践

          13.1.3 删除用户

          正确语法:

          drop user '用户名'@'主机名';

          常见错误:

          drop user maomi-9527; -- 错误,因为主机名默认是 %

          原因:

          mysql可以创建两个相同用户相同密码但登录地点不一样的用户:

          Mysql中的用户管理实践

          13.1.4 修改用户密码

          自己改密码:

          set password = password('python新密码');

          root 改指定用户密码:

          set password for 'maomi-9527'@'localhost' = password('666888');

          由于在 MySQL 中,用户信息本质上是存储在 mysql.user 表中的,因此我们也可以直接通过 SQL 语句修改该表的内容来重设密码。例如:

          UPDATE user SET authentication_string = PASSWORD('你的新密码') WHERE user = 'root' AND host = 'localhost';

          Mysql中的用户管理实践

          13.1.5 密码策略要求

          MySQL 8.0+ 版本默认启用了 validate_password 插件,它会根据以下规则检查密码强度:

          • 密码长度:默认要求密码至少为 8 个字符。
          • 字符复杂度
          • 至少包含一个大写字母(A-Z)。
          • 至少包含一个小写字母(a-z)。
          • 至少包含一个数字(0-9)。
          • 至少包含一个特殊字符(例如 @, #, $, %)。

          Mysql中的用户管理实践

          1. 设置一个更强的密码

          你可以设置一个符合强度要求的密码,例如:

          ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newpassword123!';

          或者:

          ALTER USER 'root'@'localhost' IDENTIFIED BY 'Str0ngP@ssw0rd!';

          2. 临时降低密码策略要求

          如果你不想设置那么复杂的密码,可以通过降低密码策略要求来解决。执行以下命令来临时降低要求:

          SET GLOBAL validate_password_policy  = LOW;-------------------设置密码强度为低
          SET GLOBAL validate_password_length = 6;----------------------设置密码长度为6
          SET GLOBAL validate_password_mixed_case_count = 0;------------设置混合字符为0
          SET GLOBAL validate_password_special_char_count = 0;  --------设置特殊字符个数为0

          然后,你就可以设置一个简单的密码了:

          ALTER USER 'root'@'localhost' IDENTIFIED BY 'simplepass';

          Mysql中的用户管理实践

          注意: 降低密码策略可能会影响安全性,操作完成后可以将策略恢复:

          SET GLOBAL validate_password_polhttp://www.devze.comicy  = MEDIUM;-------------------设置密码强度为低
          SET GLOBAL validate_password_length = 8;----------------------设置密码长度为6
          SET GLOBAL validate_password_mixed_case_count = 1;------------设置混合字符为0
          SET GLOBAL validate_password_sRamJeQYgApecial_char_count = 1;  --------设置特殊字符个数为0

          3. 查看当前密码策略

          你可以通过以下命令查看当前密码策略的设置:

          SHOW VARIABLES LIKE 'validate_password%';

          13.2 数据库的权限

          常见权限:

          select, insert, update, delete, create, drop, grant, all 等。

          13.2.1 授权

          授权语法:

          grant 权限列表 on 数据库.表 to '用户名'@'主机' [identified by '密码'];

          示例:

          grant select on text.* to 'maomi-9527'@'localhost';------给用户在test数据库中所有表的查看权限

          赋权前: 

          Mysql中的用户管理实践

          赋权后:

          Mysql中的用户管理实践

          查看当前权限:

          show grants for 'maomi-9527'@'localhost';

          Mysql中的用户管理实践

          13.2.2 回收权限

          撤销语法:

          revoke 权限列表 on 数据库.对象 from '用户名'@'主机';

          示例:

          revoke select on text.* from 'maomi-9527'@'localhost';

          Mysql中的用户管理实践

          常见问题提示:

          若密码设置失败报错 ERROR 1819

          SHOW VARIApythonBLES LjsIKE 'validate_password%';

          可调整密码策略来解决。

          赋权后无效时建议:

          flush privileges;

          到此这篇关于Mysql中的用户管理的文章就介绍到这了,更多相关mysql用户管理内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

          0

          上一篇:

          下一篇:

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          最新数据库

          数据库排行榜