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';

截图如下:

在这里插入图片描述

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

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

相关文章

分析解读NCCL_SHM_Disable与NCCL_P2P_Disable

在NVIDIA的NCCL(NVIDIA Collective Communications Library)库中,NCCL_SHM_Disable 和 NCCL_P2P_Disable 是两个重要的环境变量,它们控制着NCCL在多GPU通信中的行为和使用的通信机制。下面是对这两个环境变量的详细解读&#xff1…

基于改进字典学习的旋转机械故障诊断方法(MATLAB)

在过去的二十年里,稀疏表示在各个领域引起了广泛的关注。它的核心思想是将信号描述为尽量少的字典原子,在计算机视觉、生物学、特征提取和机械故障诊断方面显示出强大而可靠的能力。SR通常分为两个步骤:构建字典和学习稀疏系数。对于稀疏系数…

tf-idf算法

TF-IDF(Term Frequency-Inverse Document Frequency)是一种用于信息检索和文本挖掘的统计方法,用来评估一个词语对于一个文档集或一个语料库的重要程度。TF-IDF的基本思想是:如果一个词语在某个文档中出现的次数多,并且…

settings和toolchains.xml 区别用法配置

在 IntelliJ IDEA 中配置 Maven 项目时,settings.xml 和 toolchains.xml 的使用场景有所不同。以下是具体的使用情景和配置方法: 1. 使用 settings.xml 使用场景 全局或用户级别的配置:包括设置本地仓库位置、远程仓库、代理服务器、认证信…

k8s+RabbitMQ单机部署

1 k8s 配置文件yaml: apiVersion: apps/v1 kind: Deployment metadata:name: rabbitmq-deploynamespace: rz-dt spec:replicas: 1selector:matchLabels:app: rabbitmqtemplate:metadata:labels:app: rabbitmqspec:containers:- name: rabbitmqimage: "rz-dt-image-server…

MySQL从入门到高级 --- 15.优化 16.pymysql

文章目录 第十五章 && 第十六章:15.优化15.1 查询SQL执行效率15.2 定位低效率执行SQL15.3 explain分析执行计划 - 基本使用15.4 explain分析执行计划 - id15.5 explain分析执行计划 - select_type15.6 explain分析执行计划 - type15.7 explain分析执行计划 …

Java:爬虫htmlunit抓取a标签

如果对htmlunit还不了解的话可以参考Java:爬虫htmlunit-CSDN博客 了解了htmlunit之后,我们再来学习如何在页面中抓取我们想要的数据,我们在学习初期可以找一些结构比较清晰的网站来做测试爬取,首先我们随意找个网站如下&#xff…

【5.x】ELK日志分析

ELK日志分析 一、ELK概述 1、ELK简介 ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kiabana三个开源工具配合使用,完成更强大的用户对日志的查询、排序、统计需求。 一个完整的集中式日志系统,需要包含以下几个主…

百度网盘限速解决办法

文章目录 开启P2P下载30秒会员下载体验一次性高速下载服务导入“百度网盘青春版”后下载注册新号参与活动 获取下载直链后使用磁力链接下载不是办法的办法无效、已失效方法免限速客户端、老版本客户端、永久会员下载体验试用客户端,或类似脚本、工具获取下载直链后多…

linux执行ifconfig命令ens33没有显示ip地址解决方法

1.右键启动VMware DHCP和NAT这两个服务 2.执行reboot命令,重启linux。然后再执行ifconfig命令,可以看到inet了,就是ip。xshell也可以连接到主机了。

复旦微FMQL20SM全国产ARM+FPGA核心板,替代xilinx ZYNQ7020系列

FMQL20SM核心板一款全国产工业核心板。基于复旦微FMQL20S400M四核ARM Cortex-A7(PS端) FPGA可编程逻辑资源(PL端)异构多核SoC处理器设计的全国产工业核心板,PS端主频高达1GHz。 核心板简介 FMQL20SM核心板是一款全国…

网络安全练气篇——操作系统基础

目录 windows系统基础 什么是windows? windows用户和管理组 1、用户管理和组管理 三种方式登录 相关命令行 2、windows防火墙 3、windows目录 4、windows服务 5、常见端口及其相对应的服务 6、windows进程 7、windows注册表 8、常见的dos命令 系统信息 网络 用…

RK3568平台(显示篇)HDMIOUT调试

一.HDMIOUT代码路径 DRM 全称是 Direct Rendering Manager 是 DRI ( Direct Rendering Infrastructure ) 框架的一个 组件。LINUX 4.4/4.19 内核采用 DRM 框架, HDMI 驱动的路径为: kernel/drivers/gpu/drm/rockchip/dw_hdmi-Rockchip.c kernel/driv…

【Spine学习07】之跑步动作制作思路总结

前几节试着做了待机和走路动画 现在开始尝试做跑步动作 注意跑步动作和走路一样 暂时不需要使用IK约束但是会用到塞贝尔曲线(模拟裙子飞起动效) 第一步: 先将人物整体斜放置(因为人跑步的时候,身体前倾) …

电池包断路单元DBU的预充电电阻应用案例

当电池组接触器闭合到电机和逆变器上时,逆变器电容器中会有电流涌入。这种非常高的电流至少可能会使接触器老化,并可能永久损坏接触器。 因此,当我们关闭电池组上的接触器时,我们分三个步骤执行此操作: 1.关闭主负极…

2024-06-10 Unity 编辑器开发之编辑器拓展10 —— 其他常见工具类

文章目录 1 AssetDatabase1.1 准备工作1.2 常用 API 2 PrefabUtility1 准备工作2 常用 API 3 EditorApplication3.1 准备工作3.2 常用 API 4 CompilationPipeline4.1 CompilationPipeline.assemblyCompilationFinished4.2 CompilationPipeline.compilationFinished4.3 示例 5 A…

git 怎么设置代理

Git 设置代理通常用于在公司内网或需要通过代理服务器访问外网的情况下。以下是一些常用的设置方法: 命令行一次性设置代理: 使用 git config 命令可以临时设置代理,这将只影响当前的仓库。 git config --global http.proxy http://proxyuser…

MMDetection实用工具详解(下):模型复杂度、基准测试

工具目录 四、模型复杂度应用展示结果解析 五、基准测试鲁棒性测试基准应用展示结果解析Testing gaussian_noise at severity 0Testing gaussian_noise at severity 2Aggregated results 遇到的tools自定义导包模块No Module Error错误解决思路 上期MMDetection内三个实用工具详…

Mongodb使用$<identifier>过滤更新数组元素

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第65篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

JAVA学习笔记DAY5——SSM_Spring

文章目录 技术体系结构单体架构分布式架构 框架 FrameworkSpringIoc容器和核心概念组件Spring管理组件优点Spring Ioc 容器和容器实现普通容器复杂容器SpringIoc容器具体接口和实现类SpringIoc 容器管理配置方式 SpringIoc Ioc DI Spring Ioc 实践和应用Spring Ioc创建步骤配置…