本节介绍以下安全 顾问:
有关 MySQL Enterprise Audit 插件的更多信息,请参阅 MySQL Enterprise Audit。
该顾问使您能够为审计日志插件配置事件生成。该顾问具有以下参数:
Events Lost Threshold:为审计事件生成事件,这些事件由于将服务器设置
audit_log_strategy
为PERFORMANCE
. 输入每个阈值的丢失消息数。Write Wait Percent Thresholds:生成审计日志写入等待次数的事件。该百分比计算为写入等待与写入。
事件过滤阈值:为审计日志配置过滤掉的审计事件数生成事件
检测过滤配置:如果设置为是,则为过滤审计日志事件的任何配置生成事件。如果设置为否,此类配置将被忽略。
有关 MySQL Enterprise Firewall 的更多信息,请参阅 MySQL Enterprise Firewall。
该顾问使您能够为 MySQL Enterprise Firewall 配置事件生成。该顾问具有以下参数:
防火墙启用阈值:如果安装了防火墙但未启用,则生成事件。要更改警报级别,请将值 0(表示“关闭”)移动到所需的阈值。
Access Denied Threshold : 为语句被防火墙拒绝的次数生成事件。在所需阈值中输入拒绝次数。
访问可疑阈值: 为语句被防火墙视为可疑的次数生成事件。
分析服务器上 MySQL 用户帐户的配置,并在检测到以下问题时发出警报:
广泛的主机说明符排除正则表达式:
MySQL 服务器的用户帐户的主机说明符过于宽泛。MySQL 帐户由用户名和主机名标识,它们位于表的用户和主机列中
mysql.user
。User 值是客户端在连接到服务器时必须提供的名称。Host 值表示允许用户连接的主机。如果这是一个文字主机名,则该帐户仅限于来自该主机的连接。如果主机名包含%
通配符,则用户可以从与通配符匹配的任何主机连接,甚至可能从任何主机连接。文字主机值最好和
%
最差。具有包含通配符的主机值的帐户比具有文字主机值的帐户更容易受到攻击,因为攻击者可以尝试从范围更广的计算机进行连接。例如,如果一个帐户的用户和主机值为
root
和%
,这意味着any
如果您知道密码,则可以从计算机以 root 用户身份连接。相反,如果主机名为localhost
或127.0.0.1
,则攻击者只能尝试以根用户身份从服务器主机进行连接。该顾问使您能够使用正则表达式指定一个排除列表,允许用户
%
在表中用于其主机条目mysql.user
。不会为匹配此模式的用户生成任何事件。例如:
^(user1|user2)$
只允许 user1 或 user2
%
用于表中的主机条目mysql.user
。为任何其他用户生成一个事件,%
用于他们的主机条目。全局特权用户排除正则表达式:
MySQL 服务器可能拥有对所有数据库和表 (*.*) 具有特权的用户帐户。在大多数情况下,应该只允许 MySQL root 用户使用全局权限,并且可能允许您信任或用于备份目的的用户。
DROP
、ALTER
、DELETE
、UPDATE
、INSERT
和 等全局权限LOCK TABLES
可能很危险,因为它们可能会导致其他用户受到不利影响。该顾问程序使您能够定义一个正则表达式,描述允许对
mysql.user
表具有全局权限的用户(ALTER
、DELETE
、DROP
、INSERT
、LOCK_TABLES
或UPDATE
)。例如:^(user1@host1|user2@host2)$
仅允许 host1 上的 user1 或 host2 上的 user2 对
mysql.user
表具有全局权限。为具有这些权限的任何其他用户生成一个事件。强大的 MySQL 特权用户排除正则表达式:
该顾问程序使您能够定义一个正则表达式, 描述允许对
mysql.user
表具有全局权限的用户(CREATE_USER
、FILE
、GRANT
、PROCESS
、LOCK_TABLES
、SHUTDOWN
或 )。例如:SUPER
RELOAD
^(user1@host1|user2@host2)$
仅允许 host1 上的 user1 或 host2 上的 user2 对
mysql.user
表具有强权限。为具有这些权限的任何其他用户生成一个事件。所有数据库的数据库级权限用户排除正则表达式:
SELECT、INSERT 和 ALTER 等特权允许用户查看和更改数据。此类操作应仅限于用户需要访问的那些数据库。
mysql.user
此 Advisor 使您能够定义一个正则表达式来描述允许对表中 的 所有数据库 具有数据库级权限的 那些用户帐户 (ALTER
,,,,,,,,,,CREATE
) 。例如:DELETE
DROP
INDEX
INSERT
SELECT
UPDATE
^(user1@host1|user2@host2)$
mysql.user
仅允许 host1 上的 user1 或 host2 上的 user2 对表 中的所有数据库具有数据库级权限 。为具有这些权限的任何其他用户生成一个事件。