MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
目录
- 前言
- 1. 授予权限
- 2. 撤销权限
- 3. 查询权限
- 4. Demo
前言
公司内部的数据库权限一般针对不同人员有不同的权限分配,而不都统一给一个root权限
1. 授予权限
授予用户权限的基本命令是GRANT
可以授予的权限种类很多,涵盖从数据库和表级别到列和存储过程级别的各种操作
基本的语法如下:
GRANT privileges ON database.table TO 'username'@'host';
对应的参数如下:
privileges
:要授予的权限列表,可以是一个或多个权限,用逗号分隔database
:数据库名table
:表名,可以使用通配符*表示所有数据库或所有表'username'@'host'
:用户及其允许连接的主机
常见的权限如下:
权限类型 | 说明 |
---|---|
ALL PRIVILEGES | 授予用户所有权限 |
SELECT | 允许用户执行SELECT查询 |
INSERT | 允许用户插入数据 |
UPDATE | 允许用户更新数据 |
DELETE | 允许用户删除数据 |
CREATE | 允许用户创建新数据库或表 |
DROP | 允许用户删除数据库或表 |
GRANT OPTION | 允许用户将自己拥有的权限授予其他用户 |
RELOAD | 允许用户执行FLUSH操作(刷新表、日志等) |
SHUTDOWN | 允许用户关闭MySQL服务器 |
PROCESS | 允许用户查看当前MySQL服务器的线程信息 |
FILE | 允许用户读写服务器上的文件 |
REFERENCES | 允许用户创建外键 |
INDEX | 允许用户创建和删除索引 |
ALTER | 允许用户修改表结构 |
SHOW DATABASES | 允许用户执行SHOW DATABASES查看所有数据库 |
SUPER | 允许用户执行超级用户操作(如设置全局变量、停止复制等) |
CREATE TEMPORARY TABLES | 允许用户创建临时表 |
LOCK TABLES | 允许用户使用LOCK TABLES命令 |
EXECUTE | 允许用户执行存储过程 |
REPLICATION SLAVE | 允许用户作为复制从服务器连接 |
REPLICATION CLIENT | 允许用户查询主从复制服务器信息 |
CREATE VIEW | 允许用户创建视图 |
SHOW VIEW | 允许用户执行SHOW CREATE VIEW查看视图定义 |
CREATE ROUTINE | 允许用户创建存储过程和函数 |
ALTER ROUTINE | 允许用户修改和删除存储过程和函数 |
EVENT | 允许用户创建、修改和删除事件 |
TRIGGER | 允许用户创建和删除触发器 |
CREATE USER | 允许用户创建、删除和修改用户帐号 |
ALTER USER | 允许用户修改已有用户的属性(如密码) |
类似如下:
# 授予多种权限:
# 授予user1对mydatabase数据库中所有表的SELECT、INSERT和UPDATE权限:
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'user1'@'localhost';# 授予所有权限:
# 授予user1对mydatabase数据库中所有表的所有权限:
GRANT ALL PRIVILEGES ON mydatabase.* TO 'user1'@'localhost';# 授予全局权限:
# 授予user1全局CREATE和DROP权限:
GRANT CREATE, DROP ON *.* TO 'user1'@'localhost'
2. 撤销权限
撤销特定的权限或收回用户所有权限
基本的语法如下:
REVOKE privileges ON database.table FROM 'username'@'host';
privileges
:要收回的权限列表,可以是一个或多个权限,用逗号分隔database
:数据库名table
:表名,可以使用通配符*表示所有数据库或所有表'username'@'host'
:用户及其允许连接的主机
收回特定的权限:REVOKE SELECT, INSERT ON mydatabase.* FROM 'user1'@'localhost';
收回所有的权限:REVOKE SELECT, INSERT, UPDATE, DELETE ON mydatabase.* FROM 'user1'@'localhost';
3. 查询权限
查询当前用户的权限:show grants;
查询特定用户的权限:SHOW GRANTS FOR 'root'@'localhost';
截图如下所示:
查看MySQL中名为root的用户的详细信息和权限配置
mysql.user
表包含所有MySQL用户的详细信息,包括用户名、主机、权限以及其他安全相关设置
SELECT * FROM mysql.user WHERE user='root';
如图所示:
对于该表的基本含义如下:
属性 | 描述 |
---|---|
Host | 从哪些主机连接到MySQL服务器,例如localhost、%(表示任意主机)等 |
User | 用户名 |
Password | 加密后的用户密码(从MySQL 5.7.6版本开始,改为authentication_string) |
Select_priv、Insert_priv、Update_priv、Delete_priv 等 | 这些列存储用户在全局级别上的权限,值为'Y'(有权限)或'N'(无权限) |
Create_priv、Drop_priv | 是否有创建和删除数据库、表等的权限 |
Grant_priv | 是否有授予权限的能力 |
References_priv、Index_priv、Alter_priv | 其他特定操作权限 |
Create_user_priv | 是否有创建新用户的权限 |
ssl_type、ssl_cipher、x509_issuer、x509_subject | 与SSL/TLS连接相关的信息 |
max_questions、max_updates、max_connections、max_user_connections | 限制用户在一定时间内的最大查询数、更新数、连接数等 |
4. Demo
结合Demo深入理解
-- 1. 创建用户
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123';-- 2. 授予用户对mydatabase数据库所有表的所有权限
GRANT ALL PRIVILEGES ON mydatabase.* TO 'user1'@'localhost';-- 3. 查看用户权限
SHOW GRANTS FOR 'user1'@'localhost';-- 4. 收回用户对mydatabase数据库所有表的SELECT和INSERT权限
REVOKE SELECT, INSERT ON mydatabase.* FROM 'user1'@'localhost';-- 5. 查看用户权限(确认SELECT和INSERT权限已收回)
SHOW GRANTS FOR 'user1'@'localhost';
查看用户权限:
再次查看用户权限:
对于用户的基本操作
先科普基本的用户创建还有删除命令:
- 创建用户:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- 删除用户:`DROP USER ‘username’@‘host’;
如果更新用户的密码,推荐阅读:修改sql密码(涵盖多个版本)
-- 1. 创建用户
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'password123';-- 2. 更新用户密码(方法1:使用 ALTER USER)
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'new_password123';-- 3. 更新用户密码(方法2:使用 SET PASSWORD)
SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('new_password123');-- 4. 删除用户
DROP USER 'user1'@'localhost';
截图如下:
相关文章:

MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
目录 前言1. 授予权限2. 撤销权限3. 查询权限4. Demo 前言 公司内部的数据库权限一般针对不同人员有不同的权限分配,而不都统一给一个root权限 1. 授予权限 授予用户权限的基本命令是GRANT 可以授予的权限种类很多,涵盖从数据库和表级别到列和存储过…...
Day39
Day39 JSP JSP底层 全称为Java Server Pages,JSP实际上就是一个servelet JSP:HTML页面Java代码,本质:servlet。 public class login_jsp{//JSP的9大内置对象private JSPWriter out;//当前JSP输出流对象private HttpServletRequest request;…...
Nginx之HTTP模块详解
Nginx是模块化的代码架构,其代码由核心代码与功能模块代码构成。Nginx的主要功能模块是HTTP功能模块,HTTP功能模块在HTTP核心功能的基础上为Nginx对HTTP请求的处理流程提供了扩展功能,这些扩展功能可以让用户很方便地应对访问控制、数据处理、…...

JCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断
JJCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNNGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分类效果 格拉姆…...

最新Prompt预设词分享,DALL-E3文生图+文档分析
使用指南 直接复制使用 可以前往已经添加好Prompt预设的AI系统测试使用(可自定义添加使用) 支持GPTs SparkAi SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。支持GPT-4o…...

基于SpringBoot+Vue会所产后护理系统设计和实现
基于SpringBootVue会所产后护理系统设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &#…...
Linux中的EINTR和EAGAIN错误码
Linux中的EINTR和EAGAIN错误码 在Linux系统中,进行系统调用时经常会遇到各种错误码。其中,EINTR(Interrupted system call)和EAGAIN(Resource temporarily unavailable)是两个较为常见的错误码,…...

用户需求分析揭秘:最佳实践与策略
大多数产品团队都有自己处理客户需求的一套流程。但是那些潜在的客户和他们的需求呢?如果在产品管理上已经有一定的资历,很可能对此见惯不怪了。 通常,这些需求是销售人员跑来告诉你的,大概就是说:“超棒的潜在客户一…...

批量创建文件夹 就是这么简单 一招创建1000+文件夹
批量创建文件夹 就是这么简单 一招创建1000文件夹 在工作中,或者生活中,我们经常要用到批量创建文件夹,并且根据不同的工作需求,要求是不一样的,比如有些人需要创建上千个不一样名称的文件夹,如果靠手动创…...

LogicFlow 学习笔记——8. LogicFlow 基础 事件 Event
事件 Event 当我们使用鼠标或其他方式与画布交互时,会触发对应的事件。通过监听这些事件,可以获取其在触发时所产生的数据,根据这些数据来实现需要的功能。详细可监听事件见事件API。 监听事件 lf实例上提供on方法支持监听事件。 lf.on(&…...

Nginx缓存之代理缓存配置
Nginx 的缓存功能是集成在代理模块中的,当启用缓存功能时,Nginx 将请求返回的响应数据持久化在服务器磁盘中,响应数据缓存的相关元数据、有效期及缓存内容等信息将被存储在定义的共享内存中。当收到客户端请求时,Nginx 会在共享内…...

【Android】使用SeekBar控制数据的滚动
项目需求 有一个文本数据比较长,需要在文本右侧加一个SeekBar,然后根据SeekBar的上下滚动来控制文本的滚动。 项目实现 我们使用TextView来显示文本,但是文本比较长的话,需要在TextView外面套一个ScrollView,但是我…...

新能源汽车的能源动脉:中国星坤汽车电缆在新能源汽车电气化中的应用!
随着新能源汽车行业的蓬勃发展,汽车电缆组件作为汽车电气系统的核心组成部分,其重要性日益凸显。中国星坤汽车电缆组件以其卓越的性能和创新技术,为汽车的电能传输、信号传递和控制提供了坚实的保障。本文将深入解析星坤汽车电缆组件的特性、…...
AVL许可证查询系统
在数字化时代,软件已经成为企业运营的核心组成部分。然而,随着软件应用的不断增加,许可证管理也变得越来越复杂。AVL许可证查询系统作为企业软件资产管理的重要工具,能够帮助企业实现对软件许可证的全面掌控。本文将深入探讨AVL许…...

四个步骤,帮你成为价值导向型项目经理
在企业数字化转型的浪潮下,项目管理的方向逐渐从任务导向转变为以价值交付为导向。在快速变化的市场环境中,仅仅关注项目任务的完成已不足以确保项目的成功,需要更加注重项目的最终成果和价值,确保项目能够为组织带来实际的价值和…...
Python3 使用 clickhouse-connect 操作 clickhouse
版本: Python 3.7 x86 clickhouse 24.6.1.3573 clickhouse-connect 0.6.22 代码一: # pip install clickhouse-connectimport clickhouse_connect# 准备参数 host "192.168.1.112" port 8123 username "default" passw…...
Python脚手架系列-DrissionPage
记录DrissionPage模块使用中的一些常常复用的代码,持续更新… 接管谷歌浏览器 from DrissionPage import ChromiumPage, ChromiumOptionsco ChromiumOptions().set_local_port(4249) driver ChromiumPage(addr_or_optsco)创建driver,如果浏览器已开启优先接管&am…...
Java中如何调用mysql中函数
在Java中调用MySQL中的函数(无论是存储函数还是自定义函数),通常是通过JDBC(Java Database Connectivity)来完成的。以下是一个简单的步骤说明和示例代码,展示如何在Java中调用MySQL中的函数。 步骤 添加…...

Huggingface-cli 登录最新版(2024)
安装Huggingface-cli pip install -U "huggingface_hub[cli]"设置好git的邮箱和用户名和huggingface的github账号一致 git config --global user.mail xxx git config --global user.name xxx登录 复制token,划红线的地方,在命令行中点击右…...
Java学习 - Docker管理和容器命令 实例
docker管理 查看docker版本,检测是否可用 sudo docker version查看docker 系统信息 sudo docker infodocker容器命令 容器状态 容器标识 容器长uuid容器短uuid容器名字 查看容器状态 sudo docker status [容器标识1] [容器标识2] [容器标识n]深入查看容器信息 su…...

大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)
目录 🔍 若用递归计算每一项,会发生什么? Horners Rule(霍纳法则) 第一步:我们从最原始的泰勒公式出发 第二步:从形式上重新观察展开式 🌟 第三步:引出霍纳法则&…...
JavaScript 标签加载
目录 JavaScript 标签加载script 标签的 async 和 defer 属性,分别代表什么,有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...

RKNN开发环境搭建2-RKNN Model Zoo 环境搭建
目录 1.简介2.环境搭建2.1 启动 docker 环境2.2 安装依赖工具2.3 下载 RKNN Model Zoo2.4 RKNN模型转化2.5编译C++1.简介 RKNN Model Zoo基于 RKNPU SDK 工具链开发, 提供了目前主流算法的部署例程. 例程包含导出RKNN模型, 使用 Python API, CAPI 推理 RKNN 模型的流程. 本…...