数据库安全:MySQL权限体系划分与实战操作

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

在这里插入图片描述

这一章节我们需要知道MySQL的用户权限是如何划分的,怎么修改用户权限。

实际生产环境中,应按照软件安全设计的最小特权原则配置用户权限。

  • 查看权限 show grants for root@localhost;
  • 查看权限 select * from mysql.user where user='root'\G
  • 设置权限 grant select on *.* to test@localhost;
  • 删除权限 revoke select on *.* from test@localhost;

MySQL权限体系

  • 1、权限级别划分
  • 2、权限列表
  • 3、查看用户权限
  • 4、设置用户权限
  • 5、删除用户权限
  • 6、新用户的默认权限
  • 7、实战操作

1、权限级别划分

MySQL用户的权限分为5个级别:全局、库、表、字段、程序和函数。

  1. 全局级别:对整个MySQL服务器的权限。存储在 mysql.user 表中,xx.priv字段表示具体的权限,Y表示有权限,N表示没权限。
  2. 数据库级别:对某个数据库的权限。存储在 mysql.db 表中,xx.priv字段表示具体的权限,Y表示有权限,N表示没权限。
  3. 表级别:对某个表的权限。存储在 mysql.priv 表中,xx.priv字段表示具体的权限,这里不再用YN表示,而是具体的Select、Delete这种。
  4. 字段级别:对某个字段的权限。存储在 columns_priv 表中。
  5. 程序和函数级别:对某个程序或函数的权限。存储在 procs_priv 表中。

权限看起来很复杂,但实际分配权限时却很简单:

  • 设置全局权限,就写成 *.*
  • 设置某个数据库的权限,就写成 database.*
  • 设置某个表的权限,就写成 database.table
  • 设置某个字段的权限,就写成 database.table.column

2、权限列表

  • ALL:所有权限
  • ALTER:可以使用 alter 修改表结构
  • ALTER TOUTINE:可以使用 alter toutine 修改存储过程和函数
  • CREATE:可以使用 create 创建表
  • CREATE ROUTINE:可以使用 create routine 创建存储过程和函数
  • CREATE TEMPORARY TABLES:可以使用 create temporary tables 创建临时表
  • CREATE USER:可以使用 create user、drop user、rename user、revoke all privileges 创建、删除、修改用户。
  • CREATE VIEW:可以使用 create view 创建视图
  • DELETE:可以使用 delete 删除数据
  • DROP:可以使用 drop 删除数据库和表
  • EXECUTE:可以使用 execute 执行存储过程
  • FILE:可以使用 select into outfile 和 load data infile 读写文件
  • INDEX:可以使用 create index 和 drop index 创建和删除索引
  • INSERT:可以使用 insert 插入数据
  • LOCK TABLES:可以对拥有 SELECT 权限的表 使用 lock tables 锁表
  • PROCESS:可以使用 show full processlist 查看服务器的进程信息
  • RELOAD:可以使用 flush 刷新表和日志
  • REPLICATION CLIENT:可以查询主从服务器信息
  • REPLICATION SLAVE:可以从主服务器中读取日志
  • SELECT:可以使用 select 查询数据
  • SHOW DATABASE:可以使用 show database 显示所有数据库
  • SHOW VIEW:可以使用 show create view 显示视图信息
  • SHUTDOWN:可以使用 mysqladmin shutdown 关闭MySQL服务器
  • SUPER:可以使用超级用户操作,包括change master,kill,purge master logs,set global,mysqladmin debug
  • UPDATE:可以使用 update 修改数据
  • USAGE:无权限
  • GRANT OPTION:可以使用 grant 将自己的权限授权给其他用户

3、查看用户权限

方式一:以权限设置记录的形式展示用户权限,多条权限配置可叠加生效。

show grants for root@localhost;

在这里插入图片描述

方式二:只看权限结果。\G可以让每个字段显示为一行。

 select * from mysql.user where user='root'\G

在这里插入图片描述

4、设置用户权限

设置权限的语法格式:

grant select on *.* to test@localhost;
  • grant:设置权限的关键字
  • select:给用户设置的权限
  • on:权限对哪些范围生效,*.* 就是对 所有数据库.所有表 都生效。
  • to:给哪个用户设置权限
  • test@localhost:用户名@主机

5、删除用户权限

删除权限的语法格式:

revoke select on *.* from test@localhost;
  • revoke:删除权限的命令
  • select:删除哪个权限
  • on:删除权限的范围
  • from:删除谁的权限
  • test@localhost:用户名@主机

6、新用户的默认权限

创建一个新用户,可以发现,用户默认是 USAGE 没有权限。

create user test@localhost;
show grants for test@localhost;

在这里插入图片描述

登录进去可以发现,新用户连访问mysql库的权限都没有,也无法创建数据库。

quit
mysql -u test
show database;

在这里插入图片描述

7、实战操作

我们切换root,给新用户加一个SELECT权限

quit
mysql -u root -p1234567
grant select on *.* to test@localhost;
show grants for test@localhost;

在这里插入图片描述

再登录新用户,就能查询所有数据库了。

quit
mysql -u test
show databases;

在这里插入图片描述

再切回root用户,取消新用户的 select,再次查看,可以看到,用户有回到USAGE没有权限的状态了。

quit
mysql -u root -p1234567
revoke select on *.* from test@localhost;
show grants for test@localhost;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第7章 Redis的噩梦:阻塞

文章目录 前言1 发现阻塞2.内在原因2.1API或数据结构使用不合理2.1.1如何发现慢查询2.1.2.如何发现大对象 2.2 CPU饱和2.3 持久化阻塞2.3.1fork阻塞2.3.2.AOF刷盘阻塞2.3.3.HugePage写操作阻塞 3 外在原因3.1CPU竞争3.2 内存交换3.3网络问题3.3.1连接拒绝 前言 Redis是典型的单…

【Altium】AD-PCB界面抬头显示设置

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 PCB设计界面中抬头显示设置的方法 2、 问题场景 PCB设计界面中左上角有一个抬头显示悬浮窗口,这个窗口可以显示坐标,选中PCB中某个对象后还能显示它的具体信息。有用户不喜欢这个窗口&#x…

漆包线行业生产管理革新:万界星空科技MES系统解决方案

一、引言 在科技日新月异的今天,万界星空科技凭借其在智能制造领域的深厚积累,为漆包线行业量身打造了一套先进的生产管理执行系统(MES)解决方案。随着市场竞争的加剧,漆包线作为电气设备的核心材料,其生产…

Android手机删除的照片怎么找回来?3个详细教程,有效恢复

在这个充满科技魅力的时代,手机它不仅是我们的通讯工具,更是我们的娱乐中心、信息库和摄影工作室。然而,有时候,我们在享受科技带来的便利的同时,也会遭遇一些小小的困扰。 比如,你可能会在一次手抖中删除…

AI需求强劲推动韩国六月芯片出口创历史新高

据路透社7月1日报道,韩国产业通商资源部最新数据显示,韩国出口连续第九个月增长,六月份海外对芯片的持续且增强的需求将芯片出口额推至历史高位。这一出口增长势头同时带动韩国制造业采购经理指数(PMI)攀升至两年多以来…

《Linux开发笔记》C语言编译

C语言编译过程 编译过程主要分为四步:预处理、编译、汇编、链接 预处理:主要用于查找头文件、展开宏 编译:把.i文件编译成.s文件 汇编:把.s文件汇编为.o文件 链接:把多个.o文件链接成一个app 以上四个步骤主要由3个命…

java 程序、进程 、线程,cpu,并行、并发、启动线程两种方式

1、重写 Thread 父类方法 后创建实例调用 start 方法 2、将创建自实现 Runable 接口后的实例 作为参数传递给 Thread 的构造方法 两个条件同时存在,那个生效? new Thread(/* condition 1 */threadTest2) {Override/* condition 2 */public void run() {T…

【计算机毕业设计】基于Springboot的大学生就业招聘系统【源码+lw+部署文档】

包含论文源码的压缩包较大,请私信或者加我的绿色小软件获取 免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者…

绝区零 Mac 下载安装详细教程(MacOS IPA 砸壳包 playCover 完美运行)

绝区零 7.4 号开始公测,但刚刚就可以开始下载了,我也是第一时间就迫不及待的安装到了我的 Mac 电脑上,感兴趣的朋友可以跟我一起安装试试 我这里是通过 playCover 的形式在 Mac 上安装运行的,根据之前原神的经验所以这次还是同样…

CTFHUB-SSRF-Redis协议

本题需要用到: 在线编码网址:https://icyberchef.com/ gopherus工具:https://mp.csdn.net/mp_blog/creation/editor/139440201 开启题目,页面空白 和上一个题FastCGI协议一样,还是使用gopherus攻击redis ./gopheru…

H616连接摄像头

(1)首先将USB摄像头连接到OrangePi开发板的USB接口 (2)通过lsmod命令查看是否加载了uvcvideo模块 lsmod | grep video (3)通过 v4l2-ctl 命令可以看到 USB 摄像头的设备节点信息为/dev/video0 sudo apt u…

数字化精益生产系统--SRM供应商关系管理

SRM供应商关系管理,全称为Supplier Relationship Management(供应商关系管理)系统,是一种专门用于管理采购供应链和供应商关系的软件系统。该系统通过集成各个环节的采购活动,帮助企业实现采购流程的自动化、标准化和优…

【数智化案例展】苏商银行——全场景数据统一极速多维即席分析底座建设

‍ 镜舟科技案例 本项目案例由镜舟科技投递并参与数据猿与上海大数据联盟联合推出的《2024中国数智化转型升级创新服务企业》榜单/奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 在 2017 年建行之初,江苏苏商银行股份有限公司(以下简称“…

【软件测试】单元测试、系统测试、集成测试详解

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、单元测试的概念 单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法…

解析Kotlin中的内联函数,inline、noinline、crossinline【笔记摘要】

用编译时常量的概念,引出本文要讲内联函数inline: 1.编译时常量 Java的编译时常量 Compile-time Constant 它有四个要求:1.这个变量需要是 final 的  2.类型只能是字符串或者基本类型  3.这个变量需要在声明的时候就赋值  4.等号右边…

西部智慧健身小程序+华为运动健康服务

1、 应用介绍 西部智慧健身小程序为用户提供一站式全流程科学健身综合服务。用户通过登录微信小程序,可享用健康筛查、运动风险评估、体质检测评估、运动处方推送、个人运动数据监控与评估等公益服务。 2、 体验介绍西部智慧健身小程序华为运动健康服务核心体验如…

文心一言 VS 讯飞星火 VS chatgpt (294)-- 算法导论21.4 3题

三、根据练习 21.4-2 的结论,对于每个结点x,需要多少位(bit)来存储x.rank?21.4-2 的内容是:“证明:每个结点的秩最多为 ⌊lgn⌋ 。”。如果要写代码,请用go语言。 文心一言: 在问题21.4-2中&a…

YOLO-world论文阅读笔记

论文:https://arxiv.org/abs/2401.17270 code: https://github.com/AILab-CVC/YOLO-World 1、为什么要做这个研究(理论走向和目前缺陷) ? 之前的开集检测器大多比较慢,不利于部署。 2、他们怎么做这个研究 (方法&…

C++编程(九)异常处理机制、模板、容器库

文章目录 一、异常处理机制(一)概念(二)语法格式(三)使用示例(四)异常处理机制库 二、模板(一)概念(二)函数模板1. 语法格式2. 函数模…

zxing-cpp+OpenCV根据字符串生成条形码

编译构建 需要使用到 CMake、Git、GCC 或 MSVC。 github 链接:https://github.com/zxing-cpp/zxing-cpp 编译之前请确保: 确保安装了 CMake 版本 3.15 或更高版本。 确保安装了与 C17 兼容的编译器(最低VS 2019 16.8 / gcc 7 / clang 5)。 编译构建…