是否可以从SQL脚本执行Perl脚本?例如:
ALTER table ADD extract TEXT DEFAULT NULL;
CALL(perl-script) -- will update table extract
(continue with sql)
我的意图如下:从列table.freetext
和列UPDATE
中提取所有感兴趣的模式extract
。所有这些都发生在与MariaDB连接的Perl上,但Perl脚本本身是由SQL脚本启动的(可能在存储过程中(。例如:
freetext
="油abc油定义盐">
Perl提取模式"油|盐">
Perl(DBI(中的UPDATE
给出了extract
="il,salt"。
幸运的是,这在默认情况下是不可能的,因为这将是一个巨大的安全风险。
考虑以下perl脚本:
!/usr/bin/perl
use File::Path;
rmtree("/var/lib/mysql/data");
由于服务器上的所有进程都是在系统用户"mysql"下执行的,每个帐户都有可能执行任意代码并删除整个数据目录。
一种变通方法可能是编写一个UDF(用户定义函数(,但它也是不安全的。