2016-05-23 3 views
0

Я обнаружил, что apache2 способен «изолировать» PHP доступ к другим, не указано, каталоги, используя это правило в виртуальном хосте:Разделительный PHP доступ к другим базам данных MySQL

php_admin_value open_basedir/путь/к/ваш/virtualroot:/some/other/path

Теперь мне нужно также ограничить доступ mysql для этого конкретного виртуального хоста к конкретной базе данных. Я бы избегал просто пользователя/пароля, чтобы защитить их, чтобы избежать грубой силы.

Есть ли решение для этого?

ответ

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`;