首页 > 数据库 >MySQL安全加固

MySQL安全加固

时间:2024-09-28 19:21:32浏览次数:3  
标签:密码 MySQL 用户 安全 user mysql 加固 password

安装mysql

MySQL安全加固_MySQL

下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysq1-5.6.33-linux-glibc2.5x86_64.tar.gz

MySQL安全加固_数据库_02

解压:tar -zxvfmysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

MySQL安全加固_MySQL_03

复制解压后的mysql目录:

cp-rmysql-5.6.33-linux-glibc2.5-x86 64 /usr/local/mysql

MySQL安全加固_MySQL_04

MySQL安全加固_数据库_05

添加用户组

groupadd mysql

添加用户mysql到用户组mysql

useradd -g mysql mysql

以后使用数据库就用这个账号,否则就是默认当前的root账号来运行mysql。这样做是不安全的做法,如果遭受公鸡直接就可以获取最高权限。也没有必要用root权限来运行。

更新一下

sudo apt update

MySQL安全加固_MySQL_06

根据不同的版本可能安装的命令也会不一样。

MySQL安全加固_MySQL_07

MySQL安全加固_mysql_08

进入到mysql的目录下

cd /usr/local/musql

修改当前目录拥有者为root用户

chown -R mysql:mysql ./

执行安装数据库的操作

./scripts/mysql_install_db --user=mysql

MySQL安全加固_mysql_09

报错缺失某些库

搜索一下这个名称的库,看看有没有,如果有就安装一下

apt search libaio
apt install libaio.so

MySQL安全加固_MySQL_10

然后再吧文件夹和权限所有者改回到root

chown -R mysql:mysql ./

只留一个data目录,是root可读可写的,将来吧数据库相关的库文件都放在data目录里

chown -R mysql:mysql data

MySQL安全加固_数据库_11

MySQL安全加固_mysql_12

添加开机启动:执行命令cp support-files/mysql.server/etc/init.d/mysql

MySQL安全加固_数据库_13

拷贝一个系统服务的启动文件,把启动脚本放到开机初始化目录

ubuntu的命令是

update-rc.d mysql defaults

赋予可执行权限

chmod +x /etc/init.d/mysql

添加服务:chkconfig--add mysql

显示服务列表:chkconfig--list

启动mysql

service mysql start

查看服务端口是否启用

ss -pantu | grep 3306

MySQL安全加固_数据库_14

ps -ef | grep mysqld

MySQL安全加固_mysql_15


检查口令


MySQL安全加固_MySQL_16

  • 安全基线项说明:确保数据库不存在弱口令,提高数据库安全性
  • 检查方法:

mysql>use mysql

mysql>select user,password from mysql.user,

将密码hash导入cain软件破接

  • 加固方法:

如要修改密码,执行如下命令:首先以root用户登录

mysql>use mysqlmysql>update user set password=password('复杂的新密码’) where user='test'

;mysql> flush privileges;

在MySQL中,检查用户口令(密码)的安全性通常涉及以下几个方面:

  1. 密码复杂度:确保密码足够复杂,不容易被猜测或暴力破接。这通常意味着密码应该包含大小写字母、数字和特殊字符的组合。
  2. 密码过期策略:设置密码的有效期限,强制用户定期更改密码,以减少密码泄露的风险。
  3. 密码历史记录:限制用户重复使用旧密码,以防止用户在密码泄露后简单地重新使用旧密码。
  4. 账户锁定策略:在多次登录失败后锁定账户,以防止暴力破接公鸡。

要检查MySQL用户的密码,你可以使用以下方法:

查看用户密码(不推荐)

在MySQL中,用户的密码是以加密形式存储的,通常不会直接显示明文密码。如果你是数据库管理员,可以使用以下命令查看用户的密码哈希值:

SELECT User, Host, authentication_string FROM mysql.user;

这将显示所有用户的用户名、主机和密码哈希值。请注意,这并不是实际的密码,而是密码的加密表示。

检查密码复杂度

MySQL 5.6.6及更高版本引入了密码验证插件,可以用来检查密码的强度。你可以使用以下命令查看是否启用了密码验证插件:

SHOW VARIABLES LIKE 'validate_password%';

这将显示与密码验证相关的系统变量及其值。如果启用了密码验证插件,你可以通过调整这些变量的值来设置密码复杂度的要求。

重置用户密码

如果你需要重置用户的密码,可以使用以下命令:

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

请将usernamehostnew_password替换为相应的值。

密码过期策略

要设置密码的自动过期策略,可以使用以下命令:

ALTER USER 'username'@'host' PASSWORD EXPIRE INTERVAL 90 DAY;

这将设置用户的密码每90天过期一次。

账户锁定策略

MySQL没有内置的账户锁定策略,但你可以通过编写触发器或脚本来实现这一点。例如,你可以在登录失败次数达到一定阈值后,使用脚本自动锁定账户。

请记住,检查和维护密码安全是一个持续的过程,应该定期进行审计和更新。此外,确保你的MySQL服务器和应用程序都遵循最佳实践,以保护用户凭据不被泄露。

 

标签:密码,MySQL,用户,安全,user,mysql,加固,password
From: https://blog.51cto.com/zhuzhuxia/12137147

相关文章

  • MySQL 中的 FOREIGN KEY 约束:确保数据完整性的关键
    在MySQL数据库中,FOREIGNKEY(外键)约束是一种非常重要的机制,它可以帮助我们确保数据的完整性和一致性。那么,FOREIGNKEY约束究竟是什么呢?让我们一起来深入了解一下。一、什么是FOREIGNKEY约束?FOREIGNKEY约束是一种用于建立两个表之间关系的约束。它通过在一个表中定义一个......
  • MySQL 性能剖析全攻略
    在使用MySQL数据库的过程中,性能问题往往是让开发者和管理员头疼的难题。为了有效地解决这些问题,我们需要对MySQL进行性能剖析。那么,如何在MySQL中进行性能剖析呢?本文将为你详细介绍。一、为什么要进行性能剖析?MySQL数据库在运行过程中,可能会出现各种性能问题,如查询速度慢......
  • MySQL数据库基础
    一.知识框架一开始学数据库,我们要先大致了解一下整个体系是怎么样的,搭建起一个知识体系,方便记忆和学习。什么是数据库,由名可知,就是保存用户数据的程序就是数据库,那MySQL又是什么呢,其实MySQL就是一个应用软件,通过这个应用软件就可以创建数据库,能够对数据库进行增删查改等一系......
  • mysql 锁 记录
     表级别锁1.表锁locktablesxxread. 线程只能读locktablesxxwrite其他线程无法读写  2.MDL锁(元数据锁 MDL是为了对表执行CRUD操作时,防止其他线程对这个表结构做了变更,反之亦然注意 MDL是在事务提交后才会释放,因此长事务可能导致修改表操作阻塞  ......
  • 7、集成SpringSecurity安全框架---定义统一的响应对象类
    自定义/***@Description:TODO:定义统一的响应对象类*/@Data@AllArgsConstructor@NoArgsConstructorpublicclassResultVO<T>implementsSerializable{privatestaticfinallongserialVersionUID=-2548645345465031121L;privateIntegercode;pr......
  • 8、集成SpringSecurity安全框架---登录请求放行配置
    @ConfigurationpublicclassSecurityConfig{//创建BCryptPasswordEncoder注入容器,密码加密@BeanpublicPasswordEncoderpasswordEncoder(){returnnewBCryptPasswordEncoder();}//登录时调用一次AuthenticationManager.authenticat......
  • 数据库技术提升-MySQL数据库原理、设计与应用【1.4】
    4.新增字段对于已经创建好的数据表,也可以根据业务需求利用ADD新增字段,基本语法格式如下·语法格式1:新增一个字段,并可指定其位置ALTERTABLE数据表名ADD[COLUMN]新字段名字段类型[FIRSTIAFTER字段名]语法格式2:同时新增多个字段ALTERTABLE数据表名ADD[COLUM......
  • 数据库技术提升-MySQL数据库原理、设计与应用【1.6】
    3.1.3字符串类型MySQ1.中的字符串类型分为CHAR、VARCHAR、TEXT等多种类型,不同数据类型具有不同的特点,具体如表3-5所示。1.CHAR和VARCHAR类型CHAR和VARCHAR类型都用来保存字符串数据。不同的是,VARCHAR可以存储可变长度的字符串。在MySQ1.中,定义CHAR和VARCH......
  • 数据库技术提升-MySQL数据库原理、设计与应用【1.5】
    第3章数据类型与约束学习目标掌握MySQL中常用数据类型的使用掌握MySQl.中常用的束的使用掌握MySQL中字符集的设置与处理        在数据库中,数据表用来组织和保存各种数据,它是由表结构和数据组成的。在设计表结构时,经常需要根据实际需求,选择合适的数据类型......
  • DC00020基于springboot新闻网站系统java web项目MySQL新闻管理系统
    1、项目功能演示DC00020基于springboot新闻网站系统javaweb项目MySQL2、项目功能描述  基于springboot+vue新闻网站包括用户和系统管理员两个角色。2.1用户功能1、用户登录、用户注册2、新闻信息:点赞、点踩、收藏、查看3、用户分享:点赞、点踩、收藏、查看、添加......