返回顶部
分享到

Mysql中的用户管理

Mysql 来源:互联网 作者:佚名 发布时间:2025-05-28 21:46:00 人浏览
摘要

13. 用户管理 为什么不能只用 root:出于安全考虑,不应该所有操作都由 root 执行。 MySQL 的用户信息存储位置:mysql.user表。 13.1 用户 ???? 13.1.1 用户信息 用户表字段解释: host: 可以从哪台主机

13. 用户管理

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

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

13.1 用户

???? 13.1.1 用户信息

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

1

select User,Host,authentication_string from user;

???? 13.1.2 创建用户

语法:

1

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

示例:

1

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

???? 13.1.3 删除用户

正确语法:

1

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

常见错误:

1

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

原因:

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

???? 13.1.4 修改用户密码

自己改密码:

1

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

root 改指定用户密码:

1

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

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

1

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

???? 13.1.5 密码策略要求

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

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

1. 设置一个更强的密码

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

1

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

或者:

1

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

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

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

1

2

3

4

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

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

1

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

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

1

2

3

4

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. 查看当前密码策略

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

1

SHOW VARIABLES LIKE 'validate_password%';

13.2 数据库的权限

???? 常见权限:

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

???? 13.2.1 授权

授权语法:

1

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

示例:

1

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

赋权前: 

赋权后:

查看当前权限:

1

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

???? 13.2.2 回收权限

撤销语法:

1

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

示例:

1

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

???? 常见问题提示:

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

1

SHOW VARIABLES LIKE 'validate_password%';

可调整密码策略来解决。

赋权后无效时建议:

1

flush privileges;


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • MySQL查看表的最后一个ID的常见方法
    在MySQL中,id字段通常被用作主键,尤其是自增主键(AUTO_INCREMENT)。自增主键的特性是每次插入新记录时,id值会自动递增。因此,最后一个
  • Mysql中的用户管理

    Mysql中的用户管理
    13. 用户管理 为什么不能只用 root:出于安全考虑,不应该所有操作都由 root 执行。 MySQL 的用户信息存储位置:mysql.user表。 13.1 用户 ???? 1
  • Redis迷你版微信抢红包

    Redis迷你版微信抢红包
    全部代码:https://github.com/ziyifast/ziyifast-code_instruction/tree/main/redis_demo/redpacket_demo 1 思路分析 抢红包是一个高并发操作,且我们需要保证其原
  • Python虚拟环境终极(含PyCharm的使用教程)

    Python虚拟环境终极(含PyCharm的使用教程)
    一、为什么需要虚拟环境? 场景 问题表现 虚拟环境解决方案 多项目依赖冲突 项目A需要Django 3.2,项目B需要Django 4.1 隔离不同项目的依赖版
  • Python中的魔术方法__new__介绍

    Python中的魔术方法__new__介绍
    一、核心意义与机制 1.1 构造过程原理 1.2 与 __init__ 对比 特性 __new__ __init__ 方法类型 静态方法 实例方法 返回值 必须返回实例对象 无返回值
  • 基于PyQt5实现的Windows定时关机工具

    基于PyQt5实现的Windows定时关机工具
    在日常使用电脑的过程中,我们经常会遇到需要定时关机的场景,比如: 夜间下载文件,想让电脑在任务完成后自动关机。 长时间运行的程
  • 宝塔安装的MySQL无法连接的情况及解决方案

    宝塔安装的MySQL无法连接的情况及解决方案
    一、错误 1130:Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 错误原因 此错误表示您的 IP 地址没有被授权访问宝塔服务器上的 MySQL。
  • MySQL中drop、truncate和delete的区别
    对于drop、truncate和delete,虽然简单,但是真要使用或者面试时候问到还是需要有一定的总结,今天来简单讲讲他们直接的区别。在此之前先
  • Linux搭建单机MySQL8.0.26版本的操作方法

    Linux搭建单机MySQL8.0.26版本的操作方法
    环境信息 IP 系统 规格 10.0.0.10 Ubuntu22.04 2c4g 数据库服务安装步骤 下载前置依赖 1 2 # 下载libtinfo5、libnuma1依赖 [root@lb ~]# apt update -y apt install
  • mysql中的group by高级用法
    MySQL中的GROUP BY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算。以下从基本语法到高级用法进
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计