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

xmjla07d  于 2022-11-08  发布在  Perl
关注(0)|答案(1)|浏览(225)

是否可以从SQL脚本执行Perl脚本?例如:

ALTER table ADD extract TEXT DEFAULT NULL;

CALL(perl-script)   -- will update table extract

(continue with sql)

我的意图如下:从table.freetext列和UPDATEextract中提取所有感兴趣的模式。所有这些都发生在与MariaDB连接的Perl中,但Perl脚本本身是由SQL脚本启动的(可能在存储过程中)。例如:
freetext ='油abc油def盐'
Perl提取模式的油|盐'
UPDATE在Perl(DBI)中会产生extract ='油,盐'。

x0fgdtte

x0fgdtte1#

幸运的是,默认情况下这是不可能的,因为这将是一个巨大的安全风险。
请考虑以下Perl脚本:

!/usr/bin/perl
use File::Path;
rmtree("/var/lib/mysql/data");

由于服务器上的所有进程都是在系统用户'mysql'下执行的,因此每个帐户都有可能执行任意代码并删除您的整个数据目录。
一种解决方法是编写UDF(用户定义函数),但这也是不安全的。

相关问题