16、数据库加固-mysql 加固
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 加固的更多相关文章
- MYSQL数据库攻防与加固
这是“官方”原本的模样搬过来的..写的很粗略啊.还有篇详细的请查看:MySQL安全加固题目及答案参考解析 启动xserver-mysql,进入xserver-mysql,开始实验,实验步骤如下: 1. ...
- centos mysql 实战 第一节课 安全加固 mysql安装
centos mysql 实战 第一节课 安全加固 mysql安装 percona名字的由来=consultation 顾问+performance 性能=per con a mysql ...
- 数据库 之MySQL 简单教程
So Easy系列之MySQL数据库教程 1. 数据库概述 1.1. 数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...
- 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 ...
- 关于数据库管理系统DBMS--关系型数据库(MySQL/MariaDB)
数据库的结构(3种):层次,网状,关系型(用的最多): DBMS的三层模型: 视图层:面向最终用户: 逻辑层:面向程序员或DBA: 物理层:面向系统管理员: 关系型数据库管理系统——RDBMS: 主要 ...
- ubuntu 16.04上 mysql 5.7 安装笔记
一 安装 ubuntu 采用APT安装方式,可参考: Ubuntu 安装mysql和简单操作 Ubuntu 16.04安装MySQL(5.7.18) A Quick Guide to Using th ...
- Ubuntu Server 16.04 安装MySQL并设置远程访问
Ubuntu Server 16.04 安装MySQL 1. 使用root账号 sudo apt-get install mysql-serversudo apt-get install mysql- ...
- python数据库操作 - MySQL入门【转】
python数据库操作 - MySQL入门 python学院 2017-02-05 16:22 PyMySQL是Python中操作MySQL的模块,和之前使用的MySQLdb模块基本功能一致,PyMy ...
- 数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权
数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...
- Ubuntu 16.04 安装mysql并设置远程访问
说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...
随机推荐
- CentripetalNet:更合理的角点匹配,多方面改进CornerNet | CVPR 2020
CentripetalNet的核心在于新的角点匹配方式,额外学习一个向心偏移值,偏移值足够小的角点即为匹配,相对于embedding向量的匹配方式,这种方法更为鲁棒,解释性更好.另外论文提出的十字星变 ...
- KingbaseES V8R6备份恢复案例之---备份crond计划任务的调整
案例说明: 在KingbaseES V8R6数据库通常备份建立的crond任务,默认由root用户建立,写入到/etc/cron.d/KINGBASECRON文件中,在有的生产环境限制了普通用户使用r ...
- Games101--作业2
说明 该作业主要想实现两个三角形的绘制 绘制结果走样 按照课上所讲的方法,对包围盒里面的所有像素进行判断是否在三角形内,然后着色,这样的结果由于采样频率的问题将导致边缘走样现象的发生 if(!insi ...
- Scala 不可变数组Array
1 package chapter07 2 3 object Test01_ImmutableArray { 4 def main(args: Array[String]): Unit = { 5 / ...
- 区别对比 Python、Perl、VB、Ruby、C/C++、C# .Net、PHP、Java… 等多编程语言
1. 编程语言类型:首先,Python.C/C++.Java 都是强类型的编程语言.强类型的编程语言定义如下: 强类型的编程语言是一种强制类型定义的编程语言,即一旦某一个变量被定义类型,如果不经强制转 ...
- OpenHarmony标准系统开机时长优化
简介 万物互联时代,产品性能至关重要,而系统启动时间是系统性能的重要组成部分,因为用户必须等待系统启动完成后才能使用设备.对于经常需要进行冷启动的汽车等设备而言,较短的启动时间至关重要(没有人喜欢在等 ...
- 成长计划知识赋能 | 第九期:渐进式深入理解OpenHarmony系统
成长计划知识赋能直播第九期如约而至,面向OpenHarmony初中级开发者,解析OpenHarmony系统架构和驱动框架,助力开发者快速上手OpenHarmony系统开发. 详情见海报内容,资深软 ...
- Git 版本控制系统的完整指南
什么是 Git? Git 是一个流行的版本控制系统.它是由 Linus Torvalds 于 2005 年创建的,自那时以来由 Junio Hamano 维护. 它用于: 跟踪代码更改 跟踪谁做出了更 ...
- C# 面向对象编程进阶:构造函数详解与访问修饰符应用
C# 构造函数 构造函数是一种特殊的方法,用于初始化对象.构造函数的优势在于,在创建类的对象时调用它.它可以用于为字段设置初始值: 示例 获取您自己的 C# 服务器 创建一个构造函数: // 创建一个 ...
- C 语言指针完全指南:创建、解除引用、指针与数组关系解析
C 语言中的指针 创建指针 我们可以使用引用运算符 & 获取变量的内存地址: int myAge = 43; // 一个 int 变量 printf("%d", myAge ...