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…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
