总连接数

我们可以通过设置 max_connections 选项来限制所有用户的连接数。
这有助于避免例如过多的内存使用和同时有太多连接的争用,这些连接可能都可能执行查询。
除了指定的连接数外,还为具有 CONNECTION_ADMIN(在 MySQL 8.0+ 中)或者 SUPER(早期版本)权限的用户保留了一个另外的连接。

重要提示:鉴于为具有 CONNECTION_ADMIN/SUPER 特权的用户保留了一个另外的连接,重要的是不要将这些特权授予应用程序用户,因为这只会导致应用程序使用另外的连接并破坏其目的.出于同样的原因,不要让具有这些权限的用户在我们不使用它们时保持登录状态。

https://onitroad.com 更多教程

账户资源限制

通过使用 CREATE USER 或者 ALTER USER(MySQL 5.7 及更高版本)或者 GRANT 语句(MySQL 5.6 及更早版本)设置以下用户选项之一,可以限制单个帐户的活动:

  • MAX_QUERIES_PER_HOUR - 每小时最大查询数
  • MAX_UPDATES_PER_HOUR - 每小时最大更新次数
  • MAX_CONNECTIONS_PER_HOUR - 每小时最大连接数
  • MAX_USER_CONNECTIONS - 帐户可以同时拥有的最大连接数

在 MySQL 8.0 及更高版本中,我们还可以限制允许连接使用的操作系统资源。
目前只支持限制CPU资源。
这是使用可以分配给线程的资源组完成的(即对于用户,必须在创建连接后完成分配)。

MySQL 企业防火墙

MySQL 企业防火墙将允许我们为每个帐户创建一个白名单,指定允许该帐户执行的规范化查询。
它在 MySQL Server 企业版 5.6.24/5.7 及更高版本中可用。

基于审计事件阻止访问

在 MySQL Server 5.7.20 及更高版本的企业版中,我们可以使用 MySQL Enterprise Audit 根据审计日志过滤规则来阻止访问。

MySQL - 如何设置连接和查询的最大速率

有几个选项可以为 MySQL 实例实现类似防火墙的功能。
其中一些描述如下。
当提到帐户时,它指的是从给定主机连接的用户名的组合,例如:username@hostname。

日期:2020-09-17 00:11:12 来源:oir作者:oir