我发现apache2能够"隔离" php在虚拟主机中使用此规则访问其他未指定的目录:
php_admin_value open_basedir / path / to / your / virtualroot:/ some / other / path
现在我需要将特定虚拟主机的mysql访问限制为特定数据库。我会避免使用用户/密码来保护它们以避免暴力。
有什么解决方案吗?
答案 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`;