隔离php访问其他mysql数据库

时间:2016-05-23 09:09:46

标签: php mysql apache2 virtualhost

我发现apache2能够"隔离" php在虚拟主机中使用此规则访问其他未指定的目录:

php_admin_value open_basedir / path / to / your / virtualroot:/ some / other / path

现在我需要将特定虚拟主机的mysql访问限制为特定数据库。我会避免使用用户/密码来保护它们以避免暴力。

有什么解决方案吗?

1 个答案:

答案 0 :(得分:2)

不,您只能按用户限制它。例如,您可以通过mysql用户限制访问,并使用域的特定用户(/ VirtualHost)。

我通常会创建一个mysql用户,并允许它访问具有该用户名作为前缀的所有数据库:

CREATE USER 'someuser'@'localhost' IDENTIFIED BY 'somepass';
GRANT ALL ON `someuser\_%`.* to `someuser`@`localhost`;

因此someuser将拥有对以someuser_开头的所有数据库的完全访问权限。 (例如:someuser_wordpress,someuser_drupal等...)。用户只能看到他们有权限的数据库。

您也可以限制对单个数据库的访问:

GRANT ALL ON `databasename`.* to `someuser`@`localhost`;