Разработка сайтов и программного обеспечения, системное администрирование, обучение программированию и работе с СУБД MySQL

in english

Вызов внешней программы из MySQL

Главная Статьи Вызов внешней программы из MySQL

С развитием хранимых процедур и функций стали появлятся идеи по использованию их в различных целях связанных с вызовом внешних приложений. Например вызвать скрипт отправки e-mail по завершению транзакции. SQL реализованный в рамках MySQL не позволяет делать вызовы внешних приложений и это правильно. Представьте, что SQL-injection может запросто разрушить весь ваш сервер. Но не будем о грустном, о нем я вас предупредил.

Теперь займемся решением нашей задачи. И оно существует! Нас спасет UDF! Это функции определяемые пользователем.

UDF репозитарий нам предлагает библиотеку lib_mysqludf_sys для работы с операционной системой, которая содержит в себе 4 функции:

Вы можете воспользоваться функцией lib_mysqludf_sys_info() для получения информации о версии lib_mysqludf_sys.

Установка относительно проста - нужно разместить скомпилированную библиотеку в соответствующее место. После этого выполнить ряд запросов

CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS INT SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS STRING SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS STRING SONAME 'lib_mysqludf_sys.so';
Вы можете исключить те функции, которые вам не нужны.

При необходимости UDF можно удалять:

DROP FUNCTION sys_eval;

Замечу, что UDF доступны ВСЕМ пользователям БД, доступ к ним нельзя ограничить и именно поэтому они настолько опасны. Помните, что команды выполняются в контексте пользователя, от имени которого запущен mysqld.

Прежде чем скачать библиотеку, ознакомьтесь со следующими материалами

Скачать UDF можно по ссылке www.mysqludf.org/lib_mysqludf_sys/lib_mysqludf_sys_0.0.3.tar.gz

Реклама:

Метки: MySQL, stored, routines, triggers, procedure, мускул, процедуры, хранимые процедуры, udf.

Комментарии:

Вы можете оставить первый комментарий.

имя:

e-mail (не публикуется):

комментарий:

© Ткачев Филипп, 2005—2017
Программист, веб-разработка и прикладное ПО.
Все права защищены.