1.修改 DBA 登录密码

shell 下执行:

mysqladmin -u root password

非首次修改:mysqladmin -u root password -p原密码

在 mysql 下执行:

  update user set password=password('密码') where user='root';

  flush privileges;

2.删除默认数据库和用户

删除测试库

show databases;

drop database test;

删除非 root 用户

use mysql;

delete from user where not (user='root');

删除空密码的 root 用户

delete from user where user='root' and password='';

flush privileges;

3.变更 DBA 用户名

use mysql;

update user set user="zhangsan" where user="root";

flush privileges;

4.在账户管理时使用加密算法

添加账户 test,密码进行加密处理

use mysql;

insert into users values(1,password(123.com),"test");(48位的 md5)

5.更改 mysql 启动用户

修改 my.cnf 文件:/etc/my.cnf

加入内容:

[mysqld]
user=mysql

6.限制远程连接数

修改 my.cnf 文件

加入内容:

[mysqld]
max_connections=5
max_user_connections=2

或者限制某个用户,在 mysql 中执行

testdb用户最多两个连接
GRANT test ON *.* TO testdb@localhost MAX_USER_CONNECTIONS 2;

7.关闭远程管理数据库(关闭后,限制远程就没用了)

修改 my.cnf

修改内容:

取消下方语句的注释符
#skip-networking
skip-networking

8.清理 mysql 命令历史

注意清理家目录中的 .mysql_history

ln -s /dev/null /root/.mysql_history

禁止使用明文模式登录 mysql:mysql -u root -p

9.禁止 MySQL 读取本地文件

禁止mysql通过某个文件,把文件内容置入数据库

修改 my.cnf

加入内容:

[mysqld]
local_infile = 0

或者添加启动选项:用脚本开启 mysql(临时生效)

  mysqld_safe --local_infile=0 --user=mysql

10.禁止将表导出到文件

在 mysql 中修改用户的文件权限

  update user set File_priv='N' where user='用户名';

检查配置文件是否存在不合理信息,存在则删掉

  grep secure_file_priv /etc/my.cnf

  secure_file_priv=xxx路径

11.日常备份数据库

手动备份数据库可用防止密码明文存储

mysqldump --user=root --all-databases --flush-privileges --lock-all-tables --master-data=1 --flush-logs --triggers --routines --events --hex-blob > 备份路径/文件名时间戳.sql

还原数据库

mysql -u用户名 -p密码 数据库名 < 备份文件名

16、数据库加固-mysql 加固的更多相关文章

  1. MYSQL数据库攻防与加固

    这是“官方”原本的模样搬过来的..写的很粗略啊.还有篇详细的请查看:MySQL安全加固题目及答案参考解析 启动xserver-mysql,进入xserver-mysql,开始实验,实验步骤如下: 1. ...

  2. centos mysql 实战 第一节课 安全加固 mysql安装

    centos mysql  实战  第一节课   安全加固  mysql安装 percona名字的由来=consultation 顾问+performance 性能=per  con  a mysql ...

  3. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

  4. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  5. 关于数据库管理系统DBMS--关系型数据库(MySQL/MariaDB)

    数据库的结构(3种):层次,网状,关系型(用的最多): DBMS的三层模型: 视图层:面向最终用户: 逻辑层:面向程序员或DBA: 物理层:面向系统管理员: 关系型数据库管理系统——RDBMS: 主要 ...

  6. ubuntu 16.04上 mysql 5.7 安装笔记

    一 安装 ubuntu 采用APT安装方式,可参考: Ubuntu 安装mysql和简单操作 Ubuntu 16.04安装MySQL(5.7.18) A Quick Guide to Using th ...

  7. Ubuntu Server 16.04 安装MySQL并设置远程访问

    Ubuntu Server 16.04 安装MySQL 1. 使用root账号 sudo apt-get install mysql-serversudo apt-get install mysql- ...

  8. python数据库操作 - MySQL入门【转】

    python数据库操作 - MySQL入门 python学院 2017-02-05 16:22 PyMySQL是Python中操作MySQL的模块,和之前使用的MySQLdb模块基本功能一致,PyMy ...

  9. 数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权

    数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...

  10. Ubuntu 16.04 安装mysql并设置远程访问

    说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...

随机推荐

  1. oracle_fdw扩展使用中异常问题

    Oracle_fdw 的使用介绍已经在之前的文章中介绍过了,具体见:https://www.cnblogs.com/kingbase/p/14846479.html. 本篇文章介绍一下可能碰到的问题处 ...

  2. Java生成Json字符串

    public class Test01 { public static void main(String[] args) { // StringBuilder responseMsg = new St ...

  3. #原根,BSGS,扩欧,矩阵乘法#CF1106F Lunar New Year and a Recursive Sequence

    题目 已知数列 \(f\) 满足 \(f_{1\sim k-1}=1\) 且 \(f_n=m\), 并且知道 \(f_i=(\prod_{j=1}^kf_{i-j}b_j)\bmod{99824435 ...

  4. #根号分治,背包#51nod 1597 有限背包计数问题 LOJ 6089 小Y的背包计数问题

    题目 有一个大小为\(n\)的背包,有\(n\)种物品, 第\(i\)种物品的大小为\(i\),且有\(i\)个, 求装满这个背包的方案数 \(n\leq 10^5\) 分析 直接多重背包会有问题,考 ...

  5. #模拟#洛谷 2327 [SCOI2005]扫雷

    题目 分析 考虑最多只有两种情况,因为确定一个位置其它位置随即也能确定, 那么指定第一个位置有没有雷然后判断一下后面推出的雷数是否为0或1,不是显然不行 代码 #include <cstdio& ...

  6. Chrome浏览器前端开发调试时强制更新js、css静态资源文件缓存的方法

    以Chrome浏览器为例,国产浏览器未做全面测试.前端开发静态文件时,浏览器访问会缓存样式.图片.js等,怎么快速更新缓存. 以下方法特别适合只想清除某个网页的缓存,而不想清除全部浏览器缓存可以采用以 ...

  7. HarmonyOS音频开发指导:使用OpenSL ES开发音频播放功能

      OpenSL ES全称为Open Sound Library for Embedded Systems,是一个嵌入式.跨平台.免费的音频处理库.为嵌入式移动多媒体设备上的应用开发者提供标准化.高性 ...

  8. 第十篇:异步IO、消息队列

    一.协程 二.异步IO_Gevent 三.协程异步IO操作 四.事件驱动模型 五.IO多路复用 六.异步IO理论 一.回顾 线程 vs 进程 线程:CPU最小调度单位,内存共享: 线程同时修改同一份数 ...

  9. node require的循环引用是怎么一回事

    require 运行过程 require 引用是同步的,没有异步这么一说,它会先运行一遍. setouttime(function(){ export=a; }) 如果我们require的时候,那么这 ...

  10. 快速上手Linux核心命令

    Linux 的重要性不用我多说了吧,大多数互联网公司,服务器都是采用的Linux操作系统 Linux是一个主要通过命令行来进行管理的操作系统. 只有熟练掌握Linux核心命令,在使用起来我们才会得心应 ...