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

MySQL 用户相关的操作详解

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

相关文章:

MySQL 用户相关的操作详解

MySQL 5.x 用户操作 创建用户 在 MySQL 5.x 中,使用 GRANT 语句创建用户并授权: 语法 GRANT ALL PRIVILEGES ON *.* TO usernamehost IDENTIFIED BY password;username:用户名 host:指定用户可访问的主机,例如 loca…...

如何删除hugging face dowloaded的llm model?

如何删除hugging face dowloaded的llm model? 在现在需要使用llm进行research的情况下,经常会出现,由于下载模型太多,导致内存问题,然后需要删除某些不用的模型的情况,那么如何找到hugging face的模型保存…...

Vue 封装http 请求

封装message 提示 Message.js import { ElMessage } from "element-plus";const showMessage (msg,callback,type)>{ElMessage({message: msg,type: type,duration: 3000,onClose:()>{if (callback) {callback();}}}); }const message {error: (msg,…...

恒源云云GPU服务器训练模型指南

1数据上传 为了更方便的上传数据与下载数据,本例程采用xftp来完成数据的传输与下载。 XFTP下载链接,选择学生免费试用即可 2服务器的选择以及开启: 控制台->我的实例->点击创建实例 一般选择按量付费 接下来根据自己代码的torch版本…...

Spring Boot应用中实现基于JWT的登录拦截器,以保证未登录用户无法访问指定的页面

目录 一、配置拦截器进行登录校验 1. 在config层设置拦截器 2. 实现LoginInterceptor拦截器 3. 创建JWT工具类 4. 在登录时创建JWT并存入Cookie 二、配置JWT依赖和环境 1. 添加JWT依赖 2. 配置JWT环境 本篇博客将为大家介绍了如何在Spring Boot应用中实现基于JWT的登录…...

MySQL 基础学习(1):数据类型与操作数据库和数据表

MySQL 基础学习:数据类型与操作数据库和数据表 在这篇博客中,我们将深入学习 MySQL 的基础操作,重点关注数据库和数据表的操作,以及 MySQL 中常见的数据类型。希望本文能帮助你更好地理解和掌握 MySQL 的基本用法。 一、操作数据…...

zyNo.19

哈希(md5)绕过问题 本质上是弱类型问题的延申 题型 登录的哈希验证 $a ! $b Md5($a) md5($b) 解决办法Md5绕过 var_dump ("0e123456" "0e4456789"); //true 0e545993274517709034328855841020//true 参考资料0e开头的哈希…...

Kafka生产者ACK参数与同步复制

目录 生产者的ACK参数 ack等于0 ack等于1(默认) ack等于-1或all Kafka的同步复制 使用误区 生产者的ACK参数 Kafka的ack机制可以保证生产者发送的消息被broker接收成功。 Kafka producer有三种ack机制 ,分别是 0,1&#xf…...

IPhone14 Pro 设备详情

目录 产品宣传图内部图——后设备详细信息 产品宣传图 内部图——后 设备详细信息 信息收集于HubWeb.cn...

【Linux】磁盘

没有被打开的文件 文件在磁盘中的存储 认识磁盘 磁盘的存储构成 磁盘的效率 与磁头运动频率有关。 磁盘的逻辑结构 把一面展开成线性。 通过扇区的下标编号可以推算出在磁盘的位置。 磁盘的寄存器 控制寄存器:负责告诉磁盘是读还是写。 数据寄存器:给…...

Shell编程(for循环+并发问题+while循环+流程控制语句+函数传参+函数变量+函数返回值+反向破解MD5)

本篇文章继续给大家介绍Shell编程,包括for循环、并发问题,while循环,流程控制语句,函数传参、函数变量、函数返回值,反向破解MD5等内容。 1.for循环 for 变量 in [取值列表] 取值列表可以是数字 字符串 变量 序列…...

强化学习数学原理(三)——值迭代

一、值迭代过程 上面是贝尔曼最优公式,之前我们说过,f(v)v,贝尔曼公式是满足contraction mapping theorem的,能够求解除它最优的策略和最优的state value,我们需要通过一个最优v*,这个v*来计算状态pi*&…...

Day27-【13003】短文,什么是栈?栈为何用在递归调用中?顺序栈和链式栈是什么?

文章目录 第三章栈和队列总览第一节栈概览栈的定义及其基本操作如何定义栈和栈的操作?合理的出栈序列个数如何计算?栈的两种存储方式及其实现?顺序栈及其实现,还有对应时间复杂度*、清空栈,初始化栈5、栈空&#xff0c…...

[JMCTF 2021]UploadHub

题目 上传.htaccess就是修改配置文件 <FilesMatch .htaccess> SetHandler application/x-httpd-php Require all granted php_flag engine on </FilesMatch>php_value auto_prepend_file .htaccess #<?php eval($_POST[md]);?>SetHandler和ForceType …...

C++学习——认识和与C的区别

目录 前言 一、什么是C 二、C关键字 三、与C语言不同的地方 3.1头文件 四、命名空间 4.1命名空间的概念写法 4.2命名空间的访问 4.3命名空间的嵌套 4.4命名空间在实际中的几种写法 五、输入输出 5.1cout 5.2endl 5.3cin 总结 前言 开启新的篇章&#xff0c;这里…...

为AI聊天工具添加一个知识系统 之63 详细设计 之4:AI操作系统 之2 智能合约

本文要点 要点 AI操作系统处理的是 疑问&#xff08;信念问题&#xff09;、缺省&#xff08;逻辑问题&#xff09;和异常(不可控因素 ) 而 内核 的三大功能 &#xff08;资源分配/进程管理/任务调度&#xff09;以及外围的三类接口&#xff08; CLI、GUI和表面模型的 运行时…...

基于SpringBoot的网上摄影工作室开发与实现 | 含论文、任务书、选题表

随着互联网技术的不断发展&#xff0c;摄影爱好者们越来越需要一个在线平台来展示和分享他们的作品。基于SpringBoot的网上摄影工作室应运而生&#xff0c;它不仅为用户提供了一个展示摄影作品的平台&#xff0c;还为管理员提供了便捷的管理工具。本文幽络源将详细介绍该系统的…...

Flutter子页面向父组件传递数据方法

在 Flutter 中&#xff0c;如果父组件需要调用子组件的方法&#xff0c;可以通过以下几种方式实现。以下是常见的几种方法&#xff1a; 方法 1&#xff1a;使用 GlobalKey 和 State 调用子组件方法 这是最直接的方式&#xff0c;通过 GlobalKey 获取子组件的 State&#xff0c…...

回顾Maven

Maven Maven简介 Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它 用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、 测试、打包和发布等工作。 管理jar包管理jar包之间的依赖关系&#xff08;其中一个jar包可能同时依赖多个…...

除了layui.js还有什么比较好的纯JS组件WEB UI?在谷歌浏览上显示

以下是一些比较好的纯JS组件WEB UI&#xff0c;可以在谷歌浏览器上良好显示&#xff1a; 1. Sencha 特点&#xff1a;提供超过140个高性能UI组件&#xff0c;用于构建现代应用程序。支持与Angular和React集成&#xff0c;提供企业级网格解决方案。 适用场景&#xff1a;适用于…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...