• MySql安全加固:无关或匿名帐号&是否更改root用户&避免空口令用户&是否加密数据库密码




    💖The Begin💖点点关注,收藏不迷路💖

    1.1 检查是否删除无关或匿名帐号

    检查点

    执行以下命令查看是否存在匿名账号:

    select count(*) from mysql.user where user = '';
    
    • 1

    判定依据: 不存在匿名账号则合规,否则不合规。

    加固步骤:

    1、以管理身份登录数据库执行如下语句:

    mysql>use mysql;                # 切换当前数据库为MySQL。
    mysql>select * from mysql.user where user='';  # 统计MySQL中用户名为空的用户数量  
    
    • 1
    • 2

    在这里插入图片描述

    2、对于查询到的用户使用一下步骤进行删除:

    DROP USER语句用于删除一个或多个MySQL账户。

    要使用DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE权限。
    账户名称的用户和主机部分与用户表记录的User和Host列值相对应。

    使用DROP USER,可以取消一个账户和其权限,操作如下:

    DROP USER user;
    
    • 1

    该语句可以删除来自所有授权表的帐户权限记录。

    3、补充操作说明

    要点:

    DROP USER不能自动关闭任何打开的用户对话。

    而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。

    1.2 检查是否更改root用户

    检测步骤:

    使用以下命令查看是否修改root用户名称

    mysql>select count(*) from mysql.user where user = 'root';
    
    • 1

    在这里插入图片描述

    判定依据: 系统中不存在名称为root的用户则合规,否则不合规。

    加固参考步骤:

    1、修改数据库root用户的名称
    进入MYSQL:

    mysql -u root -p
    
    • 1

    2、选择需要操作的数据库

    mysql>use mysql;
    
    • 1

    3、修改用户名

    mysql>update mysql.user set user="新用户名" where user="旧用户名";
    
    如:
    update mysql.user set user="mysqlroot" where user="root";
    
    • 1
    • 2
    • 3
    • 4

    4、刷新权限

    mysql> flush privileges;
    
    • 1

    在这里插入图片描述

    5、检查修改后的mysqlroot用户是否正常使用

    在这里插入图片描述

    1.3 避免空口令用户

    在MySQL 5.7版本及以后的新版中,user表中的password字段已经被废弃,取而代之的是authentication_string字段来保存密码。这个改变是为了提高数据库的安全性。

    authentication_string字段是一个VARBINARY(80)类型的字段,用于存储用户的密码散列值。在新版MySQL中,密码不再以明文形式存储,而是通过密码散列算法进行加密后存储。这样即使数据库被非法访问,也无法直接获取到用户的密码。

    为了兼容旧版本的MySQL,新版MySQL仍然支持使用旧的password字段进行密码验证。

    检测步骤:

    1、执行以下命令查看系统是否存在空密码或者默认密码的帐号

    select * from mysql.user where length(password) = 0 or password is null;
    
    或者 
    
    select * from mysql.user where length(authentication_string) = 0 or authentication_string is null;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    判定依据: 系统如果存在空口令或者使用默认密码的账号则不合规,否则合规。

    加固参考步骤:

    1、登录mysql客户端 命令如下:

    mysql -u用户名 -p密码
    
    • 1

    2、查看密码为空的用户:

    select * from mysql.user where length(authentication_string) = 0 or authentication_string is null;
    
    • 1

    3、将密码为空的用户进行密码修改(密码不能为空);

    示例要修改root用户密码,执行如下命令:

    mysql> use mysql
    mysql> update user set authentication_string=authentication_string('密码') where user='密码为空的用户名';
    mysql> flush privileges
    
    • 1
    • 2
    • 3

    1.4 检查是否加密数据库密码

    检测步骤:

    1、使用如下命令查看是否存在未加密的数据库密码

    mysql>select count(*) from mysql.user where length(authentication_string) < 41 and authentication_string!='';
    
    • 1

    在这里插入图片描述

    判定依据: 系统不存在未加密的密码则合规,否则不合规。

    加固参考步骤:

    1、系统密码默认是加密的,如果存在未加密的账号,可以修改其密码:

    mysql>update mysql.user set Password='' where User='';
    
    • 1

    例如:

    mysql> update mysql.user set authentication_string='Zyl@2024' where User='mfs';
    
    • 1

    在这里插入图片描述

    在这里插入图片描述


    💖The End💖点点关注,收藏不迷路💖
  • 相关阅读:
    AIE流程
    C#毕业设计——基于C#+asp.net+sqlserver基于C2C模式的网上购物系统设计与实现(毕业论文+程序源码)——网上购物系统
    ssdfsafsd
    盛元广通矿企煤炭检测实验室信息管理系统3.0
    06. Web大前端时代之:HTML5+CSS3入门系列~HTML5 画布
    二十三种设计模式全面解析-解密组合模式(Composite Pattern):构建统一而强大的对象结构
    springboot监控
    Django性能之道:缓存应用与优化实战
    SpringMVC简介
    hdfs分布式文件系统 默认数据存放路径、及相关配置属性详细解析
  • 原文地址:https://blog.csdn.net/qq_41840843/article/details/136393692