Mysql安全基线 NO.1 增强root帐户密码登陆、删除空密码 原因 一、简单密码容易暴力破解二、mysql默认是空密码 解决 一、增强密码强度- 22位以上- 同时包含大写字母、小写字母、数字、特殊字符...- 密码不重复使用- 密码定期更换(60天、90天)二、给空密码帐号加上密码mysqladmin -u root password “newpassword”mysql> use mysql;mysql...NO.2 删除默认数据和帐户 原因 Mysql默认会有空用户和test库 解决 删除test库和除root外帐户再按照业务需求添加mysql> drop database test;mysql> delete...mysql> update user set user=’newrootname’ where user=’root’;mysql> flush privileges; NO.4 限制用户的连接数 原因.../local/mysqlchown -R mysql.mysql /usr/local/mysql/var/ NO.6 历史命令泄漏 原因 linux的历史命令可能会泄漏mysql的帐号密码等信息 解决
在MySQL的日常管理中,密码安全直接关系到数据库的使用,DBA应该在密码管理上特别重视。...针对以上风险,MySQL的DBA可以利用如下方法进行防范,降低风险。...启用密码过期策略,限制密码暴露 启用“validate_password”组件,强制使用复杂度高的“强密码”,防止被攻击者轻易猜测 MySQL的密码存储在“mysql.user”表中,需要防止不具备管理员权限的用户读取该表...,当攻击者通过相同的算法链运行目标密码哈希,并找到与之匹配的算法链时,攻击者可以通过重播该链来推导密码 MySQL的密码验证组件 MySQL提供了密码验证组件,用以提高密码的安全性。...组件安装成功后,该组件提供几个变量,通过对变量进行设置,以达到不同级别的密码安全要求。
MySQL层安全策略 业务帐号最多只可以通过内网远程登录,而不能通过公网远程连接。 增加运维平台账号,该账号允许从专用的管理平台服务器远程连接。...这需要使用MySQL企业版,或者Percona/MariaDB分支版本,MySQL社区版本不支持该功能。...MySQL初始化后,先行删除无用账号,删除匿名test数据库 mysql> delete from mysql.user where user!='root' or host!...设置MySQL账号的密码安全策略,包括长度、复杂性。 4. 关于数据备份 记住,做好数据全量备份是系统崩溃无法修复时的最后一概救命稻草。...或者可以让应用程序先用中间账号连接proxy层,再由proxy连接MySQL,避免应用层直连MySQL; 最后我们想说,任何高明的安全策略,都不如内部员工的安全意识来的重要。
1.确保MYSQL_PWD环境变量未设置 描述 MYSQL_PWD环境变量的使用意味着MYSQL凭证的明文存储,极大增加MySQL凭据泄露风险。...加固建议 删除系统环境变量中MySQL密码(MYSQL_PWD)配置 2.匿名登录检查 描述 检查MySQL服务是否允许匿名登录 加固建议 登录MySQL数据库,执行以下命令删除匿名账户: delete...加固建议 编辑Mysql配置文件/my.cnf,删除log-raw参数,并重启mysql服务 4.禁止使用–skip-grant-tables选项启动MySQL服务 描述 使用此选项...加固建议 编辑Mysql配置文件/my.cnf,删除skip-grant-tables参数,并重启mysql服务 5.为MySQL服务使用专用的最低特权账户 描述 使用最低权限账户运行服务可减小...MySQL天生漏洞的影响。
MySQL安全小技巧,后面会慢慢补充。 mysql命令行有个参数 -U, --safe-updates Only allow UPDATE and DELETE that uses keys....表示安全的更新,就是说delete或者update数据的时候,必须加上条件,不然就报错。如下图: ?...我们可以做个别名 echo 'alias mysql="mysql -U"' >> /etc/profile source /etc/profile 这样的话,其他用户登录mysql,这个安全更新设置也是生效的了...虽然有时候会带来不便,但是从安全角度看,这点不便还是要克服的。毕竟数据安全更重要些。
很多亲们在安装好了MySQL数据库之后,对于mysql用户表并没有做任何特殊的处理,因此缺省情况下,存在密码为空的用户,也有很多用户名和密码都为空的情形,我们称之为双空用户。...对于生产环境的数据库来说,这会带来一些不确定的安全隐患。下面是关于这个问题的描述以及清理掉无关用户的方法。 ...有关mysql用户相关参考: MySQL 用户与权限管理 MySQL 修改用户密码及重置root密码 1、演示异常登录 a、演示双空用户登陆 [root@xlkoracel ~]# mysql...-uroot -p Enter password: (root@localhost) [(none)]> select user,host,password from mysql.user...表清理所有密码为空的用户 (root@xlkoracel) [(none)]> delete from mysql.user where password is null or password='';
一、MySQL权限系统通过两个阶段进行认证: (A) 对用户进行身份认证,IP地址和用户名联合, (B) 对合法用户赋予相应权限,权限表在数据库启动的时候载入内存中。...二、在权限的存取过程中,会用到”mysql“数据库中的user、host和db这3个权限表。两阶段验证过程 (A) user表中 host、user和password判断是否可连接。 ...四、安全问题 (A) 严格控制操作系统帐号和权限 (B) 尽量避免以root权限运行MySQL (C) 防止DNS欺骗 (D) 删除匿名账户 (E) 给root账号设置口令 (F...) 设置安全密码 (G) 只授予账号必须的权限 (H) 只让root拥有mysql库user表的存取权限 (I) 只让 管理员拥有 FILE、PROCESS和SUPER权限 (J) DROP
=3506 7.禁用symbolic-links选项 描述 禁用符号链接以防止各种安全风险 加固建议 编辑Mysql配置文件/my.cnf,在[mysqld] 段落中配置symbolic-links...=0,5.6及以上版本应该配置为skip_symbolic_links=yes,并重启mysql服务。...,并重启mysql服务: log-error= 10.删除’test’数据库 描述 测试数据库可供所有用户访问,并可用于消耗系统资源。...删除测试数据库将减少MySQL服务器的攻击面。...配置文件/my.cnf,在[mysqld] 段落中配置local-infile参数为0,并重启mysql服务: local-infile=0
访问控制 MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。 换句话说,用户不能对过多的数据具有过多的访问权。...MySQL-管理用户 为了执行数据库操作,需要登录 MySQL。MySQL创建一个名为root的用户账号,它对整个MySQL服务器具有完全的控制。...你可能已经在学习中使用root进行过登录,在对非现实的数据库试验MySQL时,这样做很好。不过在现实世界 的日常工作中,决不能使用root。...-- root用户是mysql超级管理用户,拥有的权限是最高的 -- 创建用户,分配权限 -- 创建 zhangsan 用户使用 234567 登陆mysql create user zhangsan...具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL
开启日志是MySQL安全的必要手段之一,但是会影响MySQL的性能,所以要学会日志管理,根据实际的业务需求来选择日志。...详解 查询日志 查询日志记录了mysql的所有用户操作,包括启动和关闭服务、执行查询和更新语句等。 开启查询日志 mysql服务器默认情况下并没有开启查询日志。...文件内容如下: E:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld, Version: 5.7.19-log (MySQL Community Server...开启慢查询日志 mysql中慢查询日志默认是关闭的。...文件内容如下: E:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld, Version: 5.7.19-log (MySQL Community Server
MySQL的SSL/TSL基于 OpenSSL API实现。MySQL中的许多选项和变量都涉及SSL,但实际上它使用的是更为安全的TLS,包括验证身份、检测传输中的更改及防止重放等机制在内。...一些应用程序需要使用安全连接提供的额外安全性,因此,MySQL可以基于每个连接决定是否启用安全连接方式,并可以对每个用户强制或作为选项启用。...MySQL建立安全连接的过程如下: 客户端发起一个连接至服务器的安全连接 服务器提供数字证书给客户端用以识别服务器及提供服务器的公钥 客户端决定会话密钥,并使用服务器的公钥加密传输到服务器 服务器用私钥解密客户端传至服务器的会话密钥...,该选项值包括如下: PERFERRED:可能的情况下建立一个安全连接,否则建立一个非安全连接 DISABLED:建立非安全连接 REQUIRED:建立一个安全连接,无法建立时,则失败。...安全连接的介绍,安全连接可以避免MySQL遭受网络窃听,防止数据信息泄露。
个人整理的MySQL安全方面,如下几点: 1、iptables不允许外部的访问3306端口,必须拨×××后才允许访问 # iptables-A INPUT -s 公司的IP -p tcp -m...4、设置管理员密码,禁止空密码登录 5、执行mysql_secure_installation 6、禁用.mysql_history文件 # 默认情况下,对MySQL操作历史都记录在这里,防止泄露... # echo'export MYSQL_HISTFILE=/dev/null' >> /etc/profile #source /etc/profile 7、及时打补丁 关注MySQL...,Percona、MariaDB的博客,及时了解行业安全动向。...="mysql -U"' >> /etc/profile source/etc/profile
简介 除了前两篇的日志学习,MySQL还有两个特殊的日志----回滚日志(undo log)和重做日志(redo log),统称事务日志。 事务日志,顾名思义是为了保障数据的原子性和一致性。...详解 MySQL数据存储 MySQL中数据是以页为单位,查询一条记录,会从硬盘把一页的数据加载出来,加载出来的数据叫数据页,会放入到 Buffer Pool 中。...重做日志 重做日志是InnoDB存储引擎独有的,在MySQL实例挂了或宕机了,重启时,InnoDB存储引擎会使用重做日志恢复数据,保证数据的持久性与完整性。
0x01 Mysql日志分析 general query log能记录成功连接和每次执行的查询,我们可以将它用作安全布防的一部分,为故障分析或黑客事件后的调查提供依据。.../mysql.log'; 比如,当我访问 /test.php?...登录失败的记录: 102 Connect mysql@192.168.204.1 on 102 Connect Access denied for user 'mysql'@'192.168.204.1...敏感数据库表:SELECT * from mysql.user、SELECT * from mysql.func 0x03 SQL注入入侵痕迹 在利用SQL注入漏洞的过程中,我们会尝试利用sqlmap...mysql.func 3、结合web日志分析。
开启日志是MySQL安全的必要手段之一,但是会影响MySQL的性能,所以要学会日志管理,根据实际的业务需求来选择日志。...MySQL的主从复制,因为二进制日志包含备份后进行的所有更新。...Mixed 从 MySQL5.1.8 版开始,MySQL 又推出了 Mixed 格式,这种格式实际上就是 Statement 与 Row 的结合。...如果在mysql的配置文件配置启动了二进制日志,mysql会一直记录二进制日志,修改配置文件,可以停止二进制日志,但是需要重启mysql数据库。mysql提供了暂时停止二进制日志的功能。...mysql错误日志是以文本文件形式存储的,可以使用文本编辑器直接查看mysql错误日志。 3、删除错误日志 mysql的错误日志以文本文件的形式存储在文件系统中,可以直接删除错误日志文件。
近些年,随着各种安全事故的发生,数据安全性逐渐得到重视。等保评测或各类系统安全评测中也都有增加数据库安全相关要求,本篇文章将以 MySQL 为例,分享几点数据库安全加固方法。...1.数据安全重要性 数据安全性是指保护数据免受未经许可而故意或偶然的传送、泄露、破坏、修改,是标志程序和数据等信息的安全程度的重要指标。即保护数据不被破坏或泄露,不准非法修改,防止不合法的访问。...自此之后,数据安全问题也做到了有法可依。 2.安全加固方法 那么我们应该怎么来做数据库安全加固呢?从数据安全的三个特性出发,或许可以找到新的思路,即要保证数据的保密性、完整性、可用性。...数据库层: 以独立的系统用户运行 mysql 服务。 及时发现新的安全风险,打补丁或升级版本。 配置数据库账号密码策略,不使用弱密码。 数据库账号权限尽可能小,做好权限分离。...本篇文章从几个层面出发,分享了几点数据库安全加固建议,希望大家能够对数据安全性有些基本的认识,数据安全要重视起来了。
在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。...刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行: use...; mysql -uroot -pnewpassword; mysql mydb -uroot -p; mysql mydb -uroot -pnewpassword; 上面命令参数是常用参数的一部分...在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技 术的提高。...MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。
一、问题提出 之前写过一篇名为“快速安全删除MySQL大表”的博客,讲解如何在不影响线上数据库服务的前提下删除大表。实际上清理MySQL binlog也会遇到同样的问题。...mysql 1073741878 Aug 21 10:23 mysqlbinlog.026765.h -rw-rw---- 1 mysql mysql 1073742017 Aug 21 10:44...mysql mysql 1073742308 Aug 21 11:03 mysqlbinlog.026767 -rw-rw---- 1 mysql mysql 1073742288 Aug 21 11....h -rw-rw---- 1 mysql mysql 1073742308 Aug 21 11:03 mysqlbinlog.026767 -rw-rw---- 1 mysql mysql 1073742308...-rw-rw---- 1 mysql mysql 1073742288 Aug 21 11:20 mysqlbinlog.026768.h -rw-rw---- 1 mysql mysql 376007370
MySQL_config_editor 帮助信息请查看 man mysql_config_editor 或 mysql_config_editor -?...设置 login path [root@mysql1 ~]# mysql_config_editor set -?...如: mysql_config_editor set -G mypath -u root -p -S /u01/data/mysql5.7.25/mysql.sock mysql_config_editor...[root@mysql1 ~]# mysql_config_editor remove -G user1 [root@mysql1 ~]# mysql_config_editor print --all...reset [root@mysql1 ~]# mysql_config_editor reset [root@mysql1 ~]# mysql_config_editor print --all #
一.简介 源码地址 日期:2018/4/12 介绍:工具用于安全删除MySQL表,对于一些特定场景可能有用 应用场景:大批删除不走索引但是有主键的场景[可以是单列索引,也可是多列索引] 实现思路:根据where...中文 注意:必须有主键或者非空唯一索引 1.下载 git clone https://gitee.com/mo-shan/safe_delete.git cd safe_delete 2.配置,将这里的mysql_path...改成mysql工具的绝对路径,否则可能会因版本太低导致错误 ed -i 's#^mysql_path=....*#mysql_path=\"/mysqlbinlog_path\"#g' bin/safe_delete 将这里的safe_delete_path改成safe_delete的家目录的绝对路径 sed
领取专属 10元无门槛券
手把手带您无忧上云