MariaDB:如何从sql脚本执行Perl脚本



是否可以从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(用户定义函数(,但它也是不安全的。

最新更新