MySQL 用户相关的操作详解

news2025/1/30 16:39:30

MySQL 5.x 用户操作

创建用户

MySQL 5.x 中,使用 GRANT 语句创建用户并授权:

语法

GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' IDENTIFIED BY 'password';
  • username:用户名

  • host:指定用户可访问的主机,例如 localhost%(表示任何主机)

  • password:用户的密码

示例

GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
授权

再次使用 GRANT 语句即可修改用户权限:

GRANT SELECT, INSERT ON database_name.* TO 'username'@'host';
刷新权限

需要刷新权限以生效:

FLUSH PRIVILEGES;
修改密码

修改用户密码使用 SET PASSWORDGRANT 语句:

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

示例

SET PASSWORD FOR 'testuser'@'localhost' = PASSWORD('newpassword');
删除用户

使用 DROP USER 删除用户:

DROP USER 'username'@'host';

示例

DROP USER 'testuser'@'localhost';

MySQL 8.x 用户操作

创建用户

MySQL 8.x 中,推荐使用 CREATE USER

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

示例

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'testpassword';
授权

授权使用 GRANT 语句:

MySQL 8.x 默认不需要手动执行 FLUSH PRIVILEGES,授权会立即生效。

GRANT SELECT, INSERT ON database_name.* TO 'username'@'host';

示例

GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'localhost';
修改密码

修改密码使用 ALTER USER 语句:

ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword';

示例

ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword';
删除用户

删除用户同样使用 DROP USER

DROP USER 'username'@'host';

示例

DROP USER 'testuser'@'localhost';
重命名用户

MySQL 8.x 支持直接重命名用户:

RENAME USER 'old_username'@'host' TO 'new_username'@'host';

示例

RENAME USER 'testuser'@'localhost' TO 'newuser'@'localhost';

通用操作

查看用户

查看所有用户:

SELECT User, Host FROM mysql.user;
查看用户权限

查看特定用户的权限:

SHOW GRANTS FOR 'username'@'host';

示例

SHOW GRANTS FOR 'testuser'@'localhost';
撤销权限

使用 REVOKE 语句撤销权限:

REVOKE privilege_type ON database_name.* FROM 'username'@'host';

示例

REVOKE SELECT ON testdb.* FROM 'testuser'@'localhost';

PRIVILEGES 权限

MySQL 中,PRIVILEGES 是指权限,用于控制用户可以对数据库执行哪些操作,分为全局权限和基于数据库、表或列的权限。

全局权限

全局权限适用于整个 MySQL 服务器,通常授予 *.*(所有数据库和表)

权限列表及说明:

  • ALL PRIVILEGES:授予用户所有权限(不包括 GRANT OPTION

  • GRANT OPTION:允许用户将其拥有的权限授予其他用户

  • CREATE USER:允许用户创建、删除、修改其他用户

  • FILE:允许用户读取和写入服务器上的文件

  • PROCESS:允许用户查看其他用户的查询或线程(通过 SHOW PROCESSLIST

  • RELOAD:允许用户执行刷新操作,例如 FLUSH 命令

  • SHOW DATABASES:允许用户查看所有数据库(非仅限其拥有权限的数据库)

  • SHUTDOWN:允许用户关闭 MySQL 服务器

  • SUPER:允许用户执行高级管理操作,例如修改全局变量、杀死线程等

  • REPLICATION SLAVE:允许用户配置和管理 MySQL 复制从库

  • REPLICATION CLIENT:允许用户查看主库和从库的状态

数据库级权限

数据库级权限适用于单个数据库的所有表

权限列表及说明:

  • CREATE:允许用户创建新数据库或表

  • DROP:允许用户删除数据库或表

  • EVENT:允许用户创建、修改和删除事件

  • INDEX:允许用户在表中创建或删除索引

  • ALTER:允许用户修改表结构,例如添加或删除列

  • SHOW VIEW:允许用户查看视图定义

  • TRIGGER:允许用户创建或删除触发器

表级权限

表级权限适用于某个数据库中的特定表

权限列表及说明:

  • SELECT:允许用户读取表中的数据(查询)

  • INSERT:允许用户向表中插入数据

  • UPDATE:允许用户更新表中的数据

  • DELETE:允许用户删除表中的数据

  • REFERENCES:允许用户创建外键约束

  • LOCK TABLES:允许用户锁定表,通常与事务处理相关

列级权限

列级权限是表级权限的进一步细化,适用于特定列

权限列表及说明:

  • SELECT:允许用户查询特定列的数据

  • INSERT:允许用户向特定列插入数据

  • UPDATE:允许用户更新特定列的数据

示例

GRANT SELECT (column1, column2) ON mydb.mytable TO 'username'@'host';
存储程序权限

这些权限适用于存储过程和存储函数

权限列表及说明:

  • CREATE ROUTINE:允许用户创建存储过程和存储函数

  • ALTER ROUTINE:允许用户修改存储过程和存储函数

  • EXECUTE:允许用户执行存储过程和存储函数

动态权限(MySQL 8.x 新增)

动态权限适用于特定场景,例如管理数据复制、安全性和审计功能

权限列表及说明:

  • BACKUP_ADMIN:允许用户进行备份操作

  • GROUP_REPLICATION_ADMIN:允许用户管理组复制设置

  • RESOURCE_GROUP_ADMIN:允许用户管理资源组

  • RESOURCE_GROUP_USER:允许用户使用资源组

  • SYSTEM_VARIABLES_ADMIN:允许用户修改系统变量

  • PERSIST_RO_VARIABLES_ADMIN:允许用户管理持久化只读变量

查看权限
  • 查看当前用户的权限
SHOW GRANTS;
  • 查看其他用户的权限
SHOW GRANTS FOR 'username'@'host';

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

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

相关文章

YOLO目标检测4

一. 参考资料 《YOLO目标检测》 by 杨建华博士 本篇文章的主要内容来自于这本书,只是作为学习记录进行分享。 二. 环境搭建 (1) ubuntu20.04 anaconda安装方法 (2) 搭建yolo训练环境 # 首先,我们建议使用Anaconda来创建一个conda的虚拟环境 conda cre…

​ONES 春节假期服务通知

ONES 春节假期服务通知 灵蛇贺岁,瑞气盈门。感谢大家一直以来对 ONES 的认可与支持,祝您春节快乐! 「2025年1月28日 ~ 2025年2月4日」春节假期期间,我们的值班人员将为您提供如下服务 : 紧急问题 若有紧急问…

Redis部署方式全解析:优缺点大对比

Redis部署方式全解析:优缺点大对比 一、引言 Redis作为一款高性能的内存数据库,在分布式系统、缓存、消息队列等众多场景中都有着广泛的应用。选择合适的Redis部署方式,对于系统的性能、可用性、可扩展性以及成本等方面都有着至关重要的影响…

【新春不断更】数据结构与算法之美:二叉树

Hello大家好,我是但凡!很高兴我们又见面啦! 眨眼间已经到了2024年的最后一天,在这里我要首先感谢过去一年陪我奋斗的每一位伙伴,是你们给予我不断前行的动力。银蛇携福至,万象启新程。蛇年新春之际&#xf…

Linux环境基础开发工具的使用(apt, vim, gcc, g++, gbd, make/Makefile)

什么是软件包 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的…

渗透测试之WAF规则触发绕过规则之规则库绕过方式

目录 Waf触发规则的绕过 特殊字符替换空格 实例 特殊字符拼接绕过waf Mysql 内置得方法 注释包含关键字 实例 Waf触发规则的绕过 特殊字符替换空格 用一些特殊字符代替空格,比如在mysql中%0a是换行,可以代替空格 这个方法也可以部分绕过最新版本的…

Harmony Next 跨平台开发入门

ArkUI-X 官方介绍 官方文档:https://gitee.com/arkui-x/docs/tree/master/zh-cn ArkUI跨平台框架(ArkUI-X)进一步将ArkUI开发框架扩展到了多个OS平台:目前支持OpenHarmony、Android、 iOS,后续会逐步增加更多平台支持。开发者基于一套主代码…

小阿卡纳牌

小阿卡纳牌 风:热湿 火:热干 水:冷湿 土:冷干 火风:温度相同,但是湿度不同,二人可能会在短期内十分热情,但是等待热情消退之后,会趋于平淡。 湿度相同、温度不同&#x…

【现代深度学习技术】深度学习计算 | 参数管理

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…

c++ 定点 new

&#xff08;1&#xff09; 代码距离&#xff1a; #include <new> // 需要包含这个头文件 #include <iostream>int main() {char buffer[sizeof(int)]; // 分配一个足够大的字符数组作为内存池int* p new(&buffer) int(42); // 使用 placement new…

宫本茂的游戏设计思想:有趣与风格化

作为独立游戏开发者之一&#xff0c;看到任天堂宫本茂20年前的言论后&#xff0c;深感认同。 游戏研发思想&#xff0c;与企业战略是互为表里的&#xff0c;游戏是企业战略的具体战术体现&#xff0c;虚空理念的有形载体。 任天堂长盛不衰的关键就是靠简单有趣的游戏&#xf…

【AI论文】扩散对抗后训练用于一步视频生成总结

摘要&#xff1a;扩散模型被广泛应用于图像和视频生成&#xff0c;但其迭代生成过程缓慢且资源消耗大。尽管现有的蒸馏方法已显示出在图像领域实现一步生成的潜力&#xff0c;但它们仍存在显著的质量退化问题。在本研究中&#xff0c;我们提出了一种在扩散预训练后针对真实数据…

在线可编辑Excel

1. Handsontable 特点&#xff1a; 提供了类似 Excel 的表格编辑体验&#xff0c;包括单元格样式、公式计算、数据验证等功能。 支持多种插件&#xff0c;如筛选、排序、合并单元格等。 轻量级且易于集成到现有项目中。 具备强大的自定义能力&#xff0c;可以调整外观和行为…

【javaweb项目idea版】蛋糕商城(可复用成其他商城项目)

该项目虽然是蛋糕商城项目&#xff0c;但是可以复用成其他商城项目或者购物车项目 想要源码的uu可点赞后私聊 技术栈 主要为&#xff1a;javawebservletmvcc3p0idea运行 功能模块 主要分为用户模块和后台管理员模块 具有商城购物的完整功能 基础模块 登录注册个人信息编辑…

langchain基础(三)

Chain&#xff1a; 关于三个invoke&#xff1a; 提示模板、聊天模型和输出解析器都实现了langchain的runnable接口&#xff0c; 都具有invoke方法&#xff08;因为invoke方法是Runnable的通用调用方法&#xff09; 所以可以一次性调用多次invoke直接得到最终结果&#xff1a;…

Kafka 深入服务端 — 时间轮

Kafka中存在大量的延迟操作&#xff0c;比如延时生产、延时拉取和延时删除等。Kafka基于时间轮概念自定义实现了一个用于延时功能的定时器&#xff0c;来完成这些延迟操作。 1 时间轮 Kafka没有使用基于JDK自带的Timer或DelayQueue来实现延迟功能&#xff0c;因为它们的插入和…

一文掌握ADB的安装及使用

文章目录 一、什么是ADB&#xff1f;二、 安装ADB2.1 下载ADB2.2 配置环境变量 三、连接Android设备四、 常用ADB命令五、ADB高级功能5.1 屏幕截图和录制5.2 模拟按键输入5.3 文件管理5.4 系统设置管理5.5 系统操作指令5.6 日志操作指令5.7 APK操作指令5.8 设备重启和恢复 六、…

Linux系统下速通stm32的clion开发环境配置

陆陆续续搞这个已经很久了。 因为自己新电脑是linux系统无法使用keil&#xff0c;一开始想使用vscode里的eide但感觉不太好用&#xff1b;后面想直接使用cudeide但又不想妥协&#xff0c;想趁着这个机会把linux上的其他单片机开发配置也搞明白&#xff1b;而且非常想搞懂cmake…

OpenCSG月度更新2025.1

1月的OpenCSG取得了一些亮眼的成绩 在2025年1月&#xff0c;OpenCSG在产品和社区方面继续取得了显著进展。产品方面&#xff0c;推出了AutoHub浏览器自动化助手&#xff0c;帮助用户提升浏览体验&#xff1b;CSGHub企业版功能全面升级&#xff0c;现已开放试用申请&#xff0c…

AWTK 骨骼动画控件发布

Spine 是一款广泛使用的 2D 骨骼动画工具&#xff0c;专为游戏开发和动态图形设计设计。它通过基于骨骼的动画系统&#xff0c;帮助开发者创建流畅、高效的角色动画。本项目是基于 Spine 实现的 AWTK 骨骼动画控件。 代码&#xff1a;https://gitee.com/zlgopen/awtk-widget-s…