phpMyAdmin - сделать пользователя, который видит только те базы данных, которые он создает
Я знаю, как предоставить пользователю доступ только к одной базе данных, используя phpMyAdmin, и я знаю, как предоставить пользователю доступ для создания новой базы данных, используя phpMyAdmin (используя привилегию Create).
Однако предоставление пользователю привилегии Create также позволяет им видеть все базы данных. Есть ли способ разрешить пользователям создавать базы данных, но только просматривать созданные ими базы данных?
Я понимаю, что это можно сделать с помощью реальных запросов PHP / MySQL при создании базы данных (т.е. GRANT
также см. здесь), однако можно ли это сделать, используя только интерфейс phpMyAdmin (поэтому я также не хочу получать ответы, связанные с другим интерфейсом)?
1 ответ
Привилегия CREATE должна быть в состоянии определить, существует ли имя базы данных MySQL или нет, до создания новой базы данных, поскольку у вас не может быть двух разных баз данных с одинаковым именем.
Поэтому доступ для чтения к списку / перечислению всех баз данных является обязательным требованием.
С точки зрения взаимодействия с пользователем, я уверен, что вы можете установить phpMyAdmin, чтобы перечислить только базу данных, к которой у пользователя есть доступ, но тогда вы получите вопросы, почему они не могут создать новую базу данных. <name>
поскольку он явно еще не существует, но создание завершается неудачно с ошибкой "база данных уже существует".
Это звучит как Плохая Идея ™ для меня...