当前位置: 首页 > ops >正文

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;

📌 13.1.2 创建用户
  • 语法:

    create user '用户名'@'主机名' identified by '密码';
    
  • 示例:

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

📌 13.1.3 删除用户
  • 正确语法:

    drop user '用户名'@'主机名';
    
  • 常见错误:

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

原因:

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

📌 13.1.4 修改用户密码
  • 自己改密码:

    set password = password('新密码');
    
  • 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';


📌 13.1.5 密码策略要求

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

  1. 密码长度:默认要求密码至少为 8 个字符。

  2. 字符复杂度

    • 至少包含一个大写字母(A-Z)。

    • 至少包含一个小写字母(a-z)。

    • 至少包含一个数字(0-9)。

    • 至少包含一个特殊字符(例如 @, #, $, %)。


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';

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

SET GLOBAL validate_password_policy  = MEDIUM;-------------------设置密码强度为低
SET GLOBAL validate_password_length = 8;----------------------设置密码长度为6
SET GLOBAL validate_password_mixed_case_count = 1;------------设置混合字符为0
SET GLOBAL validate_password_special_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数据库中所有表的查看权限
    

赋权前: 

赋权后:

  • 查看当前权限:

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

 

📌 13.2.2 回收权限
  • 撤销语法:

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

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

 


📝 常见问题提示:

  • 若密码设置失败报错 ERROR 1819

    SHOW VARIABLES LIKE 'validate_password%';
    

    可调整密码策略来解决。

  • 赋权后无效时建议:

    flush privileges;
    

http://www.xdnf.cn/news/9086.html

相关文章:

  • [25-cv-05718]BSF律所代理潮流品牌KAWS公仔(商标+版权)
  • 分布式项目保证消息幂等性的常见策略
  • 并发编程艺术--AQS底层源码解析(三)
  • 华为OD机试真题——构成正方形的数量(2025B卷:100分)Java/python/JavaScript/C++/C/GO六种最佳实现
  • P2340 [USACO03FALL] Cow Exhibition G
  • 时序模型上——ARIMA/
  • 云蝠 Voice Agent:开启大模型时代语音交互新纪元
  • AAOS系列之(四) ---APP端如何获取CarService中的各个服务代理
  • day8补充(中断驱动和队列缓冲实现高效数据处理)
  • day020-sed和find
  • 【C++高阶一】二叉搜索树
  • Speech Synthesis/Text to Speech(TTS)
  • 写给这个阶段自我的一封信
  • Solr搜索:比传统数据库强在哪?
  • 【Ai】使用Ultralytics yolo做图片检测+使用roboflow做数据标注
  • 机器学习与深度学习5:pytorch前馈神经网络FNN实现手写数字识别
  • Halcon仿射变换---个人笔记
  • PySide6 GUI 学习笔记——常用类及控件使用方法(光标类图标QCursor)
  • 918. 环形子数组的最大和
  • 消费电子卷入“技术军备竞赛”
  • shell脚本基础
  • 记忆上传与自我同一性的哲学-技术综合分析
  • AI日报 - 2025年05月26日
  • 快速了解GO之Channel 通道
  • uv ——新的python包管理工具
  • 如何在 ONLYOFFICE 演示文稿中调整段落首行缩进
  • 第10章 网络与信息安全基础知识
  • 【分治】数组中的逆序对
  • 格恩朗管段超声波流量计:流量测量先锋
  • SD-WAN与传统网络结合:轨道交通网络优化的高效实践与深度解析