Невозможно просто определить из запроса SQL, какой файл кода запускает его.
Вы не задаете в своем вопросе, какой язык программирования вы используете или как ваше приложение подключается в базу данных, или если вы используете слой доступа к данным или библиотеку ORM.
Но во многих языках программирования верно, что соединение с базой данных создается одним файлом, а запросы формируются в других файлах кода. Они могут даже быть сформированы из другого файла кода, который в конечном итоге отправляет запрос на сервер MySQL для выполнения.
Вам необходимо прочитать код и понять, как формируются и выполняются запросы.
Некоторые программисты добавляют комментарии к своим SQL запросам, которые в конечном итоге попадают в журнал запросов.
$sql = "/* File: reports.php; Line: 278 */ SELECT * FROM mytable WHERE col1 = ? ORDER BY blah";
Для первоначальной настройки требуется некоторая работа, но затем вы можете использовать журнал запросов для выясните, откуда запускается любой запрос.
Обратите внимание, что это не работает для запросов, выполняемых клиентом mysql
, поскольку этот клиент удаляет комментарии перед выполнением запросов.
Re Ваш комментарий:
Если вы считаете, что ваша база данных взломана, то сначала вы должны убедиться, что ваша сетевая безопасность достаточна для предотвращения доступа внешних клиентов к вашей базе данных. То есть, только ваше собственное приложение должно быть разрешено для подключения. Вы можете сделать это с помощью комбинации сетевых брандмауэров и операторов SQL GRANT
.
Удивительно, сколько людей работает с базами данных на сервере, который имеет доступ к inte rnet! Если это вы, то вам следует немедленно это исправить. Сними свой сайт, пока не сделаешь. Это небезопасно.
Если вы уверены, что только ваше приложение имеет доступ, и никакой другой клиент не может подключиться, вы можете добавить код, как я описал выше, в свое приложение, чтобы каждый запрос идентифицировал себя.
Если вы используете слой доступа к базе данных, вам может потребоваться сделать это только в одном месте. Если у вас есть SQL запросов, разбросанных по всему приложению, потребуется больше работы, потому что вам придется редактировать каждый файл, пока вы не выясните, какой из них является источником запроса.