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

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)是两个较为常见的错误码&#xff0c…...

用户需求分析揭秘:最佳实践与策略

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

批量创建文件夹 就是这么简单 一招创建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(删除表&#xf…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

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,本文中将分享如何…...