【MySQL】用户管理——用户、用户信息、创建用户、删除用户、修改用户密码、数据库的权限、给用户权限、回收权限

news2024/11/13 9:50:16

文章目录

  • MySQL
    • 1. 用户管理
      • 1.1 用户
        • 1.1.1 用户信息
        • 1.1.2 创建用户
        • 1.1.3 删除用户
        • 1.1.4 修改用户密码
      • 1.2 数据库的权限
        • 1.2.1 给用户权限
        • 1.2.2 回收权限

MySQL

在这里插入图片描述

  

1. 用户管理

  为什么MySQL要引入用户管理?

  如果我们只能使用root用户,这样存在安全隐患。因为root 用户拥有最高权限,一旦其账号密码被泄露或被攻击者获取,整个数据库将面临巨大风险,而且 root 用户权限过大,在日常操作中可能会因为误操作而引发严重问题。

  为了降低这些风险,保障数据库的安全和稳定,就需要使用MySQL的用户管理。

  

在这里插入图片描述

  MySQL用户管理是什么?

  MySQL 用户管理 是对 MySQL 数据库中用户账号的创建、配置、修改和删除等操作的综合管理。

  

  通过使用MySQL用户管理我们可以很好的保障数据安全,提高系统稳定性,满足合规要求,优化资源分配,责任追溯,提升用户体验。

  

1.1 用户

1.1.1 用户信息

  MySQL中的用户,都存储在系统数据库mysql的user表中:
  

mysql> use mysql;
Database changed

mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+                          |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C                              |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
--可以通过desc user初步查看一下表结构

  
字段解释:

  host: 表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆

  user: 用户名

  authentication_string: 用户密码通过password函数加密后的

  *_priv: 用户拥有的权限

  

1.1.2 创建用户

  语法:create user '用户名'@'登陆主机/ip' identified by '密码';

案例:

mysql> create user 'clover'@'localhost' identified by 'clover123';
Query OK, 0 rows affected (0.06 sec)

mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | clover           | *664D2BC607BAA85C7DCA8E655CAB8BCE97951607                              |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C                              |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

-- 此时便可以使用新账号新密码进行登陆啦
--备注:可能实际在设置密码的时候,因为mysql本身的认证等级比较高,一些简单的密码无法设置,会爆出如下报错:
-- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

-- 解决方案:https://blog.csdn.net/zhanaolu4821/article/details/93622812
--查看密码设置相关要求:SHOW VARIABLES LIKE 'validate_password%';
--关于新增用户这里,需要大家注意,不要轻易添加一个可以从任意地方登陆的user。

  

1.1.3 删除用户

  语法:drop user '用户名'@'主机名'

示例:

mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host      | user             | authentication_string                                                  |
+-----------+------------------+------------------------------------------------------------------------+
| localhost | clover           | *664D2BC607BAA85C7DCA8E655CAB8BCE97951607                              |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root             | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C                              |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

mysql> drop user clover;
ERROR 1396 (HY000): Operation DROP USER failed for 'clover'@'%'
--直接给个用户名,不能删除,它默认是%,表示所有地方可以登陆的用户

mysql> drop user 'clover'@'localhost'; --删除用户
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host,authentication_string from user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C                              |
+------------------+-----------+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

  

1.1.4 修改用户密码

  语法:

  自己改自己密码:set password=password('新的密码');

  root用户修改指定用户的密码:set password for '用户名'@'主机名'=password('新的密码')

  上面适用于MySQL较低的版本,MySQL 8.0 及更高版本中使用这个:alter user 'clover'@'localhost' identified by '123456';

  

mysql>  create user 'clover'@'localhost' identified by 'clover';
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,authentication_string from user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| clover           | localhost | *93DC66DF002C44E794BD2E91B6A54696D2D7CDB1                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C                              |
+------------------+-----------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

mysql> ALTER USER 'clover'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,authentication_string from user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| clover           | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *01A6717B58FF5C7EAFFF6CB7C96F7428EA65FE4C                              |
+------------------+-----------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)

  

1.2 数据库的权限

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

在这里插入图片描述

  

1.2.1 给用户权限

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

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

  说明:权限列表,多个权限用逗号分开。

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

  . : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)

  库. * : 表示某个数据库中的所有数据对象 (表,视图,存储过程等)

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

案例:

--使用root账号
--终端A
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myisam_test        |
| mysql              |
| performance_schema |
| scsc               |
| spj                |
| sys                |
| t                  |
| test               |
| test4              |
+--------------------+
10 rows in set (0.00 sec)

mysql> use test;
Database changed

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| sales          |
| user1          |
+----------------+
2 rows in set (0.00 sec)

--给用户clover赋予test数据库下所有文件的select权限
mysql> grant select on test.* to 'clover'@'localhost';
Query OK, 0 rows affected (0.01 sec)

--使用clover账号
--终端B
C:\Users\huawei>mysql -u clover -p123456

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

--暂停等root用户给clover赋完权之后,在查看
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| test               |
+--------------------+
3 rows in set (0.00 sec)

mysql> use test;
Database changed

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| sales          |
| user1          |
+----------------+
2 rows in set (0.00 sec)

mysql> select * from sales;
+--------+
| amount |
+--------+
|    100 |
|    200 |
|   NULL |
|    300 |
|   NULL |
+--------+
5 rows in set (0.00 sec)

--没有删除权限
mysql> delete from sales;
ERROR 1142 (42000): DELETE command denied to user 'clover'@'localhost' for table 'sales'

--备注:特定用户现有查看权限
mysql> show grants for 'clover'@'localhost';
+--------------------------------------------------+
| Grants for clover@localhost                      |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO `clover`@`localhost`       |
| GRANT SELECT ON `test`.* TO `clover`@`localhost` |
+--------------------------------------------------+
2 rows in set (0.00 sec)

mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for root@% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)

  注意:如果发现赋权限后,没有生效,执行如下指令:flush privileges;

  

1.2.2 回收权限

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

示例:

-- 回收clover对test数据库的所有权限
--root身份,终端A
mysql> revoke all on test.* from 'clover'@'localhost';
Query OK, 0 rows affected (0.01 sec)

--clover身份,终端B
C:\Users\huawei>mysql -u clover -p123456

-- 修改前
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
| test               |
+--------------------+
3 rows in set (0.00 sec)

-- 修改后
mysql>  show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| performance_schema |
+--------------------+
2 rows in set (0.00 sec)

          

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

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

相关文章

【JavaEE初阶】文件内容的读写—数据流

目录 📕 引言 🌴 数据流的概念 🚩 数据流分类 🌳 字节流的读写 🚩 InputStream(从文件中读取字节内容) 🚩 OutputStream(向文件中写内容) 🎄 字符流的…

Java、python、php版的邮件发送与过滤系统的设计与实现 (源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

iMES工厂管家:强大的工厂管理系统

iMES工厂管家:强大的工厂管理系统 在现代工厂管理中,iMES工厂管家作为一款功能强大的MES系统,为用户提供了全面的管理解决方案。本文将介绍iMES工厂管家的基本信息、特点、以及如何快速部署和使用。 软件简介 iMES工厂管家是一款基于.NetCor…

Android Studio设置 offline 模式

gradle3.6之前版本 在setting中选中Offline Work选项 gradle3.6之后的版本

Tied and Anchored Stereo Attention Network for Cloud Removal in Optical

论文名称 基于固定锚定立体注意力网络的光学遥感图像去云方法代码运行 论文代码 https://github.com/ningjin00/TASANet?tabreadme-ov-file 论文地址 1环境创建 模型环境给了这几个包,如果你自带环境 那就运行代码 提示缺哪个装哪个 python 3.12rasterio 1.3.10…

330进口高强度螺丝产品优势

330进口高强度螺丝是一种高性能紧固件,广泛应用于汽车、航空航天、重型机械、能源、基础设施建设等多个领域。这些螺丝之所以受到青睐,是因为它们在设计、材料选择、制造工艺等方面都达到了非常高的标准,确保了产品的卓越性能。以下是330进口…

四款录屏大师,一键搞定!新手也能快速上手?

现在随着新媒体的记录设备的不断更新迭代之下,我们记录生活的工具也愈来愈强大,不过如果需要记录电脑中的重要信息时,我们就需要借助录屏工具来实现了,所以今天整理了四款实用靠谱的录屏大师,有需要的朋友可以试试&…

浅谈C语言位段

1、位段的定义 百度百科中是这样解释位段的: 位段,C语言允许在一个结构体中以位为单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段”或称“位域”( bit field) 。利用位段能够用较少的位数存储数据。 以下,我们均在VS2022的…

靶机:DC-4

一、信息收集 1、主机发现 nmap 192.168.236.0/24 2、端口扫描 nmap 192.168.236.175 -p- -A 3、目录扫描 dirb http://192.168.236.175 二、漏洞探测 访问80端口,发现登录页面 尝试爆破密码 hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.236…

python媒体下载工具 you-get

you-get 是一个基于 Python 3 的强大的命令行工具,使用方式简单,使用 you-get 可以很轻松的下载到网络上的各种媒体文件(视频、图片及音乐等)。 相关功能和配置选项,可以查阅以下以获取详细信息: GitHub 官…

【对抗性训练】FGM、AWP

FGM(Fast Gradient Method)和 AWP(Adversarial Weight Perturbation)是两种与对抗训练相关的技术,旨在提高深度学习模型的鲁棒性和防御能力。它们主要应用于对抗攻击(adversarial attacks)背景下…

换装的视频怎么拍的?原来可以这样做

换装的视频怎么拍的?在数字时代,换装视频以其独特的创意和视觉冲击力,成为了社交媒体上备受欢迎的内容形式。无论是展现时尚潮流,还是实现跨越时空的幻想,换装视频都能以惊人的效果吸引观众的目光。那么,如…

使用Cisco软件进行模拟万维网配置访问服务器过程

万维网(www)实验 文章目录 万维网(www)实验1.实验目的2.实验流程3.实验步骤 1.实验目的 1)理解www站点 2)理解上层应用和下层通信网络的关系 2.实验流程 开始 → 布置拓扑 → 配置路由及IP地址 → 配置web服务器→ 访问服务器 →结束 3.实验步骤 1&…

JAVA:设计模式的详细指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 设计模式(Design Patterns)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它们可以帮助开发者以一种更优雅和高效的方式解决常见的…

【WPS备考AI工具】一款小众且免费的个人题库导入刷题神器,学习提分必备小程序!

这篇文章的诞生,是因为我即将踏上一场超级有趣的挑战——备考全国计算机等级二级WPS Office高级应用与设计的冒险之旅! WPS的分值: 单项选择题20分(含公共基础知识部分10分)。 WPS处理文字文档操作题30分。 WPS处理电子表格操作题30分。 …

爬虫模拟实操-全平台模式化规范

一.总体概述 本套教程适用于还没进入爬虫界的宝宝们 这套流程基本涵盖了全平台( x抖 x快 x头 xB x淘 x知 x红 )个人信息->作品->评论,为不侵权,有兴趣可以拉到最后进行交流 二.爬虫过程 随便拿个平台举例 老规矩f12 返…

深入探索PDF源码解析:从PDF到Excel的数据统计分析找到正文

在数字化时代,数据已成为企业决策和业务运营的关键。PDF文档作为一种广泛使用的文件格式,其中蕴含着大量有价值的信息。然而,PDF文档的结构和格式使得直接对其进行数据提取和分析变得复杂。为了解决这个问题,我们采取了一种创新的…

⌈ 传知代码 ⌋ 基于ROS的气体浓度建图

💛前情提要💛 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间,对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

免杀笔记--->地狱之门(Hell ‘s Gate)保姆级解析

还记得我前面一篇文章讲到的在Ring3 对抗Hook吗?? 我讲到的一种方法就是系统调用!! 那么今天就来讲一下一个很出名的直接系统调用(Syscall)-----> [!] 地狱之门(Hell s Gate)[!] 目录 1.Syscall 2.…

Python爬虫:下载4K壁纸

🎁🎁创作不易,关注作者不迷路🎀🎀 目录 🌸完整代码 🌸分析 🎁基本思路 🎁需要的库 🎁提取图片的链接和标题 👓寻找Cookie和User-Agent &…