一、User表概述

MySQL的user表位于mysql系统数据库中,是MySQL权限系统的核心,用于存储用户账户信息、认证方式和全局权限。通过操作此表,可实现用户创建、权限分配及安全审计。

二、User表核心字段解析

字段名作用示例值
Host用户允许连接的主机(IP/域名/通配符)localhost%192.168.1.%
User用户名rootapp_user
authentication_string加密后的密码(MySQL 8.0+)*6BB4...(哈希值)
Select_priv是否允许SELECT操作(Y/N)Y
Insert_priv是否允许INSERT操作N
Create_priv是否允许创建数据库/表Y
Grant_priv是否允许授权其他用户N

三、基础操作指南

1. 查看User表信息

-- 切换至mysql数据库
USE mysql;-- 查看表结构
DESC user;-- 查询所有用户
SELECT Host, User FROM mysql.user;-- 查看特定用户权限
SHOW GRANTS FOR 'root'@'localhost';

2. 创建用户

-- 基础语法
CREATE USER 'username'@'host' IDENTIFIED BY 'password';-- 示例1:创建本地用户(仅限本机登录)
CREATE USER 'local_admin'@'localhost' IDENTIFIED BY 'SecurePass123!';-- 示例2:创建远程用户(允许任意IP登录)
CREATE USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'RemotePass456!';

3. 授权与权限回收

-- 授予全局权限(所有数据库)
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'%';-- 授予特定数据库权限
GRANT SELECT, INSERT ON sales_db.* TO 'report_user'@'192.168.1.%';-- 回收权限
REVOKE DELETE ON sales_db.* FROM 'report_user'@'192.168.1.%';-- 刷新权限(操作后必须执行)
FLUSH PRIVILEGES;

4. 删除用户

-- 安全删除用户
DROP USER IF EXISTS 'old_user'@'localhost';-- 批量删除(示例)
DROP USER 'user1'@'%', 'user2'@'192.168.1.100';

5. 修改密码

-- 方法1:SET PASSWORD(推荐)
SET PASSWORD FOR 'app_user'@'%' = PASSWORD('NewSecurePass789!');-- 方法2:更新user表(需刷新权限)
UPDATE mysql.user SET authentication_string = PASSWORD('AnotherPass012!') 
WHERE User = 'legacy_user' AND Host = 'localhost';
FLUSH PRIVILEGES;

四、安全最佳实践

  1. 最小权限原则
    仅授予用户完成工作所需的最小权限(如SELECT/INSERT而非ALL PRIVILEGES)。

  2. 密码策略

    -- 查看当前密码策略
    SHOW VARIABLES LIKE 'validate_password%';-- 启用强密码校验(MySQL 8.0+)
    SET GLOBAL validate_password.policy = 'MEDIUM';
    
  3. 限制登录来源

    • 使用Host字段限制用户IP(如'user'@'192.168.1.100')。
    • 避免使用'%'作为主机名,除非必要。
  4. 定期审计

    -- 监控异常用户
    SELECT User, Host FROM mysql.user 
    WHERE Host NOT IN ('localhost', '127.0.0.1') 
    AND User NOT LIKE 'mysql.%';
    

五、常见问题解决

  1. 错误1045:Access denied

    • 确认用户存在:SELECT User, Host FROM mysql.user WHERE User = 'username';
    • 检查密码是否正确:ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
  2. 权限未生效

    • 执行FLUSH PRIVILEGES;后重试。
  3. 用户被锁定

    -- 解锁用户
    ALTER USER 'username'@'host' ACCOUNT UNLOCK;
    

六、进阶管理技巧

  1. 角色(Role)管理(MySQL 8.0+)

    -- 创建角色
    CREATE ROLE 'dev_role';-- 授予角色权限
    GRANT SELECT, INSERT ON app_db.* TO 'dev_role';-- 将角色赋予用户
    GRANT 'dev_role' TO 'dev_user'@'%';
    
  2. 动态权限调整

    -- 实时调整全局权限(无需刷新)
    SET GLOBAL max_connections = 200;
    

通过掌握以上内容,您可高效管理MySQL用户及权限,保障数据库安全与性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92997.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92997.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/92997.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[NPUCTF2020]这是什么觅

题目是一个文件,我们先以记事本打开一下,开头就是PK,基本可以确定这是一个 ZIP 格式的压缩包​,不确定可以用winhex打开:​50 4B 03 04开头则 100% 是 ZIP 文件。改一下后缀之后解压得到一张图片上面是日期&#xff0c…

每日任务day0812:小小勇者成长记之挤牛奶

清晨,薄雾还缭绕在草地上,小小勇者背着编织篮子来到农场。奶牛们低头咀嚼,尾巴轻轻拍打着苍白的露珠。老人微笑着递给他一只温热的牛奶罐,说:“第一次要慢,别惊扰它们。”勇者学着老人弯下身,温…

IIS 多用户环境中判断服务器是否为开发用电脑,数据状态比较

如果只需要在 IIS 多用户环境中判断服务器是否为开发用电脑(一个固定状态,通常不会动态切换),代码可以进一步简化。这种场景下,状态一般是启动时确定的(如通过配置文件或环境变量),后…

P2865 [USACO06NOV] Roadblocks G

思路:严格次短路,在任何情况下如果发现一条从1到i的路,都有以下情况:1.该路径小于当前1到i的最短路,将最短路替换2.该路径长度等于当前最短路,舍去3.该路径大于最短路且小于次短路,将此路径替换…

基于Hadoop的汽车价格预测分析及评论情感分析可视化系统

文章目录有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主一、项目背景二、项目目标三、系统架构四、功能模块五、创新点六、应用价值与前景每文一语有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 一、项目背景 近年…

gpt-5与gpt-5-fast

简单来说: GPT-5 → 追求最高质量的推理,输出会更细致、更准确,尤其适合需要深度思考、长链推理、严谨分析的任务(比如复杂代码调试、长文档推理、系统设计)。速度相对慢一些。GPT-5-fast → 追求更高的响应速度&#…

Mybatis源码解读-SqlSession 会话源码和Executor SQL操作执行器源码

相关流程图整理元数据简略图执行流程图一级缓存、二级缓存设计与查询流程分析图一级缓存设计-类图一级缓存工作流程图二级缓存设计-类图二级缓存工作流程图元数据简略图 执行流程图 一级缓存、二级缓存设计与查询流程分析图 一级缓存设计-类图 一级缓存工作流程图 二级缓存设计…

使用Excel制作甘特图

最终效果:专业的项目管理团队通常会使用project制作甘特图,但是很多人没接触过这个软件,另外project制作的甘特图并不适合放在PPT中展示。由于Excel图表的数据标签无法准确识别月初和月末,如果使用原始数据直接做的效果是这样的&a…

超详细基于stm32hal库的esp8266WiFi模块驱动程序(可直接移植)

目录 前言: 1 前期准备 1.1 了解mqtt通信协议 1.1.1核心组件 1.2 ESP8266固件烧录 1.3 启动EMQX服务器 1.3.1大概了解emqx的使用 2 驱动代码讲解应用 2.1 硬件接线 2.2 AT指令 2.3 驱动代码 2.4 效果展示 前言: esp8266支持mqtt通信协议&…

redis认识缓存击穿

缓存击穿是指 一个非常热点的数据(被高并发访问)在缓存中过期失效的瞬间,导致大量并发请求同时穿透缓存,直接落到底层数据库,造成数据库瞬间压力剧增甚至崩溃的现象。关键特征和你的描述解析“数据库没有就需要命中的数…

TF-IDF——红楼梦案例

目录 用 TF-IDF 挖掘《红楼梦》各回目核心关键词:一个 NLP 实践案例 一、案例背景与目标 二、实现步骤 步骤 1:数据准备与分卷处理 1. 导入模块与创建目录 2. 打开源文件并初始化变量 3. 逐行处理文本内容 4. 写入卷内容并过滤前两行 5. 关闭最后…

【软考中级网络工程师】知识点之 IP QoS 技术

目录一、IP QoS 技术是什么1.1 定义与概念1.2 重要性和应用场景二、IP QoS 技术原理2.1 流量分类与标记2.2 流量整形与限速2.3 拥塞避免与管理2.4 资源预留协议(RSVP)三、IP QoS技术模型3.1 尽力而为服务模型3.2 综合服务模型(IntServ&#x…

Git 常用命令速查表

一、仓库初始化与克隆命令说明git init在当前目录初始化本地仓库git clone <远程仓库地址>克隆远程仓库到本地&#xff08;例&#xff1a;git clone https://github.com/user/repo.git&#xff09;二、文件状态与提交命令说明git status查看工作区 / 暂存区文件状态git a…

第五十四章:AI模型的“压缩大师”:GPTQ、AWQ与bitsandbytes实战量化

AI模型压缩前言&#xff1a;让训练好的AI模型“轻装上阵”第一章&#xff1a;回顾与挑战&#xff1a;训练后量化&#xff08;PTQ&#xff09;的必要性1.1 量化原理与精度类型回顾&#xff1a;FP32到INT4/INT81.2 PTQ&#xff08;Post-Training Quantization&#xff09;&#x…

在Word和WPS文字一页中实现一栏与多栏混排

在Word和WPS文字的一页中如何实现分栏和不分栏的内容混排&#xff1f;只需要使用分栏功能。把光标放在要分栏的位置&#xff0c;插入分栏即可&#xff0c;最关键的点是分栏应用于“插入点之后”。如果不需要分栏&#xff0c;则栏数选择为1即可。一、Word和WPS文字的分栏设置路径…

Python调用C/C++函数库的多种方法与实践指南

Python作为一门高级编程语言&#xff0c;以其简洁的语法和丰富的库生态赢得了开发者的青睐。然而&#xff0c;在计算密集型任务中&#xff0c;Python的性能往往无法满足要求。Python调用C/C函数库成为提升应用性能的关键技术路径&#xff0c;通过将底层计算逻辑用C/C实现&#…

【21】OpenCV C++实战篇——OpenCV C++案例实战二十七《角度测量》

OpenCV C案例实战二十七《角度测量》 利用opencv获取三点所形成直线的角度

程序在计算机中的运行方式

程序在计算机中的运行是一个涉及硬件、操作系统和软件协同工作的复杂过程。我们可以将其分解为几个关键阶段来理解&#xff1a;1. 程序的诞生&#xff1a;从源代码到可执行文件 编写代码&#xff1a;程序员使用高级编程语言&#xff08;如C、Python、Java&#xff09;编写源代码…

虚拟卡券管理平台详细设计文档

文章目录**1. 文档概述**1.1 目标1.2 核心能力**2. 业务场景分析**2.1 用户场景2.2 关键业务流程卡券核销流程&#xff1a;**3. 整体架构设计**3.1 技术栈3.2 微服务拆分**4. 功能模块详细设计**▶ 4.1 卡券生命周期管理**4.1.1 卡券类型设计****4.1.2 关键状态机**▶ 4.2 卡券…

Oracle参数Process

RDBMS&#xff1a; 19.28 参考文档&#xff1a; IF:How to determine an optimum value for PROCESSES parameter (Doc ID 2012693.1) All About the Initialization Parameter PROCESSES and the Related Issues (Doc ID 2673195.1) How to calculate the proper value from …