MySQL的防火墙是基于每个用户的白名单实现,每个用户的防火墙模式有记录、保护和检测三种模式。
当服务器接收到客户端的SQL语句之后,经过解析器标识到达防火墙。防火墙会基于用户采用的模式进行判断,如果未开启防火墙将进入执行SQL阶段。如果开启了防火墙的记录模式,防火墙会将这些SQL语句存储到白名单。如果是其它模式,防火墙将会与白名单内容进行匹配,如果SQL语句不匹配,将会发送警告至错误日志,如果开启的是保护模式,则阻挡该SQL语句执行。
MySQL的防火墙提供应用级别的防护,数据库管理员可以通过防火墙允许或拒绝SQL文的执行。通过它可以防止SQL注入攻击以及非法利用数据库。