У меня есть база данных для 100 или около того пользователей.У меня есть 2 пользователя MySQL, у которых есть разрешение на базу данных.root, а также конкретный пользователь базы данных "каталог".Пользовательский «каталог» имеет разрешение только на выполнение инструкций SELECT, ничего больше.
Некоторая информация чувствительна к этому пользователю, и я использую PHP в качестве прокси-сервера, чтобы определить, каким пользователем он является до запуска любых команд SQLКак добавить каждый оператор SELECT для включения WHERE id = '$their_id'
, где $their_id
- это переменная php со своим идентификатором.
Обратите внимание, что пользователи будут иметь возможность писать свои команды PHP mysql, я определяю эти ограниченияв db.php, который будет включать информацию о соединении.
Я хочу запретить пользователю joe
иметь возможность запускать такие команды, как SELECT * WHERE id = 'bob'
, когда joe
не bob
.
Редактировать:
В настоящее время я не сканирую ни одну из команд MySQL, я просто создаю для них соединение в db.php.Могу ли я в любом случае создать свои собственные прокси-команды MySQL и заставить их использовать их, чтобы они могли использовать мою команду mysql_query
, а не стандартную mysql_query
для переопределения любой обработки, которую я выполняю.