【问题标题】:Isolating php from accessing other mysql databases隔离php访问其他mysql数据库
【发布时间】:2016-09-20 02:17:38
【问题描述】:

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

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

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

有解决办法吗?

【问题讨论】:

    标签: php mysql apache2 virtualhost


    【解决方案1】:

    不,您只能限制每个用户。例如,您可以通过 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`;
    

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 2021-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多