【MySQL】用户管理权限控制

文章目录

  • 前言
  • 一. 用户管理
    • 1. 创建用户
    • 2. 删除用户
    • 3. 修改用户密码
  • 二. 权限控制
    • 1. 用户授权
    • 2. 查看权限
    • 3. 回收权限
  • 结束语

前言

MySQL的数据其实也以文件形式保存,而登录信息同样保存在文件中
MySQL的数据在Linux下默认路径是/var/lib/mysql

在这里插入图片描述

登录MySQL同样也可以查询用户信息
用户信息在数据库mysql中的user表中

--以一定形式显示数据select * from user\G;
*************************** 1. row ***************************Host: localhostUser: rootSelect_priv: YInsert_priv: YUpdate_priv: YDelete_priv: YCreate_priv: YDrop_priv: YReload_priv: YShutdown_priv: YProcess_priv: YFile_priv: YGrant_priv: YReferences_priv: YIndex_priv: YAlter_priv: YShow_db_priv: YSuper_priv: YCreate_tmp_table_priv: YLock_tables_priv: YExecute_priv: YRepl_slave_priv: YRepl_client_priv: YCreate_view_priv: YShow_view_priv: YCreate_routine_priv: YAlter_routine_priv: YCreate_user_priv: YEvent_priv: YTrigger_priv: Y
Create_tablespace_priv: Yssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *BFD88FA31A402F8526DC79248D12DB3105F91D0Bpassword_expired: Npassword_last_changed: 2023-09-27 21:29:37password_lifetime: NULLaccount_locked: N

提炼其中比较关键的几个属性

mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *BFD88FA31A402F8526DC79248D12DB3105F91D0B |
+-----------+---------------+-------------------------------------------+

host:表示这个用户可以从哪个主机登录。localhost代表只能本地登录
user:用户名
authentication_string:登录密码通过password函数加密形成的秘钥字符串

一. 用户管理

1. 创建用户

create user '用户名'@'登录主机/ip' identified by '密码';

案例;

mysql> create user 'ljh'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.03 sec)mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host      | user          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *BFD88FA31A402F8526DC79248D12DB3105F91D0B |
| localhost | ljh           | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+---------------+-------------------------------------------+

localhost:代表只能本地主机登录
%:代表可以从任意主键登录
具体主机ip:只能从该主机登录

注意:非常不建议给用户的主机名设置为%

2. 删除用户

drop user '用户名'@'主机名'

删除时需要指明主机名,不然默认主机名是’%’

3. 修改用户密码

  • 自己改自己的密码
set password=password('新的密码');
  • root用户更改其他用户的密码
set password for '用户名'@'主机名'=password('新的密码');

二. 权限控制

MySQL有这些权限:

在这里插入图片描述

常用的也就是增删查改,create,drop,delete,alter,insert等等

1. 用户授权

刚创建的用户没有任何权限

语法:

grant 权限列表 on 库名.对象 to '用户名'@'登录主机';
  • 权限列表

单权限grant select on ...
多权限grant select,delete ... 权限之间用逗号隔开
全部权限grant all on ...

  • 指定对象

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

案例:

先创建一个用户

mysql> create user 'ljh'@'localhost' identified by '密码'登录该用户mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+

此时我们查看不了其他的表
我们可以使用root用户赋权

mysql> grant create on *.* to 'ljh'@'localhost';

如此ljh用户就有查表建表的权限了

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| README_DBDF        |
| bit_index          |
| mysql              |
| performance_schema |
| scott              |
| sys                |
| test_demo          |
| tmp1               |
| tmp2               |
+--------------------+

如果发现赋权后,没有生效,执行如下指令

flush privileges;

如果还没有生效,可以尝试退出重登

2. 查看权限

语法:

mysql> show grants for 'ljh'@'localhost';
+------------------------------------------+
| Grants for ljh@localhost                 |
+------------------------------------------+
| GRANT CREATE ON *.* TO 'ljh'@'localhost' |
+------------------------------------------+

注意,root用户可以查看任意用户的权限,普通用户只能查看自己的权限
测试发现,如果一个普通用户有所有权限,也可以查看其他用户的权限

3. 回收权限

语法:

revoke 权限列表 on.对象名 from '用户名'@'登录主机';

ljh用户原本的权限:

mysql> show grants for 'ljh'@'localhost';
+--------------------------------------------------+
| Grants for ljh@localhost                         |
+--------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'ljh'@'localhost' |
+--------------------------------------------------+

我们回收drop权限

revoke drop on *.* from 'ljh'@'localhost';

在这里插入图片描述

因为原本是有all所有权限的,回收drop后,会显示剩余所有权限

结束语

感谢看到此处
如果觉得本篇文章对你有所帮助的话,不妨点个赞支持一下博主,拜托啦,这对我真的很重要。
在这里插入图片描述

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

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

相关文章

如何在macbook上删除文件?Mac删除文件的多种方法

在使用MacBook电脑时,桌面上经常会积累大量的文件,而这些文件可能已经不再需要或已经过时。为了保持桌面的整洁和提高电脑性能,我们需要及时删除这些文件。本文将介绍MacBook怎么删除桌面文件,以及macbook删除桌面文件快捷键。 一…

C 语言左移位操作在kernel驱动子系统中的特殊用途

文章目录 前言一、C语言左移位操作介绍1. 左移位二、左移位操作在kernel 驱动子系统中的应用1. 左移位操作在 V4L2, Media 子系统中的应用实例2.左移位操作在 DRM 子系统中的应用实例2.1 左移位操作在struct drm_crtc 中的应用2.2 左移位操作在struct drm_encoder 中的应用总结…

Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)

一、Flutter框架的整体结构: Flutter是Google推出并开源的跨平台开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语 言开发Flutter应用,一套代码同时运行在ios和Android平台。不仅如此,Flutter还支持Web、桌面、嵌 入应…

【工具】OCR方法|不用下载额外的软件,提取扫描中英文PDF的目录文本的最优解!(一)

需求: 1)从PDF里快速提取目录; 2)不想下载任何软件。 我提取出来的目录文本会用于嵌入到PDF中,向PDF批量添加目录的软件以及软件的使用方法可以看我上一篇文章:PDF批量插入目录。 以下是我自己能想到的方…

基于yolov2网络的人脸识别系统matlab仿真,包括识别正脸,侧脸等

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、训练阶段 4.2、预处理阶段 4.3、识别阶段 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ........................................…

FastGPT | 3分钟构建属于自己的AI智能助手

这是一篇使用指南!!! FastGPT是什么? FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景&…

BEV-YOLO 论文学习

1. 解决了什么问题? 出于安全和导航的目的,自驾感知系统需要全面而迅速地理解周围的环境。目前主流的研究方向有两个:第一种传感器融合方案整合激光雷达、相机和毫米波雷达,和第二种纯视觉方案。传感器融合方案的感知表现鲁棒&am…

一句话说明:企业架构框架鼻祖Zachman

问:禁止废话,一句话表达,Zachman是什么?包含哪些内容? 韩老师正经回答:Zachman是企业架构框架鼻祖,包含6行6列的矩阵式架构内容。6列是5W1H(What、How、Where、Who、When、Why&…

Vue3 简单实现虚拟Table,展示海量单词.利用WebAPI speechSynthesis,朗读英语单词

目录 本页面完整代码 视频演示 完整的页面代码 利用webapi speechSynthesis帮助我们自动郎读英语单词,可以利用这个API,做一些小说朗读或到账提示。 本页面完整代码 用Vue写了一个简单页面,里面还写了一个简单的虚拟Table支持海量数据展示…

kubernetes存储-volumes

目录 一、Volumes的简介 二、emptyDir卷 1、emptyDir的引入 2、emptyDir 的使用场景 3、多容器共享volumes 4、emptyDir缺点 三、hostPath卷 1、hostPath卷简介 2、创建hostPath卷 3、NFS共享文件 四、PersistentVolume(持久卷) 1、PV与P…

免费音效素材,不能错过这6个网站

找免费音效素材,那必须要上这6个网站,热门音效、BGM都能免费下载,赶紧收藏起来。 1、菜鸟图库 https://www.sucai999.com/audio.html?vNTYwNDUx 菜鸟图库是一个综合性素材网站,站内涵盖设计、图片、办公、视频、音效等素材。其中…

数据可视化:动态柱状图

终于来到最后一个数据可视化的文章拿啦~~~ 在这里学习如何绘制动态柱状图 我先整个活 (๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤ 什么是pyecharts? 答: Python的Pyecharts软件包。它是一个用于Python数据可视化和图表绘制的库,可用于制作…

力扣最热一百题——盛水最多的容器

终于又来了。我的算法记录的文章已经很久没有更新了。为什么呢? 这段时间都在更新有关python的文章,有对python感兴趣的朋友可以在主页找到。 但是这也并不是主要的原因 在10月5号我发布了我的第一篇博客,大家也可以看见我的每一篇算法博客…

【23真题】易!题源全部定位!带讲解!

今天分享的是23年长春理工大学808的信号与系统试题及解析。 本套试卷难度分析:22年长春理工808考研真题,我也发布过,若有需要,戳这里自取!本套试题内容难度中等偏下,题量较少,没有选择填空题&a…

算法学习打卡day41|栈和队列:栈和队列相互实现、括号匹配、逆波兰表达式、滑动窗口最大值问题、求前 K 个高频元素

栈和队列相互实现 力扣题目链接:用栈实现队列、用队列实现栈 题目描述: 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(…

无人机航迹规划:狐猴优化算法LO求解无人机路径规划MATLAB(可以修改起始点,地图可自动生成)

一、狐猴优化算法 狐猴优化算法(Lemurs Optimizer,LO)由Ammar Kamal Abasi等人于2022年提出,该算法模拟狐猴的跳跃和跳舞行为,具有结构简单,思路新颖,搜索速度快等优势。狐猴优化算法&#xff…

JavaScript 进阶问题列表,巩固自己的知识。

不定时更新 JavaScript 进阶问题列表 从基础到进阶,测试你有多了解 JavaScript,刷新你的知识,或者帮助你的 coding 面试! 💪 🚀 答案❤️ 1. 输出是什么? function sayHi() {console.log(na…

iSlide2024一款基于PPT的插件工具包含38个设计辅助功能

根据使用者情况表明iSlide 是一款拥有30W素材的PPT高效设计软件,可提高90%工作效率,现全球已有超过1400万使用者,智能排版原创高品模板可商用图形,真正摆脱PPT的束缚,把精力用在该用的地方。我们都明白islide插件功能特…

Vue 3 中,watch 和 watchEffect 的区别

结论先行: watch:需要指明要监听的数据,而且在回调函数中可以获取到属性变化的前后值; 适用于需要精确控制监视范围的情况;也就是需要针对特定数据变化执行操作。 watchEffect:不用指明监听哪个属性&…

python单元测试框架(继承、unittest参数化、断言、测试报告)

一、继承 继承能解决什么问题? unittest每个模块都要用到前提条件以及清理,如果有上百个模块,我们要改域名和浏览器,就会工作量很大特别麻烦,这时我们可以用继承的思想只用改一次 我们可以将前提和清理提出来单独放…