mysql清除数据痕迹_MySQL使用痕迹清理~/.mysql_history - milantgh

mysql会给出我们最近执行的SQL命令和脚本;同linux command保存在~/.bash_history一样,你用mysql连接MySQL server的所有操作也会被记录到~/.mysql_history文件中,这样就会有很大的安全风险了,如添加MySQL用户的sql也同样会被明文记录到此文件中。
 

1, 查看你系统的~/.mysql_history 隐藏文件

(我的测试环境下,一般linux的mysql用户来管理,所以在/home/mysql目录下会有这个文件)

-bash-3.2$ ls -al | grep mysql_

-rw------- 1 mysql mysql 5006 Apr 10 18:53  .mysql_history

2,测试MySQL用户管理的SQL会被记录

2.1 用linux用户mysql, 使用mysql命令行工具登录MySQL server. 添加用户" his_user@localhost

",并设置密码

mysql> grant select on rep.* to his_user@localhost identified by '123';

Query OK, 0 rows affected (0.00 sec)

2.2 断开刚才的mysql连接,查看/home/mysql/.mysql_history文件,可见刚才添加mysql user的操作已被记录,包括明文密码123.

-bash-3.2$  tail -1 ~/.mysql_history

grant select on rep.* to his_user@localhost identified by '123';

注意说明:这个.mysql_history不是只存在于MySQL所在的Server, 任何你能够远程用mysql连接,都会在此server上的当前用户的~目录下创建这个隐藏文件。

3,  如何清除使用痕迹

,如果在生产环境中,一般不会依赖此记录来作审计,从上面演示可以看出,还存在一定的风险。

2.1 完全清除~/.mysql_history。

2.1.1 删除现在的.mysql_history文件

-bash-3.2$ rm ~/.mysql_history

2.1.2 创建它的软连接(原因后面说明)

-bash-3.2$ ln -s /dev/null ~/.mysql_history

查看软连接创建成功。

-bash-3.2$ ls -al | grep mysql_

lrwxrwxrwx 1 mysql mysql 9 Apr 10 20:30  .mysql_history -> /dev/null

测试是否生效:连接mysql, 操作,断开连接,查看操作是否还被记录。

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| backup |

-------------------------

mysql> exit

Bye

-bash-3.2$ cat ~/.mysql_history

可见,上面的show databases;操作命令没有被记录,同时当你断开ssh后,重新连接mysql, 此时按“向上”键已无历史操作记录提示,说明生效了。

想要重新生效, 你直接删除掉~/.mysql_history,当你下次再连接,退出后,就会重新创建此文件了。

2.2 只清除敏感信息

;如果不想完全禁用此功能,只是想每次做一些敏感操作后,把此文件清空便可以了。

-bash-3.2$  cat /dev/null > ~/.mysql_history

比如你修改了MySQL用户信息,退mysql connection后,执行上操作,把 全部操作痕迹清空

了。

3 ~/.mysql_history文件的产生原理

3.1 因为mysql工具本身就是有一个shell, 每次mysql连接退出后,都会把此次操作的信息记录到~/.mysql_history文件中,

如果此文件不存在,会先创建,再记录(像上面的把它删除后,或才安装的MySQL)

3.2 此文件的名字,其实是根据 MYSQL_HISTFILE

这个linux环境变量来设置了, 默认是这个~/.mysql_history值,那我们测试一下其他值。

3.2.1 在linux用户的~/.bash_profile 中添加一行export MYSQL_HISTFILE=/home/mysql/.mydb_history

目录根据你的linux用户自己设置,我的测试用户是mysql.

-bash-3.2$ vi ~/.bash_profile

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

PATH=$PATH:/usr/sbin

export MYSQL_HISTFILE=/home/mysql/.mydb_history

3.2.2 退出linux连接,重新登录linux; 使用mysql来连接数据库,操作,退出connection, 检查~ /.mydb_history

隐藏文件是否创建,并检查刚才操作是否被记录。

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

----------------------

//退出mysql

mysql> exit

Bye

//查看隐藏文件是否创建

-bash-3.2$ cd ~; ls -tal | grep mydb_history

-rw------- 1 mysql mysql 16 Apr 10 20:55  .mydb_history

// 查看“show databases"命令是否被正确记录到文件中

-bash-3.2$ tail -1 ~/.mydb_history

show databases;

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

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

相关文章

数据结构【DS】图的基本概念

定义 完全图(简单完全图) 完全无向图:边数为𝐧𝐧−𝟏𝟐完全有向图:边数为 𝐧(𝐧−𝟏) 子图、生成子图 G的子图:所有的顶点和边都属于图G的图 G的生成子图…

数据结构与算法编程题4

删除线性表中值在s与t之间的元素&#xff08;s<t&#xff09;&#xff0c;s和t不合理或者顺序表为空则显示出错信息并退出运行。 #include <iostream> using namespace std;typedef int ElemType; #define Maxsize 100 #define OK 1 #define ERROR 0 typedef struct…

SIMULIA 2022 Abaqus新功能之非线性、工作流、子程序、Explicit等

Abaqus 非线性力学的功能增强 Valanis-Landel 超弹性材料 通过指定单轴试验数据和可选的体积试验数据&#xff08;v2022新增选项&#xff09;来定义Valanis-Landel 超弹性模型&#xff0c;该模型能精确地复现给定的数据&#xff0c;类似Marlow模型&#xff0c;但与Marlow模型的…

深信服AC设备用户认证

拓扑图 目录 拓扑图 一. 无需认证 思路&#xff1a;创建用户和组&#xff0c;将无需认证策略和用户绑定 1.创建组&#xff0c;组里添加用户 2. 新建不需要认证策略&#xff0c;将不需要认证策略和用户关联 3.验证 二.密码认证 思路&#xff1a;创建用户和组&#xff0c;并…

在Vue关于ue的computed属性中传递参数

computed的基本用法 computed是Vue实例中一个非常强大的计算属性&#xff0c;它的值主要根据依赖数据而变化。我们可以将一些简单的计算放在computed属性中&#xff0c;从而实现在模板中使用简单的表达式。 但是实际项目中通常有这么一个场景&#xff1a;根据传递不一样的参数值…

Hive效率优化记录

Hive是工作中常用的数据仓库工具&#xff0c;提供存储在HDFS文件系统&#xff0c;将结构化数据映射为一张张表以及提供查询和分析功能。 Hive可以存储大规模数据&#xff0c;但是在运行效率上不如传统数据库&#xff0c;这时需要懂得常见场景下提升存储或查询效率的方法&#x…

赋值 响应式问题

vue2响应式数组重新赋值 如果要重新赋值一个响应式数组&#xff0c;可以使用Vue.set或者 splice 方法。 Vue.set Vue.set 方法可以用来添加新元素或者替换现有元素。语法如下&#xff1a; Vue.set(arr, index, newValue)其中&#xff0c;arr 是要操作的响应式数组&#xff…

shell脚本学习笔记07

如何让shell实现 可选择性执行 的功能 用了while进行循环&#xff0c;是死循环&#xff0c;在循环时&#xff0c;使用case进行使用哪个脚本进行执行。使用clear进行每一次操作前的清屏&#xff0c;eof代表输入这个会显示目录。read用来读取输入的值&#xff0c;如果不输入值不会…

远程数据采集继电器RTU如何应用在智能电动汽车充电桩

远程数据采集继电器&#xff08;Remote Terminal Unit&#xff0c;RTU&#xff09;在智能电动汽车充电桩中的应用&#xff0c;可以为充电桩系统提供更高效、安全和可靠的远程监控与控制功能。下面将详细说明RTU在智能电动汽车充电桩中的应用。 远程监控功能&#xff1a; RTU可以…

【C/C++】全排列及素数环问题

全排列 问题描述&#xff1a;将n个互不相同的数全排列&#xff0c;即1&#xff0c;2&#xff0c;n 方法&#xff1a;dfs 算法思路&#xff1a; dfs(从第一层开始){if(递归结束条件){遍历a[i]}打印换行for(循环n个位数) {if(当前数字没用过){第k层&#xff08;第k个位置&…

Springboot 启动Bean如何被加载

1.启动类 SpringApplication.run(TianMaoApplication.class, args); public ConfigurableApplicationContext run(String... args) {long startTime System.nanoTime();DefaultBootstrapContext bootstrapContext this.createBootstrapContext();ConfigurableApplicationCon…

IP地理位置定位技术:保护网络安全的新利器

随着互联网的普及和网络活动的日益频繁&#xff0c;网络安全问题越来越受到人们的关注。恶意流量攻击、网络欺诈等网络安全威胁层出不穷&#xff0c;如何准确识别和定位网络攻击者成为一项重要任务。在这个背景下&#xff0c;IP地理位置定位技术应运而生&#xff0c;为网络安全…

OpenHarmony Ohpm安装历程(个人踩坑,最后安装成功)

大家好&#xff0c;我是【八戒&#xff0c;你又涨价了哎】 以下是我个人在学习OpenHarmony过程中的分享&#xff0c;请大家多多指教 目录 问题描述&#xff1a; 尝试解决 尝试一、 尝试二、 尝试三、 最终解决方案 问题描述&#xff1a; 当我学习到使用OpenHarmony的三方…

2005B 2.4W AB类音频功率放大器应用领域

2005B 2.4W AB类音频功率放大器应用领域&#xff1a;1、便携式DVD&#xff1b;2、笔记本电脑&#xff1b;3、插卡音箱 / USB音箱&#xff1b;4、液晶电视 / 液晶显示器等等。 2005B是一颗单通道AB类音频功率放大器。在5V 电源供电&#xff0c;THDN10%&#xff0c;4欧姆负载上可…

SQLite 安装和 Java 使用教程

SQLite是一个C语言库&#xff0c;它实现了一个小型、快速、自包含、高可靠性、功能齐全的SQL数据库引擎。SQLite是世界上使用最多的数据库引擎。SQLite内置于所有手机和大多数计算机中&#xff0c;并捆绑在人们每天使用的无数其他应用程序中。 SQLite文件格式稳定、跨平台、向…

免疫微环境、免疫细胞浸润分析、免疫功能分析

Immune MicroEnvironment、Immune infiltration analysis 01.肿瘤免疫微环境&#xff08;TIME&#xff09;02.TIME的免疫特点和相关机制03.检测免疫浸润的工具3.1.基于marker gene的ssGSEA富集分析的免疫分析方法3.1.1.xCELL3.1.2.MCP-counter3.1.3.ESTIMATE3.1.4.3.1.5.ssGSEA…

在Linux系统中创建虚拟串口

在Linux系统中创建虚拟串口 文章目录 在Linux系统中创建虚拟串口1、虚拟串口介绍2、使用 socat创建虚拟串行端口2.1 安装socat2.2 创建简单的虚拟串口2.3 创建指定波特率的串行端口 有多种方法可以在 Linux 中创建虚拟串口来测试和调试串行通信协议。 在本文中&#xff0c;我们…

基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码

基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于饥饿游戏算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于饥饿游戏优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

代码随想录二刷 | 链表 | 基础知识

代码随想录二刷 &#xff5c; 链表&#xff5c; 基础知识 链表链表的类型单链表双链表循环链表 链表的存储方式链表的定义链表的操作删除节点增加节点 性能分析 链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是…

<MySQL> 如何合理的设计数据库中的表?数据表设计的三种关系

目录 一、表的设计 二、一对一关系 三、一对多关系 四、多对多关系 一、表的设计 数据库设计就是根据需要创建出符合需求的表。 首先根据需求找到体系中的关键实体对象&#xff0c;通常每个实体对象都会有一个表&#xff0c;表中包含了这个实体的相关属性。 再理清楚实体对…