Можете ли вы скрыть таблицы от пользователя MySQL в PhpMyAdmin?
-
19-09-2019 - |
Вопрос
У меня добавлен пользователь MySQL в базу данных, которую я хотел бы не просмотреть определенные таблицы.
Я могу ограничить их привилегии через MySQL, не давая им выполнять такие операторы, как DROP или ALTER. Но возможно ли предотвратить их просмотр определенных таблиц в PhpMyAdmin?
Если нет привилегии MySQL, которая контролирует это (я бы не представлял, есть ли это конфигурация в PhpMyAdmin, которая позволяет это?
Я понимаю, что один обходной путь - это перемещение таблиц в новую базу данных, к которой они не добавляются. Это не вариант для моего приложения.
Решение
Вы можете переместить таблицы в другую базу данных, а затем ограничить учетную запись пользователя только для получения 1 базы данных с помощью общественных таблиц. Попытка изменить PhpMyAdmin была бы огромной ошибкой, пользователь может просто написать пользовательский запрос для доступа к таблицам, это мертвый простой взлом.
Это должно быть сделано на стороне базы данных или нет абсолютно никакого смысла. Se-Postgresql это единственный проект, который я знаю, который позволяет получить разрешения таблицы по таблице. Это единственная база данных, которая может сделать это, потому что очень Мало кто нуждается в этой функции.
Другие советы
Да, вы можете скрыть определенную базу данных в PhpmyAdmin.
Чтобы сделать это, просто откройте config.inc.php в твоей phpmyadmin каталог в вашем корне WebServer или где он размещен. или поиск config.inc.php
Если вы хотите спрятаться Information_schema а также mysql Добавьте эту линию после:
$cfg['Servers'][$i]['extension'] = 'mysql';
$cfg['Servers'][$i]['hide_db'] = '^information_schema|mysql$';
Это оно.
PhpMyAdmin подключается к базе данных как определенный пользователь MySQL. Если у этого пользователя нет никаких разрешений на данные таблицы, ни один пользователь PhpMyAdmin не может получить к этому. Это будет иметь все Пользователи mypmyadmin, конечно.