不允许特定的mysql用户进行交互式login

我想为不同的网站创build一些mysql用户,但不允许他们的交互式连接。

如果一个恶意用户获得了一个网站的mysqllogin凭证,那么从terminal到服务器创build一个conexion是非常简单的,但是上传一个PHP脚本到服务器是一个不同的问题。 我觉得这个限制并不是没有必要的。

总之,如何禁止特定用户的互动conexion?

你不能。 MySQL无法区分CLI会话和库中的连接,或者至less没有权限模型来处理差异。

通常,您必须尽可能具体地设置权限。 应该允许来自特定networking服务器的连接应该仅限于该服务器。 这大大减less了攻击面。

另外,如果可能的话,不要在该服务器上安装mysql CLI程序来进一步限制攻击面。

一般来说,如果你愿意,你可以用两种方法中的一种或两种来处理。 您将授权位置设置为仅允许用户从您希望用户连接的IP,IP范围或主机名

所以例如

  GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'127.0.0.0.1'; 

只允许从本地主机中select和插入。 或者说你的networking服务器在单独的vlan上

  GRANT SELECT, INSERT ON mydb.* TO 'someuser'@'10.128.10.%'; 

这将允许从10.128.10.0/24中select和插入

你也可以closuresmysql端口的防火墙,只允许来自你想连接的主机的mysql连接。