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

news2024/11/18 2:27:49

「作者简介」:冬奥会网络安全中国代表队,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;

在这里插入图片描述

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

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

相关文章

基于OpenMV识别数字及程序说明

OpenMV简介 OpenMV是一个开源、低成本且功能强大的机器视觉模块。它基于STM32F427CPU,集成了OV7725摄像头芯片,能在小巧的硬件模块上,用C语言高效地实现核心机器视觉算法,并提供了Python编程接口,使得图像处理的复杂度…

k8s_集群搭建_k8s管理前端_dashboard安装部署---分布式云原生部署架构搭建017

然后再去安装一下一个dashboard,有了这个以后,操作k8s集群就不用 一直敲命令了 可以看到上面的命令拿过来,然后 执行就可以了 然后如果执行慢,可以直接先去下载,使用wget,然后再去 也可以在浏览器访问,把内容拿到,然后 下面是内容: # Copyright 2017 The Kubernetes Author…

金融科技企业的数据治理与合规挑战

随着科技的发展,金融科技行业在我国得到了迅猛发展。金融科技创新不仅为消费者带来了便捷的金融服务,也极大地提高了金融行业的运营效率。然而,在金融科技发展的同时,数据治理与合规挑战也日益显现。本文将深入探讨金融科技企业在…

84 柱状图中最大的矩形

题目 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 输入:heights [2,1,5,6,2,3] 输出:10 解释:最大的矩…

华为OD机试 - 最长合法表达式 - 双指针(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…

竞赛选题 交通目标检测-行人车辆检测流量计数 - 竞赛选题

文章目录 0 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…

苹果Mac电脑能玩什么游戏 Mac怎么运行Windows游戏

相对于Windows平台来说,Mac电脑可玩的游戏较少。虽然苹果设备的性能足以支持各种大型游戏,但由于系统以及苹果配套服务的限制,很多游戏无法在Mac系统中运行。不过,借助虚拟机软件,Mac电脑可以突破系统限制玩更多的游戏…

Python | Leetcode Python题解之第213题打家劫舍II

题目: 题解: class Solution:def rob(self, nums: List[int]) -> int:def robRange(start: int, end: int) -> int:first nums[start]second max(nums[start], nums[start 1])for i in range(start 2, end 1):first, second second, max(fi…

Rural Access Index (RAI)农村通达指数

农村通达指数(RAI) 简介 农村通达指数(RAI)是全球交通领域最重要的发展指标之一。它是目前可持续发展目标中唯一一个直接衡量农村通达性的指标,通过评估农村人口的四季道路通达性来实现。在 2015 年作为可持续发展目…

二手物品交易小程序的设计

管理员账户功能包括:系统首页,个人中心,用户管理,管理员管理,商品信息管理,论坛管理,收货地址管理,基础数据管理 微信端账号功能包括:系统首页,商品信息&…

币界网讯,预计以太坊现货 ETF 将于 7 月中旬推出

刚刚 ETF Store 总裁 Nate Geraci 在 X (前Twitter)平台上宣布,备受数字货币市场期待的SEC以太坊现货 ETF提案,将于7 月中旬通过美国证券交易委员会(SEC)批准。Nate Geraci透露修订后的 S-1 文件将于 7 月 …

Java高级重点知识点-20-File

文章目录 File类 File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 基本方法 构造方法: public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于目标鲁棒的电动汽车及基站储能联合参与电力市场的决策模型 》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

SpringCloud进阶篇

文章目录 网关快速入门创建模块引入依赖修改启动类配置路由路由过滤(一般不用) 自定义GlobalFilter登录校验登录校验过滤器 微服务获取用户信息保存用户信息到请求头拦截器获取用户信息 OpenFeign传递用户信息配置共享添加共享配置拉取共享配置 配置热更新添加配置到Nacos配置热…

#LinuxC高级 笔记二

makefile gcc gdb makefile 1. 分文件编程 1.1 源文件&#xff1a;.c结尾的文件 包含main函数的.c 包含子函数的.c 1.2 头文件&#xff1a;.h结尾的文件 头文件、宏定义、typedef 、结构体、共用体、枚举、函数声明 include引用时“”和<>的区别&#xff1a; <>去系…

泰安再见,泰山OFFICE还会再见

路过泰安&#xff0c;遇见彩虹。怀念和感恩在泰山信息科技的万丈豪情。 泰山OFFICE&#xff0c;还是要复活。

苹果电脑虚拟机运行Windows Mac环境安装Win PD19虚拟机 parallels desktop19虚拟机安装教程免费密钥激活

在如今多元的数字时代&#xff0c;我们经常需要在不同的操作系统环境下进行工作和学习。而对于 Mac 用户来说&#xff0c;有时候需要在自己的电脑上安装 Windows 操作系统&#xff0c;以体验更多软件及功能&#xff0c;而在 Mac 安装 Windows 虚拟机是常用的一种操作。下面就来…

Git详细安装和使用教程

文章目录 准备工作-gitee注册认识及安装GitGit配置用户信息本地初始化Git仓库记录每次更新到仓库查看及切换历史版本Git忽略文件和查看文件状态Git分支-查看及切换Git分支-创建分支Git分支-合并及删除分支Git分支-命令补充Git分支-冲突需求: 准备工作-gitee注册 传送门: gite…

Paimon 在汽车之家的业务实践

汽车之家基于Paimon的实践 摘要&#xff1a;本文分享自汽车之家的王刚、范文、李乾⽼师。介绍了汽车之家基于 Paimon 的一些实践&#xff0c;和一些背景。内容主要为以下四部分&#xff1a; 一、背景 二、业务实践 三、paimon 优化实践 四、未来规划 一、背景 在使用Paimon之前…

独立开发者系列(18)——js的window对象

独立开发者&#xff0c;必然要面对JS代码&#xff0c;基本可以认为在脚本语言里面&#xff0c;JS门槛最低&#xff0c;正因为如此&#xff0c;JS也是最受欢迎的开发语言之一。JS的代码运行规律&#xff0c;按照代码模块执行&#xff0c;也就是<script></script> 每…