<13>-MySQL用户管理

目录

一,用户管理操作

1,创建用户

2,查询用户

3,修改密码

4,删除用户

二,数据库权限

1,用户授权

2,回收权限


一,用户管理操作

1,创建用户

--创建用户
mysql> create user 'haha'@'localhost' identified by 'Aa`123456789';
Query OK, 0 rows affected (0.00 sec)--查看密码设置要求
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.00 sec)

2,查询用户

--查询用户
mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *8611C16D0E703426E9B929BFF94C2EE54BCFBB50 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| haha          | localhost | *CDA66FDE5DF8DD89B2D841506F5E19874A520F10 |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

3,修改密码

--修改自己用户密码1
mysql> alter user 'root'@'localhost' identified by 'BBB456ttt///';
Query OK, 0 rows affected (0.00 sec)--修改自己用户密码2
mysql> set password=password('Aa`123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *C19FBC6F8304BB529134B86A731E8B4D7C53AC64 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| haha          | localhost | *CDA66FDE5DF8DD89B2D841506F5E19874A520F10 |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)--修改指定用户密码1
mysql> alter user 'haha'@'localhost' identified by 'ZZZxxx///111';
Query OK, 0 rows affected (0.00 sec)--修改指定用户密码2
mysql> set password for 'haha'@'localhost'=password('SSS876aaa===');
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *DA036C8A521E3E8C8A75FCE9D505851C79ECE89B |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| haha          | localhost | *EE4C67CF5D9018A709F9799C34128C531B003476 |
+---------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

4,删除用户

mysql> drop user 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> select user,host,authentication_string from user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *DA036C8A521E3E8C8A75FCE9D505851C79ECE89B |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

二,数据库权限

MySQL数据库提供的权限列表:

1,用户授权

刚创建的用户没有任何权限。需要给用户授权。

语法:

grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码']

说明:

权限列表。多个权限用逗号分开

grant select on ... --赋予查询权限

grant select, delete, create on .... --赋予查询,删除,创建,多个权限

grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有操作权限

对象名。可以是库中的某一个对象(表,视图,存储过程等)

一次赋予只能选择单一对象(表,视图,存储过程等)

或者使用 * 表示选择数据库中的所有数据对象

identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

--root用户
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| 2025_db            |
| bin_db             |
| bit_index          |
| db1                |
| db10               |
| db11               |
| db12               |
| db13               |
| db2                |
| db3                |
| db4                |
| db5                |
| db6                |
| db7                |
| db8                |
| db9                |
| gc_db              |
| mysql              |
| performance_schema |
| scott              |
| sys                |
+--------------------+
22 rows in set (0.00 sec)--赋予haha用户查询db1数据库所有对象的权限
mysql> grant select on db1.* to 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)--赋予haha用户所有操作db1数据库所有对象的权限
mysql> grant all on db2.* to 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)--赋予haha用户插入/更新/删除db1数据库所有对象的权限
mysql> grant insert,update,delete on db1.* to 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)--赋予haha用户所有操作db2数据库所有对象的权限
mysql> grant all on db2.* to 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)mysql> use db3;
Database changed
mysql> show tables;
+---------------+
| Tables_in_db3 |
+---------------+
| birthday      |
| tt1           |
| tt2           |
| tt3           |
| tt4           |
| tt5           |
| tt6           |
| tt7           |
| votes         |
+---------------+
9 rows in set (0.00 sec)--赋予haha用户所有操作db3数据库tt1表的权限
mysql> grant all on db3.tt1 to 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)--赋予haha用户所有操作db3数据库tt2表的权限
mysql> grant all on db3.tt2 to 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)--刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)--haha用户
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)--获取查询权限
mysql> show grants;
+-----------------------------------------------+
| Grants for haha@localhost                     |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'haha'@'localhost'      |
| GRANT SELECT ON `db1`.* TO 'haha'@'localhost' |
+-----------------------------------------------+
1 rows in set (0.00 sec)--只能查询
mysql> select * from person;
+------+
| name |
+------+
| A    |
| B    |
| c    |
| d    |
+------+
4 rows in set (0.00 sec)--不能进行其他操作
mysql> insert into person values('E');
ERROR 1142 (42000): INSERT command denied to user 'haha'@'localhost' for table 'person'
mysql> update person set name='letter';
ERROR 1142 (42000): UPDATE command denied to user 'haha'@'localhost' for table 'person'
mysql> delete from person;
ERROR 1142 (42000): DELETE command denied to user 'haha'@'localhost' for table 'person'--获取更多权限
mysql> show grants;
+-----------------------------------------------------------------------------+
| Grants for haha@localhost                                                   |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'haha'@'localhost'                                    |
| GRANT SELECT, INSERT, UPDATE, DELETE, DROP ON `db1`.* TO 'haha'@'localhost' |
| GRANT ALL PRIVILEGES ON `db2`.* TO 'haha'@'localhost'                       |
+-----------------------------------------------------------------------------+
3 rows in set (0.00 sec)mysql> insert into person values('E');
Query OK, 1 row affected (0.00 sec)mysql> select * from person;
+------+
| name |
+------+
| A    |
| B    |
| c    |
| d    |
| E    |
+------+
5 rows in set (0.00 sec)mysql> update person set name='letter';
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5  Changed: 5  Warnings: 0mysql> select * from person;
+--------+
| name   |
+--------+
| letter |
| letter |
| letter |
| letter |
| letter |
+--------+
5 rows in set (0.00 sec)mysql> select * from person;
Query OK, 0 rows affected (0.00 sec)mysql> show grants;
+-----------------------------------------------------------------------------+
| Grants for haha@localhost                                                   |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'haha'@'localhost'                                    |
| GRANT SELECT, INSERT, UPDATE, DELETE, DROP ON `db1`.* TO 'haha'@'localhost' |
| GRANT ALL PRIVILEGES ON `db2`.* TO 'haha'@'localhost'                       |
| GRANT ALL PRIVILEGES ON `db3`.`tt1` TO 'haha'@'localhost'                   |
| GRANT ALL PRIVILEGES ON `db3`.`tt2` TO 'haha'@'localhost'                   |
+-----------------------------------------------------------------------------+
5 rows in set (0.00 sec)mysql> use db3;
Database changed
mysql> show tables;
+---------------+
| Tables_in_db3 |
+---------------+
| tt1           |
| tt2           |
+---------------+
2 rows in set (0.00 sec)

2,回收权限

有授权操作就会有回收操作,语法基本一样。

语法:

revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';

--root用户
mysql> revoke all on db2.* from 'haha'@'localhost';
Query OK, 0 rows affected (0.00 sec)--haha用户
mysql> show grants;
+-----------------------------------------------------------------------------+
| Grants for haha@localhost                                                   |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'haha'@'localhost'                                    |
| GRANT SELECT, INSERT, UPDATE, DELETE, DROP ON `db1`.* TO 'haha'@'localhost' |
| GRANT ALL PRIVILEGES ON `db2`.* TO 'haha'@'localhost'                       |
| GRANT ALL PRIVILEGES ON `db3`.`tt1` TO 'haha'@'localhost'                   |
| GRANT ALL PRIVILEGES ON `db3`.`tt2` TO 'haha'@'localhost'                   |
+-----------------------------------------------------------------------------+
5 rows in set (0.00 sec)mysql> show grants;
+-----------------------------------------------------------------------------+
| Grants for haha@localhost                                                   |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'haha'@'localhost'                                    |
| GRANT SELECT, INSERT, UPDATE, DELETE, DROP ON `db1`.* TO 'haha'@'localhost' |
| GRANT ALL PRIVILEGES ON `db3`.`tt1` TO 'haha'@'localhost'                   |
| GRANT ALL PRIVILEGES ON `db3`.`tt2` TO 'haha'@'localhost'                   |
+-----------------------------------------------------------------------------+
4 rows in set (0.00 sec)mysql> use db2;
ERROR 1044 (42000): Access denied for user 'haha'@'localhost' to database 'db2'
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db3                |
+--------------------+
3 rows in set (0.00 sec)

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

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

相关文章

如何使用超低噪声电源提高AD 时钟电路质量,改善超声系统的图像质量

超声波技术是医疗诊断和其他应用中广泛使用的无创工具,已经从静态图像进化到动态图像,从黑白呈现变为彩色多普勒图像。这些重大进步主要是由于引入了数字超声技术。虽然这些进步提高了超声成像的有效性和通用性,但同样重要的是,这…

【解决方案】Kali 2022.3修复仓库密钥一键安装docker,docker compose

1、Kali 2022.3 2、一键安装docker,docker compose #!/bin/bashecho " 安全的Kali Docker安装脚本 "# 备份重要配置 cp /etc/apt/sources.list /etc/apt/sources.list.backup.$(date %Y%m%d)# 修复Kali仓库配置 echo "修复Kali仓库配置..." ca…

Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络)的区别

我们来详细对比一下 Transformer、RNN (循环神经网络) 和 CNN (卷积神经网络) 这三种在深度学习中极其重要的架构,并通过具体例子说明它们的区别。 核心区别总结: 处理数据的方式: CNN: 专注于局部特征和空间/时间模式。通过卷积核在输入数据…

408第二季 - 组成原理 - 数据类型转换

这章内容会比较少 闲聊 如果题目说把8位改成4位,你保留低位就行了 这里保留的是0101 然后是有符号数和无符号数的转换 机器数就是二进制长什么样子 然后就是小数点是不参与存储的 然后简单看看代码 这是short就说明是有符号数 unsigned就是说明是无符号数 然后y…

让 Deepseek 写电器电费计算器(html版本)

以下是一个简单的电器电费计算器的HTML和CSS代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">…

react_flow自定义节点、边——使用darg布局树状结构

文章目录 ⭐前言⭐引入react-flow⭐自定义节点nodeType⭐自定义边edgeType⭐添加节点⭐inscode代码块⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享 前端 ——react_flow自定义节点、边——使用darg布局树状结构。 自定义效果 可以自定义节点、边、线条流动…

word表格批量转excel,提取表格数据到excel

本文将带你一步步实现一个将 Word 中的表格内容批量提取并转换为 Excel 文件的自动化工具&#xff0c;适用于需要手动复制粘贴数据到excel的场景 假设我们有这样的表格在word中&#xff0c;图片世放在excel中便于截图&#xff0c;现在需要将表格中有颜色的数据提取到对应的exce…

day2课程

1.添加pinia到Vue项目 2.counter基础使用 3.getters和异步action 4.storeToRefs和调试 5.项目初始化和git管理 6.别名路径联想设置 7.elementsPlus自动按需导入配置 这个项目使用的是按需引入 1.安装包管理器 npm install element-plus --save 2.按需引入 npm install -D unp…

Vue3 + TypeScript + Element Plus 设置表格行背景颜色

技术要点&#xff1a; 1、使用 :row-class-name"setRowClassName" 设置表格行类名 2、不能同时使用 stripe 3、设置行类名的样式 应用效果&#xff1a; 同时使用 stripe 出来的效果&#xff1a; 参考代码&#xff1a; ReagentTable.vue <script setup lang&…

山东大学 软件项目管理知识点总结

软件项目管理背诵总结 将老师所发ppt的知识点整理&#xff0c;方便查阅与背诵。 文章目录 软件项目管理背诵总结1. 概述1.1 什么是项目&#xff1f;1.2 项目有那些特征&#xff1f;1.3 项目于日常工作有什么区别&#xff1f;1.4 如何衡量一个项目是否成功&#xff1f;1.5 软件项…

css基础笔记简洁版1

&#x1f4d8; CSS 基础笔记 1 一、CSS 简介 CSS&#xff08;层叠样式表&#xff09;用于为网页添加样式&#xff0c;实现结构与样式分离&#xff0c;能够控制颜色、字体、布局、位置、动画等视觉效果。 二、基本语法 选择器 {属性1: 值1;属性2: 值2; }说明&#xff1a; 选…

reactor模型学习

学习链接 狂野架构师第四期netty视频 - B站视频 狂野架构师训练营6期 - B站视频 Netty学习example示例&#xff08;含官方示例代码&#xff09; LG-Netty学习 【硬核】肝了一月的Netty知识点 - 启动过程写的很详细 Reactor模型讲解 一文搞懂Reactor模型与实现 高性能网络编…

应用探析|千眼狼高速摄像机、sCMOS相机、DIC测量、PIV测量在光学领域的应用

2025&#xff0c;长春&#xff0c;中国光学学会学术大会。中科视界携千眼狼品牌四大科学仪器高速摄像机、sCMOS科学相机、DIC应变测量系统、PIV流场测量系统亮相&#xff0c;在光学领域多个细分研究方向承载科学实验的感知与测量任务。 1先进制造技术及其应用 激光切割、激光焊…

Kafka 4.0.0集群部署

Kafka 4.0.0集群部署 1.1 关闭防火墙和 selinux 关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service关闭selinux setenforce 0 #&#xff08;临时生效&#xff09; sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config #&…

探秘卷积神经网络(CNN):从原理到实战的深度解析

在图像识别、视频处理等领域&#xff0c;卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称 CNN&#xff09;如同一位 “超级侦探”&#xff0c;能够精准捕捉图像中的关键信息&#xff0c;实现对目标的快速识别与分析。从医疗影像诊断到自动驾驶中的路况感…

vue3导入xlsx表格处理数据进行渲染

下载插件 npm install -S xlsx import * as XLSX from "xlsx"; // Vue3 版本 <el-upload class"upload-demo"accept".xlsx":http-request"channel":show-file-list"false":limit"1"><el-button type&qu…

生成模型_条件编码器

条件编码器可以采用不同的网络结构&#xff0c;UNet 是其中非常常见的一种&#xff0c;尤其在 Diffusion 和图像生成任务中用得最多。 &#x1f9e0; 什么是“条件编码器”&#xff1f; 在 **条件生成模型&#xff08;Conditional GAN / Diffusion&#xff09;**中&#xff0c…

@Scheduled, @PostConstruct, @PreDestroy, @Async, @OnApplicationEvent

注解名称模块功能引入年份版本是否推荐使用PostConstructjavax.annotation (Java EE) / spring-beansBean 初始化完成后执行的方法2006Java EE 5 / Spring 2.0✔️ 推荐PreDestroyjavax.annotation (Java EE) / spring-beansBean 销毁前执行的方法2006Java EE 5 / Spring 2.0✔…

小程序请求加载提示防闪烁机制详解

目录 一、问题背景&#xff1a;闪烁现象的产生 二、完整解决方案代码 三、核心防闪烁机制解析 1. 请求计数器&#xff08;requestCount&#xff09; 2. 延迟隐藏定时器&#xff08;关键创新&#xff09; 3. 100ms缓冲期的重要意义 四、关键场景对比分析 场景1&#xff…

linux防火墙讲解

目录 安全管理 一、SELinux安全上下文 1、SELinux 简介 2、基础操作命令 1. 查看SELinux状态 2. 切换工作模式* 3、安全上下文&#xff08;Security Context&#xff09; 1. 查看上下文* 2. 修改上下文 chcon命令 semanage 命令 4、SELinux布尔值&#xff08;Boole…